Files
palemoon27/devtools/shared/webconsole/test/test_network_longstring.html
roytam1 dc9aad1c85 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1218706 - Make 'unicode-bidi: isolate' the default for elements with a dir attribute. r=dbaron,jfkthame (037a5aaf57)
- Bug 743198 part 7 - Add :fullscreen pseudo class. r=heycam (05eb82ccc9)
- missing bits of  Bug 1242904 - Update Brotli t (f4f569d859)
- Bug 1235298 - Annotate intentional switch fallthroughs to suppress -Wimplicit-fallthrough warnings in netwerk/. r=mcmanus (c4ae414769)
- Bug 1244841 - Don't measure SharedArrayBuffer objects multiple times. r=lth. (e9b665dc82)
- Bug 234031 - broken parsing of xlen in gzip rfc 1952 r=mcmanus (c905b50417)
- Bug 1239605 - filter insertions into the global object. r=jandem (35520bc5c8)
- Bug 1248681 - Warn if the result of putWrapper goes unused; r=sfink (8051888ef8)
- Bug 1246293 - Fix a typo in DefineSelfHostedProperty; r=till (5e05a76b2a)
- Bug 1243808 - Allow modules to be compiled off main thread r=shu (51e5adca0a)
- Bug 1241767 - avoid default-only switch to placate MSVC. r=bbouvier (392aa8eda0)
- Bug 1239710 - Use CountingSort for Uint8Array and Int8Array; r=mrrrgn (6f394ab442)
- Bug 1246860 - Preserve holes when sorting arrays with a custom comparator. r=till (725b091e55)
- Bug 1247283 - Improve self-hosted Array.sort performance; r=till (ab1f3ddb74)
- Bug 1248717 - Don't initialize variables in a for head with var, then use them later. r=jorendorff (87a77f9623)
- Bug 1242196 - Use RadixSort for typed arrays. r=mrrrgn (a280ea097d)
- Bug 1246927 - Fix OOM handling in usages of GlobalObject::maybeGetIntrinsicValue. r=arai (f7f3761c45)
- Bug 1248405 - Recover from JSObject::getGroup OOM in CanOptimizeForDenseStorage. r=jandem (68ea32c044)
- Bug 1225905 - create a mozharness script that manages each beet mover task logic, NPOTB DONTBUILD r=rail (076f25536f)
- Bug 1246074 - add partials template config for mozharness beetmover, DONTBUILD r=rail (2e42c78d92)
- Bug 1246074 - add partials mozharness beetmover, custom tc artifact location, DONTBUILD NPOTB r=rail (c74fe0755a)
- Bug 1210538 - Add antivirus checks to release promotion graph a=rail (56de774389)
- Bug 1238610 - Restore compartment debug mode flags if adding a debuggee global fails r=jimb (f8a9a1fa85)
- Bug 1232842 - Fix aArgs in webconsole.js;r=bgrins (882cf6c741)
- Bug 1232727 - Change variable name on WebConsoleConnectionProxy - owner to webConsoleFrame;r=bgrins (612bbae037)
- Bug 1044365 - Do not force webconsole evaluation result to show up immediately after the input;r=vporof,r=past (cf2f9f1526)
- Bug 1064458 - Remove 'Log request and response bodies' preference. r=bgrins (02128e33d1)
- Bug 1240196 - Replace instances of console jsterm inputNode.value with a getInputValue function;r=linclark (f80ddb71f1)
- Bug 1237368 - Set inline style width to console output node so output scrolls faster;r=vporof (b6d6444541)
- Bug 1217591 - Make JS autocompletion in the console work inside of a worker toolbox;r=fitzgen (d7785c4a24)
- Bug 1218455 - Special case 'this' to include in console autocompletion;r=fitzgen (e443878d72)
- Bug 1207868 - Fix lexical scope autocomplete for global 'let' and 'const';r=past (787a6f87ca)
- Bug 1241956 - Use standard license boilerplate in webconsole js files. r=bgrins (54427be6d7)
- Bug 1243133 - Fix brace style in webconsole.js. r=linclark (959d579d58)
- Bug 1243764 - Remove named function syntax from webconsole.js methods;r=linclark (925801f356)
- Bug 1234287 - Refactor webconsole netlogging tests. r=bgrins (b195cae61c)
- Bug 1243851 - Treat enter as shift+enter if input is valid but incomplete; r=fitzgen, bgrins (f27c959bc0)
- Bug 1238610 - Fix implicit constructor errors r=me (6f26f92763)
- Bug 1242111 - Handle OOM in UpdateExecutionObservabilityOfScriptsInZone. (r=jimb) (91b125725f)
- Bug 1240503 - Skip the initial block scope when unwinding scopes due to an exception that's thrown in the prologue before the scope chain is properly initialized for a script that starts with a block scope. (r=jorendorff) (0247fc8848)
- Bug 1242111 - Fix references to oomTest. (r=me) (a9dc13a648)
- Bug 1240546 - Handle OOM in updateObservesAllExecutionOnDebuggees. (r=jimb) (5d7e3a49f4)
- Bug 1245961 - Throw a TypeError if less than one argument is supplied to isCompilableUnit;r=fitzgen (f896abb042)
- Bug 1240803 - Handle OOM in replaceFrameGuts. (r=jimb) (2d43384c72)
- Bug 1248094 - Simplify PCLocationMap with GCHashMap; r=fitzgen (b28d983bbd)
- we don't care much abut 68k sadly (51c50300c5)
- Bug 1233786 - JSScript::initScriptCounts should report OOMs. r=bhackett (eb42f7b8c1)
- Bug 1233178 - Move ScriptCounts allocation outside the HashMap. r=bhackett (c3fa6d487c)
- Bug 1141579 - Synchronize access to warmUpCount; r=jandem (a5b72cdf94)
- Bug 1203696: Improve comments about lazily-initialized member of js::LazyScript. r=shu (caa895612d)
- Bug 1221992 - Fix test using GetMostRecentWindow from the child process. r=smaug (07affe8195)
- Bug 1235636 - rewrite PCToLineNumber; r=fitzgen (9dc9ff013e)
- Bug 1232100 - "Check charsWritten in non-debug builds.". r=jcoppeard (fc5a64e621)
- last bit of  Bug 1197932 (86277af34e)
- Bug 1067049 - Implement arguments[@@iterator]. r=evilpie (543e513269)
- Bug 1248930 - Use Int32Value in ArrayBufferObject::BYTE_LENGTH_SLOT. r=lth (71e3a9ee51)
- Bug 1113685 - Report the right name when calling selfhosted functions on incompatible objects. r=till (51f68d4f8d)
- some symbol cleanup (83fca10034)
- Bug 1165011 - Remove Symbol_isRegExp. r=jorendorff (46a2d293cc)
- Bug 1122900: Make libyuv compile with MSVC 2015, r=rjesup. (9e147c7ba7)
- bug 1241453 - clean up GetAccessibleWrap() r=davidb (01e37c5012)
- Bug 1243331 - Prevent G_DEFINE_TYPE_EXTENDED macro from producing a fatal warning, r=tbsaunde (8bf031c4b9)
- Bug 1232527 - Call into WMF PDM to determine if WMF can decode instead of using GMPVideoDecoderTrialCreator. r=jwwang (7d2b1f16f1)
- Bug 1229475 - Fix gen-sources for libopus 1.1.1. r=cpearce (1e5a768d94)
- Bug 1229475 - Update libopus to 1.1.1 release. r=jmspeex (0b73488ab3)
- Bug 1139087 - Add moz.build bugzilla metadata for codecs. r=kinetik,gps (3d906f8f5a)
- Bug 1229475 - libopus: Patch out asm flags for run_analysis. r=jmspeex (bfa15edac1)
- Bug 1229475 - Fix unified build. r=cpearce (bbeda94cfc)
- Bug 1239078 - Update libopus to 1.1.2 release. r=kinetik (9990b00867)
- Bug 1239078 - Bump libopus update script for 1.1.2. r=kinetik (eecd46d3d3)
- bug 1230377 - part 1/2: ensure nsKeyObject releases NSS resources on shutdown r=jcj (9ceefecbea)
- bug 1230377 - part 2/2: simplify nsIKeyObject and nsIKeyObjectFactory r=jcj (1297d168b7)
- bug 1239609 - audit nsNSSShutDownObject destructors for correctness r=Cykesiopka,sworkman (c78404e52a)
- Bug 1246263 - fix unified build pollution r=valentin (f8db2c45cf)
- Bug 1214981 - Disable output stream buffering. r=keeler (d9e7a1b863)
- bug 1240173 - improve nsIX509Cert.dbKey r=Cykesiopka (0c0fc8e8a3)
- Bug 1238042 - Extract a helper function to check if a JSObject is a global with a particular about: URI. r=ehsan (d065854725)
- Bug 1244118 - Shutdown threadpool when xpcom-shutdown-threads happened. r=roc (e6ef2768b6)
- Bug 1201685 - Limit the number of indexedDB open() calls in IndexedDBHelper r=gwagner (a4fc80fca2)
- Bug 1244049 - Part 3: Replace the type of nsCSSSelector::mPseudoType. r=dbaron (c817ee6145)
- Bug 1244049 - Part 4: Define CSSPseudoElementTypeBase. r=dbaron (94dab59375)
- Bug 1246846 (part 1) - Avoid nsTHashtable::RawRemoveEntry() in dom/.  r=bz. (5371e478da)
- Bug 1246846 (part 2) - Avoid nsTHashtable::RawRemoveEntry() in nsPermissionManager. r=mconnor. (d7a1143ed1)
- Bug 1246846 (part 3) - Avoid nsTHashtable::RawRemoveEntry() in gfxFontconfigUtils. r=jfkthame. (d23259ca8e)
- Bug 1246846 (part 4) - Avoid nsTHashtable::RawRemoveEntry() in FramePropertyTable. r=roc. (7de416abfa)
- Bug 1238404 - Use 'using' directive instead of having separate Dispatch impl in subclasses of nsIEventTarget. r=froydnj (43028ed3b3)
- Bug 938699 - Remove FindElementWithViewId from nsIDOMWindowUtils.idl and nsDOMWindowUtils.cpp. r=kats (b49d2b5e6a)
- missing bit of Bug 1210294 - Remove the release-mode IsCallerChrome assertions (a555243280)
2023-11-22 17:12:30 +08:00

294 lines
7.7 KiB
HTML

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf8">
<title>Test that the network actor uses the LongStringActor</title>
<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript;version=1.8" src="common.js"></script>
<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
</head>
<body>
<p>Test that the network actor uses the LongStringActor</p>
<iframe src="http://example.com/chrome/devtools/shared/webconsole/test/network_requests_iframe.html"></iframe>
<script class="testbody" type="text/javascript;version=1.8">
SimpleTest.waitForExplicitFinish();
function startTest()
{
removeEventListener("load", startTest);
attachConsoleToTab(["NetworkActivity"], onAttach);
}
function onAttach(aState, aResponse)
{
info("set long string length");
window.ORIGINAL_LONG_STRING_LENGTH = DebuggerServer.LONG_STRING_LENGTH;
window.ORIGINAL_LONG_STRING_INITIAL_LENGTH =
DebuggerServer.LONG_STRING_INITIAL_LENGTH;
DebuggerServer.LONG_STRING_LENGTH = 400;
DebuggerServer.LONG_STRING_INITIAL_LENGTH = 400;
info("test network POST request");
onNetworkEvent = onNetworkEvent.bind(null, aState);
aState.dbgClient.addListener("networkEvent", onNetworkEvent);
onNetworkEventUpdate = onNetworkEventUpdate.bind(null, aState);
aState.dbgClient.addListener("networkEventUpdate", onNetworkEventUpdate);
let iframe = document.querySelector("iframe").contentWindow;
iframe.wrappedJSObject.testXhrPost();
}
function onNetworkEvent(aState, aType, aPacket)
{
is(aPacket.from, aState.actor, "network event actor");
info("checking the network event packet");
let netActor = aPacket.eventActor;
checkObject(netActor, {
actor: /[a-z]/,
startedDateTime: /^\d+\-\d+\-\d+T.+$/,
url: /data\.json/,
method: "POST",
});
aState.netActor = netActor.actor;
aState.dbgClient.removeListener("networkEvent", onNetworkEvent);
}
let updates = [];
function onNetworkEventUpdate(aState, aType, aPacket)
{
info("received networkEventUpdate " + aPacket.updateType);
is(aPacket.from, aState.netActor, "networkEventUpdate actor");
updates.push(aPacket.updateType);
let expectedPacket = null;
switch (aPacket.updateType) {
case "requestHeaders":
case "responseHeaders":
ok(aPacket.headers > 0, "headers > 0");
ok(aPacket.headersSize > 0, "headersSize > 0");
break;
case "requestCookies":
expectedPacket = {
cookies: 3,
};
break;
case "requestPostData":
ok(aPacket.dataSize > 0, "dataSize > 0");
ok(!aPacket.discardRequestBody, "discardRequestBody");
break;
case "responseStart":
expectedPacket = {
response: {
httpVersion: /^HTTP\/\d\.\d$/,
status: "200",
statusText: "OK",
headersSize: /^\d+$/,
discardResponseBody: false,
},
};
break;
case "securityInfo":
expectedPacket = {
state: "insecure",
};
break;
case "responseCookies":
expectedPacket = {
cookies: 0,
};
break;
case "responseContent":
expectedPacket = {
mimeType: "application/json",
contentSize: /^\d+$/,
discardResponseBody: false,
};
break;
case "eventTimings":
expectedPacket = {
totalTime: /^\d+$/,
};
break;
default:
ok(false, "unknown network event update type: " +
aPacket.updateType);
return;
}
if (expectedPacket) {
info("checking the packet content");
checkObject(aPacket, expectedPacket);
}
if (updates.indexOf("responseContent") > -1 &&
updates.indexOf("eventTimings") > -1) {
aState.dbgClient.removeListener("networkEventUpdate",
onNetworkEvent);
onRequestHeaders = onRequestHeaders.bind(null, aState);
aState.client.getRequestHeaders(aState.netActor,
onRequestHeaders);
}
}
function onRequestHeaders(aState, aResponse)
{
info("checking request headers");
ok(aResponse.headers.length > 0, "request headers > 0");
ok(aResponse.headersSize > 0, "request headersSize > 0");
checkHeadersOrCookies(aResponse.headers, {
Referer: /network_requests_iframe\.html/,
Cookie: /bug768096/,
});
onRequestCookies = onRequestCookies.bind(null, aState);
aState.client.getRequestCookies(aState.netActor,
onRequestCookies);
}
function onRequestCookies(aState, aResponse)
{
info("checking request cookies");
is(aResponse.cookies.length, 3, "request cookies length");
checkHeadersOrCookies(aResponse.cookies, {
foobar: "fooval",
omgfoo: "bug768096",
badcookie: "bug826798=st3fan",
});
onRequestPostData = onRequestPostData.bind(null, aState);
aState.client.getRequestPostData(aState.netActor,
onRequestPostData);
}
function onRequestPostData(aState, aResponse)
{
info("checking request POST data");
checkObject(aResponse, {
postData: {
text: {
type: "longString",
initial: /^Hello world! foobaz barr.+foobaz barrfo$/,
length: 552,
actor: /[a-z]/,
},
},
postDataDiscarded: false,
});
is(aResponse.postData.text.initial.length,
DebuggerServer.LONG_STRING_INITIAL_LENGTH, "postData text initial length");
onResponseHeaders = onResponseHeaders.bind(null, aState);
aState.client.getResponseHeaders(aState.netActor,
onResponseHeaders);
}
function onResponseHeaders(aState, aResponse)
{
info("checking response headers");
ok(aResponse.headers.length > 0, "response headers > 0");
ok(aResponse.headersSize > 0, "response headersSize > 0");
checkHeadersOrCookies(aResponse.headers, {
"Content-Type": /^application\/(json|octet-stream)$/,
"Content-Length": /^\d+$/,
"x-very-short": "hello world",
"x-very-long": {
"type": "longString",
"length": 521,
"initial": /^Lorem ipsum.+\. Donec vitae d$/,
"actor": /[a-z]/,
},
});
onResponseCookies = onResponseCookies.bind(null, aState);
aState.client.getResponseCookies(aState.netActor,
onResponseCookies);
}
function onResponseCookies(aState, aResponse)
{
info("checking response cookies");
is(aResponse.cookies.length, 0, "response cookies length");
onResponseContent = onResponseContent.bind(null, aState);
aState.client.getResponseContent(aState.netActor,
onResponseContent);
}
function onResponseContent(aState, aResponse)
{
info("checking response content");
checkObject(aResponse, {
content: {
text: {
type: "longString",
initial: /^\{ id: "test JSON data"(.|\r|\n)+ barfoo ba$/g,
length: 1070,
actor: /[a-z]/,
},
},
contentDiscarded: false,
});
is(aResponse.content.text.initial.length,
DebuggerServer.LONG_STRING_INITIAL_LENGTH, "content initial length");
onEventTimings = onEventTimings.bind(null, aState);
aState.client.getEventTimings(aState.netActor,
onEventTimings);
}
function onEventTimings(aState, aResponse)
{
info("checking event timings");
checkObject(aResponse, {
timings: {
blocked: /^-1|\d+$/,
dns: /^-1|\d+$/,
connect: /^-1|\d+$/,
send: /^-1|\d+$/,
wait: /^-1|\d+$/,
receive: /^-1|\d+$/,
},
totalTime: /^\d+$/,
});
closeDebugger(aState, function() {
DebuggerServer.LONG_STRING_LENGTH = ORIGINAL_LONG_STRING_LENGTH;
DebuggerServer.LONG_STRING_INITIAL_LENGTH = ORIGINAL_LONG_STRING_INITIAL_LENGTH;
SimpleTest.finish();
});
}
addEventListener("load", startTest);
</script>
</body>
</html>