473,406 Members | 2,620 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Error: uncaught exception: Permission denied to get property Window.processXML

Hi -
I have some javascript that works when I run it from a server, but I
need to run it locally. When I try to execute it locally I get the
following error:
Error: uncaught exception: Permission denied to get property
Window.processXML
Is there a way to get around this issue?
default.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<html>
<TITLE>Exercise #3 - Request/Response Application</TITLE>
<!-- frames -->
<FRAMESET ROWS="*,20">
<FRAME NAME="InputFrame" SRC="InputForm.htm" >
<FRAME NAME="PostFrame" SRC="postForm.htm" SCROLLING="no"
NORESIZE>
</FRAMESET>

</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::

InputForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Input Form</TITLE>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">

// Global variables that get set when the frames are loaded
var theInputFormOBJ;
var theHost;

//function that populates global variables
function init(){
theInputFormOBJ = document.theInputForm;
theHost = "bugjuice";

//set default host and ArcIMS Service values
theInputFormOBJ.Service.value = "test2";
theInputFormOBJ.Host.value = theHost;
}

// clear the response box
function clearResponse() {
theInputFormOBJ.Response.value = "";
}

function sendXML() {
alert ("send XML");
//***Exercise 03, Step 05.2: Get the value of the service name and
the request from "theInputForm" and put
// them in variables called theService and theRequest respectively
var theService = theInputFormOBJ.Service.value;
var theRequest = theInputFormOBJ.Request.value;

//***Exercise 03, Step 05.3: Construct the action for the
"theInputForm" and put the value in a variable
// called actionURL (HINT: The action is a URL made up of the host
name and
//a call to the servlet. The argument/value pairs that are
included in the
// URL are ServiceName, ClientVersion and Form).
var esrimapBlurb = "/servlet/com.esri.esrimap.Esrimap";
var cVersion = "?ClientVersion=9.0";
theService = "&ServiceName=" + theService;
var theForm = "&Form=True";
var actionURL = "http://" + theHost + esrimapBlurb + cVersion +
theService + theForm;
alert (actionURL);
//***Exercise 03, Step 05.4: Use the DOM to get the form object in
the PostFrame and store it in a variable
// called thePostFormOBJ
var thePostFormOBJ = parent.PostFrame.document.forms[0];

//***Exercise 03, Step 05.5: Set the action attribute of
thePostFormOBJ to be the value of the actionURL
// variable that you populated earlier.
thePostFormOBJ.action=actionURL;

//***Exercise 03, Step 05.6: Set the XMLRequest INPUT element of
thePostFormOBJ to
// be the value of the theRequest variable that you populated
earlier.
thePostFormOBJ.ArcXMLRequest.value= theRequest;

//***Exercise 03, Step 05.7: Set the JavaScriptFunction attribute
of thePostFormOBJ to
//be "parent.InputFrame.processXML".
thePostFormOBJ.JavaScriptFunction.value =
"parent.InputFrame.processXML";

netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserAccess")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesRead")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesWrite")

//***Exercise 03, Step 05.8: submit thePostFormOBJ
thePostFormOBJ.submit();
}

function processXML(theReply){
//***Exercise 03, Step 06.1: Update the text area with the response
theInputFormOBJ.Response.value = theReply;

}

function writeGetImage(){

//Build GET_IMAGE request

//<?xml version="1.0" encoding="UTF-8" ?>
//<ARCXML version="1.1">
//<REQUEST>
//<GET_SERVICE_INFO renderer="false" extensions="false"
fields="false" />
//</REQUEST>
//</ARCXML>

var getImageReq = '<?xml version="1.0" encoding="UTF-8" ?>\n';
getImageReq = getImageReq + '<ARCXML version="1.1">\n';
getImageReq = getImageReq + '<REQUEST>\n';
getImageReq = getImageReq + '<GET_SERVICE_INFO renderer="false"
extensions="false" fields="false" />\n';
getImageReq = getImageReq + '</REQUEST>\n';
getImageReq = getImageReq + '</ARCXML>';

//Put request in Request text area
theInputFormOBJ.Request.value = getImageReq;

}

</SCRIPT>
</HEAD>
<BODY BgColor="#CCCCCC" onLoad="init()">
<FORM name="theInputForm">
Host: <INPUT TYPE="Text" NAME="Host" VALUE="" size="20">&nbsp;&nbsp;
ArcIMS Service: <INPUT TYPE="Text" NAME="Service" VALUE="" size="20">
<BR><BR>
Request:<BR>
<TEXTAREA COLS=80 ROWS=15 NAME="Request" WRAP="soft" ></TEXTAREA><BR>

<!--***Exercise 03, Step 05.1: Use an onClick event in this element
to call a function named sendXML(). -->
<INPUT TYPE="button" NAME="theSendButton" VALUE="Send Request"
onClick="sendXML()">
<INPUT TYPE="button" NAME="getImage" VALUE="Get Map Service"
onClick="writeGetImage()"><BR>
Response:<BR>
<TEXTAREA COLS=80 ROWS=10 NAME="Response" WRAP="soft"></TEXTAREA><BR>
<INPUT TYPE="button" NAME="theClearButton" VALUE="Clear Response"
onClick="clearResponse()">
</FORM>
</BODY>
</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::

postForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Post Form</TITLE>
</HEAD>
<BODY BGCOLOR="#CCCCCC" >

<!--***Exercise 03, Step 03.2: Use the FORM element to create a form
with an empty action attribute and a method
attribute that has a value of POST-->
<FORM action="" method="POST">

<!--***Exercise 03, Step 03.3: Create 4 hidden INPUT elements -->

<INPUT TYPE="Hidden" NAME="ArcXMLRequest" VALUE="">
<INPUT TYPE="Hidden" NAME="JavaScriptFunction"
VALUE="parent.InputFrame.processXML">
<INPUT TYPE="Hidden" NAME="BgColor" VALUE="#CCCCCC">
<INPUT TYPE="Hidden" NAME="FormCharset" VALUE="UTF-8">
</FORM>
</BODY>
</HTML>

May 12 '07 #1
2 7163
Daz
On May 12, 2:23 am, funktacu...@gmail.com wrote:
Hi -
I have some javascript that works when I run it from a server, but I
need to run it locally. When I try to execute it locally I get the
following error:
Error: uncaught exception: Permission denied to get property
Window.processXML
Is there a way to get around this issue?

default.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<html>
<TITLE>Exercise #3 - Request/Response Application</TITLE>

<!-- frames -->
<FRAMESET ROWS="*,20">
<FRAME NAME="InputFrame" SRC="InputForm.htm" >
<FRAME NAME="PostFrame" SRC="postForm.htm" SCROLLING="no"
NORESIZE>
</FRAMESET>

</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::

InputForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Input Form</TITLE>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">

// Global variables that get set when the frames are loaded
var theInputFormOBJ;
var theHost;

//function that populates global variables
function init(){
theInputFormOBJ = document.theInputForm;
theHost = "bugjuice";

//set default host and ArcIMS Service values
theInputFormOBJ.Service.value = "test2";
theInputFormOBJ.Host.value = theHost;
}

// clear the response box
function clearResponse() {
theInputFormOBJ.Response.value = "";
}

function sendXML() {
alert ("send XML");
//***Exercise 03, Step 05.2: Get the value of the service name and
the request from "theInputForm" and put
// them in variables called theService and theRequest respectively
var theService = theInputFormOBJ.Service.value;
var theRequest = theInputFormOBJ.Request.value;

//***Exercise 03, Step 05.3: Construct the action for the
"theInputForm" and put the value in a variable
// called actionURL (HINT: The action is a URL made up of the host
name and
//a call to the servlet. The argument/value pairs that are
included in the
// URL are ServiceName, ClientVersion and Form).
var esrimapBlurb = "/servlet/com.esri.esrimap.Esrimap";
var cVersion = "?ClientVersion=9.0";
theService = "&ServiceName=" + theService;
var theForm = "&Form=True";
var actionURL = "http://" + theHost + esrimapBlurb + cVersion +
theService + theForm;
alert (actionURL);
//***Exercise 03, Step 05.4: Use the DOM to get the form object in
the PostFrame and store it in a variable
// called thePostFormOBJ
var thePostFormOBJ = parent.PostFrame.document.forms[0];

//***Exercise 03, Step 05.5: Set the action attribute of
thePostFormOBJ to be the value of the actionURL
// variable that you populated earlier.
thePostFormOBJ.action=actionURL;

//***Exercise 03, Step 05.6: Set the XMLRequest INPUT element of
thePostFormOBJ to
// be the value of the theRequest variable that you populated
earlier.
thePostFormOBJ.ArcXMLRequest.value= theRequest;

//***Exercise 03, Step 05.7: Set the JavaScriptFunction attribute
of thePostFormOBJ to
//be "parent.InputFrame.processXML".
thePostFormOBJ.JavaScriptFunction.value =
"parent.InputFrame.processXML";

netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserAccess")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesRead")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesWrite")

//***Exercise 03, Step 05.8: submit thePostFormOBJ
thePostFormOBJ.submit();
}

function processXML(theReply){
//***Exercise 03, Step 06.1: Update the text area with the response
theInputFormOBJ.Response.value = theReply;

}

function writeGetImage(){

//Build GET_IMAGE request

//<?xml version="1.0" encoding="UTF-8" ?>
//<ARCXML version="1.1">
//<REQUEST>
//<GET_SERVICE_INFO renderer="false" extensions="false"
fields="false" />
//</REQUEST>
//</ARCXML>

var getImageReq = '<?xml version="1.0" encoding="UTF-8" ?>\n';
getImageReq = getImageReq + '<ARCXML version="1.1">\n';
getImageReq = getImageReq + '<REQUEST>\n';
getImageReq = getImageReq + '<GET_SERVICE_INFO renderer="false"
extensions="false" fields="false" />\n';
getImageReq = getImageReq + '</REQUEST>\n';
getImageReq = getImageReq + '</ARCXML>';

//Put request in Request text area
theInputFormOBJ.Request.value = getImageReq;

}

</SCRIPT>
</HEAD>
<BODY BgColor="#CCCCCC" onLoad="init()">
<FORM name="theInputForm">
Host: <INPUT TYPE="Text" NAME="Host" VALUE="" size="20">&nbsp;&nbsp;
ArcIMS Service: <INPUT TYPE="Text" NAME="Service" VALUE="" size="20">
<BR><BR>
Request:<BR>
<TEXTAREA COLS=80 ROWS=15 NAME="Request" WRAP="soft" ></TEXTAREA><BR>

<!--***Exercise 03, Step 05.1: Use an onClick event in this element
to call a function named sendXML(). -->
<INPUT TYPE="button" NAME="theSendButton" VALUE="Send Request"
onClick="sendXML()">
<INPUT TYPE="button" NAME="getImage" VALUE="Get Map Service"
onClick="writeGetImage()"><BR>
Response:<BR>
<TEXTAREA COLS=80 ROWS=10 NAME="Response" WRAP="soft"></TEXTAREA><BR>
<INPUT TYPE="button" NAME="theClearButton" VALUE="Clear Response"
onClick="clearResponse()">
</FORM>
</BODY>
</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::

postForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Post Form</TITLE>
</HEAD>
<BODY BGCOLOR="#CCCCCC" >

<!--***Exercise 03, Step 03.2: Use the FORM element to create a form
with an empty action attribute and a method
attribute that has a value of POST-->
<FORM action="" method="POST">

<!--***Exercise 03, Step 03.3: Create 4 hidden INPUT elements -->

<INPUT TYPE="Hidden" NAME="ArcXMLRequest" VALUE="">
<INPUT TYPE="Hidden" NAME="JavaScriptFunction"
VALUE="parent.InputFrame.processXML">
<INPUT TYPE="Hidden" NAME="BgColor" VALUE="#CCCCCC">
<INPUT TYPE="Hidden" NAME="FormCharset" VALUE="UTF-8">
</FORM>
</BODY>
</HTML>
It's a cross domain issue. You can't access the document of a frame if
it's loaded from a domain that's different from the original page
location. The are hacks to get around it, but it's there as a security
protocol, so someone can't use JavaScript to transmit, say a password
when you enter it on another Web site.

May 12 '07 #2
On May 11, 10:55 pm, Daz <cutenfu...@gmail.comwrote:
On May 12, 2:23 am, funktacu...@gmail.com wrote:
Hi -
I have some javascript that works when I run it from a server, but I
need to run it locally. When I try to execute it locally Igetthe
followingerror:
Error:uncaughtexception:Permissiondeniedtogetprope rty
Window.processXML
Is there a way togetaround this issue?
default.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html>
<TITLE>Exercise #3 - Request/Response Application</TITLE>
<!-- frames -->
<FRAMESET ROWS="*,20">
<FRAME NAME="InputFrame" SRC="InputForm.htm" >
<FRAME NAME="PostFrame" SRC="postForm.htm" SCROLLING="no"
NORESIZE>
</FRAMESET>
</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::
InputForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Input Form</TITLE>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
// Global variables thatgetset when the frames are loaded
var theInputFormOBJ;
var theHost;
//function that populates global variables
function init(){
theInputFormOBJ = document.theInputForm;
theHost = "bugjuice";
//set default host and ArcIMS Service values
theInputFormOBJ.Service.value = "test2";
theInputFormOBJ.Host.value = theHost;
}
// clear the response box
function clearResponse() {
theInputFormOBJ.Response.value = "";
}
function sendXML() {
alert ("send XML");
//***Exercise 03, Step 05.2:Getthe value of the service name and
the request from "theInputForm" and put
// them in variables called theService and theRequest respectively
var theService = theInputFormOBJ.Service.value;
var theRequest = theInputFormOBJ.Request.value;
//***Exercise 03, Step 05.3: Construct the action for the
"theInputForm" and put the value in a variable
// called actionURL (HINT: The action is a URL made up of the host
name and
//a call to the servlet. The argument/value pairs that are
included in the
// URL are ServiceName, ClientVersion and Form).
var esrimapBlurb = "/servlet/com.esri.esrimap.Esrimap";
var cVersion = "?ClientVersion=9.0";
theService = "&ServiceName=" + theService;
var theForm = "&Form=True";
var actionURL = "http://" + theHost + esrimapBlurb + cVersion +
theService + theForm;
alert (actionURL);
//***Exercise 03, Step 05.4: Use the DOM togetthe form object in
the PostFrame and store it in a variable
// called thePostFormOBJ
var thePostFormOBJ = parent.PostFrame.document.forms[0];
//***Exercise 03, Step 05.5: Set the action attribute of
thePostFormOBJ to be the value of the actionURL
// variable that you populated earlier.
thePostFormOBJ.action=actionURL;
//***Exercise 03, Step 05.6: Set the XMLRequest INPUT element of
thePostFormOBJ to
// be the value of the theRequest variable that you populated
earlier.
thePostFormOBJ.ArcXMLRequest.value= theRequest;
//***Exercise 03, Step 05.7: Set the JavaScriptFunction attribute
of thePostFormOBJ to
//be "parent.InputFrame.processXML".
thePostFormOBJ.JavaScriptFunction.value =
"parent.InputFrame.processXML";
netscape.security.PrivilegeManager.enablePrivilege ("UniversalBrowserAccess")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesRead")
netscape.security.PrivilegeManager.enablePrivilege ("UniversalPreferencesWrite")
//***Exercise 03, Step 05.8: submit thePostFormOBJ
thePostFormOBJ.submit();
}
function processXML(theReply){
//***Exercise 03, Step 06.1: Update the text area with the response
theInputFormOBJ.Response.value = theReply;
}
function writeGetImage(){
//Build GET_IMAGE request
//<?xml version="1.0" encoding="UTF-8" ?>
//<ARCXML version="1.1">
//<REQUEST>
//<GET_SERVICE_INFO renderer="false" extensions="false"
fields="false" />
//</REQUEST>
//</ARCXML>
var getImageReq = '<?xml version="1.0" encoding="UTF-8" ?>\n';
getImageReq = getImageReq + '<ARCXML version="1.1">\n';
getImageReq = getImageReq + '<REQUEST>\n';
getImageReq = getImageReq + '<GET_SERVICE_INFO renderer="false"
extensions="false" fields="false" />\n';
getImageReq = getImageReq + '</REQUEST>\n';
getImageReq = getImageReq + '</ARCXML>';
//Put request in Request text area
theInputFormOBJ.Request.value = getImageReq;
}
</SCRIPT>
</HEAD>
<BODY BgColor="#CCCCCC" onLoad="init()">
<FORM name="theInputForm">
Host: <INPUT TYPE="Text" NAME="Host" VALUE="" size="20">&nbsp;&nbsp;
ArcIMS Service: <INPUT TYPE="Text" NAME="Service" VALUE="" size="20">
<BR><BR>
Request:<BR>
<TEXTAREA COLS=80 ROWS=15 NAME="Request" WRAP="soft" ></TEXTAREA><BR>
<!--***Exercise 03, Step 05.1: Use an onClick event in this element
to call a function named sendXML(). -->
<INPUT TYPE="button" NAME="theSendButton" VALUE="Send Request"
onClick="sendXML()">
<INPUT TYPE="button" NAME="getImage" VALUE="GetMap Service"
onClick="writeGetImage()"><BR>
Response:<BR>
<TEXTAREA COLS=80 ROWS=10 NAME="Response" WRAP="soft"></TEXTAREA><BR>
<INPUT TYPE="button" NAME="theClearButton" VALUE="Clear Response"
onClick="clearResponse()">
</FORM>
</BODY>
</HTML>
::::::::::::::::::::::::::::::::::::::::::::::::::
postForm.htm
::::::::::::::::::::::::::::::::::::::::::::::::::
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML>
<HEAD>
<TITLE>Post Form</TITLE>
</HEAD>
<BODY BGCOLOR="#CCCCCC" >
<!--***Exercise 03, Step 03.2: Use the FORM element to create a form
with an empty action attribute and a method
attribute that has a value of POST-->
<FORM action="" method="POST">
<!--***Exercise 03, Step 03.3: Create 4 hidden INPUT elements -->
<INPUT TYPE="Hidden" NAME="ArcXMLRequest" VALUE="">
<INPUT TYPE="Hidden" NAME="JavaScriptFunction"
VALUE="parent.InputFrame.processXML">
<INPUT TYPE="Hidden" NAME="BgColor" VALUE="#CCCCCC">
<INPUT TYPE="Hidden" NAME="FormCharset" VALUE="UTF-8">
</FORM>
</BODY>
</HTML>

It's a cross domain issue. You can't access the document of a frame if
it's loaded from a domain that's different from the original page
location. The are hacks togetaround it, but it's there as a security
protocol, so someone can't use JavaScript to transmit, say a password
when you enter it on another Web site.
So it sounds like the issue locally is that I don't have a domain when
the source is say file://C:/js/files/deafult.htm. Does that sound
correct?
Does one of the hacks involve using 'document.domain'? Could you point
me in the right direction to track down a hack that would allow me to
run locally instead of from a server?

May 12 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Ang Talunin | last post by:
Hey, I'm trying to read an xml from another webpage with: xmlDoc.load("http://www.otherwebsite.com/test.xml"); But this doesn't work...anybody knows a way to fix this? thnx, A.T.
2
by: John Mack | last post by:
Intermittently I get the following error on Firefox: "Error: uncaught exception: Permission denied to get property HTMLDocument.window" What can cause this error? I do an image switch via JS...
1
by: prash.marne | last post by:
Hi, I am trying open a simple popup window & my code is .. <html> <head> <title>popup_window</title> <script type="text/javascript"> function popup_onclick(){ my_window =...
2
by: mkoonani | last post by:
Hi, i am getting the following error while using js to communicate between parent and child windows using Firefox browser. Can anyone help me out from this.? MK
5
by: maya | last post by:
hi, what is this error please? uncaught exception: Permission denied to call method Location.toString I see this error sometimes in FF error console but it says nothing about what causes...
6
by: Chocky60 | last post by:
Despite contacting various Support people I cannot download a family tree from Genes Reunited. URL: http://www.genesreunited.co.uk/tree.asp?wci=tree Line:34 Their only ideas were to do with...
6
dmjpro
by: dmjpro | last post by:
I am getting this error in a Mozilla ..what causes this ? Basically i m setting this property to top, it is running in an application finely. But i am calling this application from another...
1
by: Mihania | last post by:
Permission denied exception is fired in IE6 on line(9) during the following actions . (1)<html> (2)<head> (3) <title>Simple :: documentDomain :: Cars</title> (4)</head> (5)<body> (6) ...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.