Closed Bug 1217876 Opened 9 years ago Closed 5 years ago

[e10s] nsIXMLHttpRequest clients in a frame script don't get any visible AuthPrompt when needed

Categories

(Core :: Networking, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
e10s + ---
firefox51 --- fixed
firefox74 --- fixed

People

(Reporter: arantius, Assigned: kershaw)

References

Details

(Whiteboard: [necko-triaged])

Attachments

(5 files, 1 obsolete file)

Greasemonkey has received a bug report: https://github.com/greasemonkey/greasemonkey/issues/2190 In short, we do [1] an var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); (and follow on code) which normally works. If the URL being requested requires HTTP auth, the normal prompt is displayed for user/pass. Unless e10s is on. Then it's not displayed. The 401 response is simply returned to the caller. [1] https://github.com/greasemonkey/greasemonkey/blob/master/modules/xmlhttprequester.js#L50
Investigating.
Assignee: nobody → g.maone
QA Contact: g.maone
This scratchpad shows how the same nsIXMLHttpRequest client code hitting a 401 HTTP response triggers a visible AuthPrompt when executed from the browser context, but fails silently when executed in a frame script.
It turns out it's not add-on specific: using nsIXMLHttpRequest from a frame script suppresses authorization prompts. http://mxr.mozilla.org/mozilla-central/source/dom/base/nsXMLHttpRequest.cpp#3642 may be the interesting code here. Who's the expert in these lands? Not sure whether it's just an extension compatibility bug anymore, too.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: [e10s] XHR does not prompt for auth → [e10s] nsIXMLHttpRequest clients in a frame script don't get any visible AuthPrompt when needed
Version: unspecified → Trunk
See Also: → 1221320
Let's see if fixing bug 1221320 fixes this as well, then, if not, decide what to do.
Depends on: 1221320
See Also: 1221320
(In reply to Giorgio Maone from comment #4) > Let's see if fixing bug 1221320 fixes this as well, then, if not, decide > what to do. Unfortunately it does not fix it. I looked into this and it seems like that for the e10s frame script case in nsHttpChannelAuthProvider::PromptForIdentity when we call GetAuthPrompt it fails. In the non-framescript case we call GetAuthPrompt in an nsXMLHttpRequest object and it can handle the interface request. But for framescript case we have an HttpChannelParentListener and it cannot. Not sure how should it be fixed or what does that mean. Jason, could you help me out a bit here?
Flags: needinfo?(jduell.mcbugs)
Attached file auth-stack.txt
Attaching the stack just in case.
This sounds a lot like bug 1221320 to me too. Gabor, did you try the patch for that bug (it has changed a few times, and will again, but the current version ought to be good enough to see if it fixes this or not).
Flags: needinfo?(jduell.mcbugs) → needinfo?(gkrizsanits)
(In reply to Jason Duell [:jduell] (needinfo? me) from comment #7) > This sounds a lot like bug 1221320 to me too. Gabor, did you try the patch > for that bug (it has changed a few times, and will again, but the current > version ought to be good enough to see if it fixes this or not). I tried that patch that was attached to the bug 2 days ago. It is related yes but I don't see how would that patch fix this problem. Could you explain it to me? This one is about the code never reaching the XHR code that should open the auth dialog when the request is from a framescript, so we don't open the dialog just fail. The other bug is about we don't skip the auth dialog when we should (because the password is already provided I guess). The stack I attached is with the patch applied.
Flags: needinfo?(gkrizsanits) → needinfo?(jduell.mcbugs)
Honza, you understand auth stuff better than me, so I'm wondering if you can help here.
Flags: needinfo?(jduell.mcbugs) → needinfo?(honzab.moz)
The patch has not changed that much since that time. But worth a try, if not much work, Gabor? Anyway, the problem may be somewhere else (if not fixed with bug 1221320). It could be that the parent side NeckoParent::NestedFrameAuthPrompt::AsyncPromptAuth fails or the child side NeckoChild::RecvAsyncAuthPromptForNestedFrame could do something wrong. I'm tho not familiar with that parts of the code. A minimalistic test case would be nice.
Flags: needinfo?(honzab.moz) → needinfo?(gkrizsanits)
Steps to reproduce: 1) Open Scratchpad 2) Menu: "Environment-Browser" 3) Insert the code: function framescript() { var url = "http://browserspy.dk/password-ok.php"; var sandbox = new Components.utils.Sandbox(this, {wantXrays: true}); function GM_xmlhttpRequester(url) { var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); req.addEventListener("load", function () { console.log("req - status: " + req.status + " ; statusText: " + req.statusText); }); req.open("GET", url, true); req.send(null); } sandbox.GM_xmlhttpRequest = new GM_xmlhttpRequester(url); Components.utils.evalInSandbox("GM_xmlhttpRequest;", sandbox); } gBrowser.selectedBrowser.messageManager.loadFrameScript("data:,(" + framescript.toString() + ")();", false); 4) Run 5) The result: [e10s on] Does not show login prompt In the Browser Console: "req - status: 401 ; statusText: Authorization Required" [e10s off] Show login prompt, inserting login and password In the Browser Console: "req - status: 200 ; statusText: OK"
An alternative to the original code (attachment 8680121 [details]). Including the sandbox environment.
Stealing the bug for long inactivity.
Assignee: g.maone → honzab.moz
QA Contact: g.maone
There is no mTabParent set on HttpChannelParent of the channel handling the XHR. Throwing to DOM.
Assignee: honzab.moz → nobody
Component: Extension Compatibility → DOM
Product: Firefox → Core
The issue here is that HttpChannelChild has the nsXMLHttpRequest as mCallbacks, but this nsXMLHttpRequest doesn't implement the nsITabChild interface.
Sorry for the lag here, I was on PTO, and now it seems like this needInfo is not needed any longer so clearing it.
Flags: needinfo?(gkrizsanits)
Priority: -- → P2
Is it possible for someone on the team to look at this bug?
Flags: needinfo?(jst)
Andrew should be able to find someone to have a look.
Flags: needinfo?(jst) → needinfo?(overholt)
Assignee: nobody → amarchesini
Attached patch prompt.patchSplinter Review
Attachment #8785777 - Flags: review?(jduell.mcbugs)
Comment on attachment 8785777 [details] [diff] [review] prompt.patch Review of attachment 8785777 [details] [diff] [review]: ----------------------------------------------------------------- Honza knows the prompt code best.
Attachment #8785777 - Flags: review?(jduell.mcbugs) → review?(honzab.moz)
Flags: needinfo?(overholt)
(In reply to Andrea Marchesini [:baku] from comment #15) > The issue here is that HttpChannelChild has the nsXMLHttpRequest as > mCallbacks, but this nsXMLHttpRequest doesn't implement the nsITabChild > interface. Can we carry the necessary info from nsXMLHttpRequest somehow?
Flags: needinfo?(amarchesini)
Comment on attachment 8785777 [details] [diff] [review] prompt.patch Review of attachment 8785777 [details] [diff] [review]: ----------------------------------------------------------------- ::: netwerk/protocol/http/HttpChannelParentListener.cpp @@ +142,5 @@ > + do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv); > + NS_ENSURE_SUCCESS(rv, rv); > + > + return wwatch->GetPrompt(nullptr, aIID, > + reinterpret_cast<void**>(result)); this is what docshell mostly do, yes. but, how will this respect PB mode (among I believe other problems)? according [1] the prompt will behave as if always in PB mode (so, it will not store the password and probably leak it to the PB context) I'm afraid you need to find the reference to the window here (tabparent). the first arg should not be null. [1] https://dxr.mozilla.org/mozilla-central/rev/b7f7ae14590aced450bb0b0469dfb38edd2c0ace/toolkit/components/passwordmgr/nsLoginManagerPrompter.js#259
Attachment #8785777 - Flags: review?(honzab.moz) → review-
> I'm afraid you need to find the reference to the window here (tabparent). > the first arg should not be null. There is not tabParent in this scenario. The XHR is created from a sandbox and, with my patch, the prompt is created with a null window exactly how it happens in the non-e10s scenario. In non-e10s XHR doesn't have a window and we end up creating a prompt using nullptr as first argument in GetPrompt().
Flags: needinfo?(amarchesini) → needinfo?(honzab.moz)
(In reply to Andrea Marchesini [:baku] from comment #23) > > I'm afraid you need to find the reference to the window here (tabparent). > > the first arg should not be null. > > There is not tabParent in this scenario. The XHR is created from a sandbox > and, with my patch, the prompt is created with a null window exactly how it > happens in the non-e10s scenario. In non-e10s XHR doesn't have a window and > we end up creating a prompt using nullptr as first argument in GetPrompt(). OK, next time it would be enough to put this explanation to bugzilla, and best also to the patch ;) If you did that, we could probably already land this. Please rerequest r, I'll take a look again.
Flags: needinfo?(honzab.moz)
Attachment #8785777 - Flags: review- → review?(honzab.moz)
Comment on attachment 8785777 [details] [diff] [review] prompt.patch Review of attachment 8785777 [details] [diff] [review]: ----------------------------------------------------------------- ::: netwerk/protocol/http/HttpChannelParentListener.cpp @@ +135,5 @@ > return ir->GetInterface(aIID, result); > } > > + if (aIID.Equals(NS_GET_IID(nsIAuthPrompt)) || > + aIID.Equals(NS_GET_IID(nsIAuthPrompt2))) { nit: fix the indention
Attachment #8785777 - Flags: review?(honzab.moz) → review+
Whiteboard: triaged
Blocks: triaged-tracking
No longer blocks: e10s-addons
Pushed by amarchesini@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/72d07ba521af nsIXMLHttpRequest must show the authentication prompt correctly when used by addons in e10s, r=mayhemer
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
2016-09-08 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 Built from https://hg.mozilla.org/mozilla-central/rev/938ce16be25f9c551c19ef8938e8717ed3d41ff5 (https://hg.mozilla.org/mozilla-central/file/938ce16be25f9c551c19ef8938e8717ed3d41ff5/netwerk/protocol/http/HttpChannelParentListener.cpp#l138) I'm sorry, but the bug persists (everything is identical) :-/ I think this issue should be reopen...
Flags: needinfo?(honzab.moz)
Flags: needinfo?(amarchesini)
I didn't test the patch. There is also no automated test, but Andrea sound pretty confident this works. I leave it up to him.
Flags: needinfo?(honzab.moz)
Can you please check it in non-e10s mode? it seems to me that now the feature is completely broken. What I see is this error: JavaScript error: chrome://browser/content/tabbrowser.xml, line 390: TypeError: aWindow is null JavaScript error: , line 0: uncaught exception: 2147500033 JavaScript error: file:///home/baku/Sources/m/foobar/build/dist/bin/components/nsPrompter.js, line 743: TypeError: checkValue is undefined
Flags: needinfo?(amarchesini) → needinfo?(janekptacijarabaci)
I suspect something in the prompt code changed in the meantime because my patch was working following the comment 11.
> Can you please check it in non-e10s mode? it seems to me that now the feature is completely broken. Yes... :-/ [e10s]: off Last good: 2016-09-01 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 Built from https://hg.mozilla.org/mozilla-central/rev/b7f7ae14590aced450bb0b0469dfb38edd2c0ace First bad: 2016-09-02 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 Built from https://hg.mozilla.org/mozilla-central/rev/d5f20820c80514476f596090292a5d77c4b41e3b Pushlog http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b7f7ae14590aced450bb0b0469dfb38edd2c0ace&tochange=d5f20820c80514476f596090292a5d77c4b41e3b Bug 1266836 is the suspect. And... I think it's time to build a test...
Flags: needinfo?(janekptacijarabaci)
Bug 1301109 is about fixing this issue. I'll reopen this bug and I mark it as depending of bug 1301109.
Status: RESOLVED → REOPENED
Depends on: 1301109
Resolution: FIXED → ---
Should we backout the change that landed here or is that useful? It's adding another caller of GetPrompt with a null window which makes it so we don't know where to show the doorhanger.
Flags: needinfo?(amarchesini)
The same thing happens in non-e10s, so eventually we will have this code in. I want to see what happens when bug 1301109 lands. If bug 1301109 fixes the regression, magically this bug is fix without any additional changes.
Flags: needinfo?(amarchesini)
The testcase in bug 1217876 comment 11 doesn't even get to the nsLoginManagerPrompter code so I don't think it will fix this.
Sorry, I meant when I apply the patch in bug 1301109
In bug 1301109 I added a test (test_prompt_noWindow.html) that is disabled in e10s until this bug is fixed. You can enable that test while working on this bug and then enable it with your patch.
Attached patch a.patch (obsolete) — Splinter Review
Attachment #8792788 - Flags: review?(honzab.moz)
Attached patch a.patchSplinter Review
Comment added.
Attachment #8792788 - Attachment is obsolete: true
Attachment #8792788 - Flags: review?(honzab.moz)
Attachment #8792789 - Flags: review?(honzab.moz)
Please, try you update with more content (I have (8) situations): 1) Open Scratchpad 2) Menu: "Environment-Browser" ____________________________________________________________________________________________________ * Without the sandbox * e10s on ("XHR in a frame script?" - OK(1)/Cancel(2)) e10s off ("XHR in a frame script?" - OK(3)/Cancel(4)) ____________________________________________________________________________________________________ 3) Insert the code: function framescript() { var consoleService = Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService); var url = "http://browserspy.dk/password-ok.php"; var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); req.addEventListener("load", function () { consoleService.logStringMessage("req - status: " + req.status + " ; statusText: " + req.statusText); }); req.open("GET", url, true); req.send(null); } if (confirm("XHR in a frame script?")) { gBrowser.selectedBrowser.messageManager.loadFrameScript("data:,(" + framescript.toString() + ")();", false); } else { framescript(); } ____________________________________________________________________________________________________ * In the sandbox * e10s on ("XHR in a frame script?" - OK(5)/Cancel(6)) e10s off ("XHR in a frame script?" - OK(7)/Cancel(8)) ____________________________________________________________________________________________________ 3) Insert the code: function framescript() { var url = "http://browserspy.dk/password-ok.php"; var sandbox = new Components.utils.Sandbox(this, {wantXrays: true}); function GM_xmlhttpRequester(url) { var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); req.addEventListener("load", function () { console.log("req - status: " + req.status + " ; statusText: " + req.statusText); }); req.open("GET", url, true); req.send(null); } sandbox.GM_xmlhttpRequest = new GM_xmlhttpRequester(url); Components.utils.evalInSandbox("GM_xmlhttpRequest;", sandbox); } if (confirm("XHR in a frame script?")) { gBrowser.selectedBrowser.messageManager.loadFrameScript("data:,(" + framescript.toString() + ")();", false); } else { framescript(); } ____________________________________________________________________________________________________ 4) Run 5) The result: Bad: Does not show login prompt In the Browser Console: "req - status: 401 ; statusText: Authorization Required" Good: Show login prompt, inserting login and password In the Browser Console: "req - status: 200 ; statusText: OK"
Comment on attachment 8792789 [details] [diff] [review] a.patch Review of attachment 8792789 [details] [diff] [review]: ----------------------------------------------------------------- for the record, this is also back-out of the original patch ::: netwerk/protocol/http/HttpChannelParent.cpp @@ +195,5 @@ > + if ((aIID.Equals(NS_GET_IID(nsIAuthPrompt)) || > + aIID.Equals(NS_GET_IID(nsIAuthPrompt2))) && > + // If there is no mTabParent, probably this XHR has been created without a > + // window (WebExtensions? chrome code?) > + !mTabParent) { nit: might be better to move the !mTabParent part to the left of &&. It's more likely be non-null and will save the expensive iid compare. please clean up the comment, maybe like: // A system XHR can be created without reference to a window, hence mTabParent may be null. In that case we want to let the window watcher pick a prompt directly. ..or whatever better comment comes up. @@ +196,5 @@ > + aIID.Equals(NS_GET_IID(nsIAuthPrompt2))) && > + // If there is no mTabParent, probably this XHR has been created without a > + // window (WebExtensions? chrome code?) > + !mTabParent) { > + nsresult rv; declare as the first local var in the method.
Attachment #8792789 - Flags: review?(honzab.moz) → review+
Pushed by amarchesini@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/04cda7684b40 nsIXMLHttpRequest must show the authentication prompt correctly when used by addons in e10s, r=mayhemer
Backed out for failing xpcshell test test_resumable_channel_wrap.js in debug builds: https://hg.mozilla.org/integration/mozilla-inbound/rev/54ac14a91d83 Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=04cda7684b40ba85af735d4b37bf8d45bb88888f Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=36464290&repo=mozilla-inbound [task 2016-09-25T08:30:53.501778Z] 08:30:53 WARNING - TEST-UNEXPECTED-FAIL | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | xpcshell return code: -11 [task 2016-09-25T08:30:53.515960Z] 08:30:53 INFO - TEST-INFO took 6775ms [task 2016-09-25T08:30:53.517200Z] 08:30:53 INFO - >>>>>>> [task 2016-09-25T08:30:53.518958Z] 08:30:53 INFO - PROCESS | 10163 | [10163] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /home/worker/workspace/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2770 [task 2016-09-25T08:30:53.520510Z] 08:30:53 INFO - (xpcshell/head.js) | test MAIN run_test pending (1) [task 2016-09-25T08:30:53.522128Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript strict warning: /home/worker/workspace/build/tests/xpcshell/head.js, line 1261: ReferenceError: assignment to undeclared variable _XPCSHELL_PROCESS [task 2016-09-25T08:30:53.523920Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: Couldn't get the user appdata directory, crash dumps will go in an unusual location: file /home/worker/workspace/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2847 [task 2016-09-25T08:30:53.525665Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /home/worker/workspace/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2770 [task 2016-09-25T08:30:53.527027Z] 08:30:53 INFO - (xpcshell/head.js) | test run in child pending (2) [task 2016-09-25T08:30:53.531957Z] 08:30:53 INFO - (xpcshell/head.js) | test MAIN run_test finished (2) [task 2016-09-25T08:30:53.532134Z] 08:30:53 INFO - running event loop [task 2016-09-25T08:30:53.533136Z] 08:30:53 INFO - PROCESS | 10163 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties [task 2016-09-25T08:30:53.534197Z] 08:30:53 INFO - PROCESS | 10163 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties [task 2016-09-25T08:30:53.535422Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /home/worker/workspace/build/src/netwerk/base/nsIOService.cpp, line 791 [task 2016-09-25T08:30:53.536634Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /home/worker/workspace/build/src/netwerk/base/nsNetUtilInlines.h, line 180 [task 2016-09-25T08:30:53.537839Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /home/worker/workspace/build/src/dom/media/CubebUtils.cpp, line 175 [task 2016-09-25T08:30:53.539042Z] 08:30:53 INFO - "CONSOLE_MESSAGE: (warn) [JavaScript Warning: "ReferenceError: assignment to undeclared variable _XPCSHELL_PROCESS" {file: "/home/worker/workspace/build/tests/xpcshell/head.js" line: 1261}]" [task 2016-09-25T08:30:53.548033Z] 08:30:53 INFO - "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties" [task 2016-09-25T08:30:53.548360Z] 08:30:53 INFO - "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties" [task 2016-09-25T08:30:53.549655Z] 08:30:53 INFO - PROCESS | 10163 | [Child 10181] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /home/worker/workspace/build/src/toolkit/xre/nsXREDirProvider.cpp, line 1703 [task 2016-09-25T08:30:53.550978Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: 'NS_FAILED(rv)', file /home/worker/workspace/build/src/extensions/spellcheck/src/mozPersonalDictionary.cpp, line 215 [task 2016-09-25T08:30:53.552108Z] 08:30:53 INFO - PROCESS | 10163 | (xpcshell:10163): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed [task 2016-09-25T08:30:53.552486Z] 08:30:53 INFO - PROCESS | 10163 | (xpcshell:10163): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed [task 2016-09-25T08:30:53.552817Z] 08:30:53 INFO - PROCESS | 10163 | (xpcshell:10163): Gdk-CRITICAL **: gdk_screen_get_resolution: assertion `GDK_IS_SCREEN (screen)' failed [task 2016-09-25T08:30:53.554027Z] 08:30:53 INFO - PROCESS | 10163 | (xpcshell:10163): Gdk-CRITICAL **: gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed [task 2016-09-25T08:30:53.554205Z] 08:30:53 INFO - CHILD-TEST-STARTED [task 2016-09-25T08:30:53.554412Z] 08:30:53 INFO - (xpcshell/head.js) | test MAIN run_test pending (1) [task 2016-09-25T08:30:53.554587Z] 08:30:53 INFO - PROCESS | 10163 | *** run_test [task 2016-09-25T08:30:53.555860Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: site security information will not be persisted: file /home/worker/workspace/build/src/security/manager/ssl/nsSiteSecurityService.cpp, line 260 [task 2016-09-25T08:30:53.557096Z] 08:30:53 INFO - PROCESS | 10163 | [Child 10181] WARNING: site security information will not be persisted: file /home/worker/workspace/build/src/security/manager/ssl/nsSiteSecurityService.cpp, line 260 [task 2016-09-25T08:30:53.558790Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NSS will be initialized without a profile directory. Some things may not work as expected.: file /home/worker/workspace/build/src/security/manager/ssl/nsNSSComponent.cpp, line 1626 [task 2016-09-25T08:30:53.558986Z] 08:30:53 INFO - (xpcshell/head.js) | test pending (2) [task 2016-09-25T08:30:53.563960Z] 08:30:53 INFO - (xpcshell/head.js) | test MAIN run_test finished (2) [task 2016-09-25T08:30:53.564135Z] 08:30:53 INFO - running event loop [task 2016-09-25T08:30:53.565231Z] 08:30:53 INFO - PROCESS | 10163 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties [task 2016-09-25T08:30:53.566593Z] 08:30:53 INFO - PROCESS | 10163 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties [task 2016-09-25T08:30:53.568369Z] 08:30:53 INFO - PROCESS | 10163 | [Child 10181] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /home/worker/workspace/build/src/netwerk/base/nsIOService.cpp, line 791 [task 2016-09-25T08:30:53.572006Z] 08:30:53 INFO - PROCESS | 10163 | [Child 10181] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /home/worker/workspace/build/src/netwerk/base/nsNetUtilInlines.h, line 180 [task 2016-09-25T08:30:53.573298Z] 08:30:53 INFO - PROCESS | 10163 | [Child 10181] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /home/worker/workspace/build/src/dom/media/CubebUtils.cpp, line 175 [task 2016-09-25T08:30:53.574659Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NS_ENSURE_SUCCESS(rv, NS_ERROR_UNEXPECTED) failed with result 0x80004005: file /home/worker/workspace/build/src/extensions/cookie/nsPermissionManager.cpp, line 860 [task 2016-09-25T08:30:53.576034Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: Forcing memory-only entry since CacheFileIOManager doesn't have mCacheDirectory.: file /home/worker/workspace/build/src/netwerk/cache2/CacheFile.cpp, line 520 [task 2016-09-25T08:30:53.580432Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.581797Z] 08:30:53 INFO - PROCESS | 10163 | *** get_entity_id() [task 2016-09-25T08:30:53.583756Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | get_entity_id - [get_entity_id : 85] must be a resumable channel - true == true [task 2016-09-25T08:30:53.585531Z] 08:30:53 INFO - PROCESS | 10163 | *** entity id = /36/ [task 2016-09-25T08:30:53.587328Z] 08:30:53 INFO - PROCESS | 10163 | *** try_resume() [task 2016-09-25T08:30:53.589247Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_resume - [try_resume : 98] 2152398873 == 2152398873 [task 2016-09-25T08:30:53.596125Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 35 == 35 [task 2016-09-25T08:30:53.596334Z] 08:30:53 INFO - PROCESS | 10163 | *** try_resume_zero() [task 2016-09-25T08:30:53.596667Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_resume_zero - [try_resume_zero : 108] true == true [task 2016-09-25T08:30:53.598069Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_resume_zero - [try_resume_zero : 109] "ody of the range request handler.\\r\\n" == "ody of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.599263Z] 08:30:53 INFO - PROCESS | 10163 | *** try_no_range() [task 2016-09-25T08:30:53.600704Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_no_range - [try_no_range : 120] true == true [task 2016-09-25T08:30:53.603102Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_no_range - [try_no_range : 121] 2152398873 == 2152398873 [task 2016-09-25T08:30:53.607855Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.608060Z] 08:30:53 INFO - PROCESS | 10163 | *** try_bytes_range() [task 2016-09-25T08:30:53.608389Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytes_range - [try_bytes_range : 132] true == true [task 2016-09-25T08:30:53.609748Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytes_range - [try_bytes_range : 133] "Body of the range request handler.\\r\\n" == "Body of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.609959Z] 08:30:53 INFO - PROCESS | 10163 | *** try_foo_bar_range() [task 2016-09-25T08:30:53.611103Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_foo_bar_range - [try_foo_bar_range : 144] true == true [task 2016-09-25T08:30:53.612297Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_foo_bar_range - [try_foo_bar_range : 145] 2152398873 == 2152398873 [task 2016-09-25T08:30:53.612503Z] 08:30:53 INFO - PROCESS | 10163 | *** try_foobar_range() [task 2016-09-25T08:30:53.613646Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_foobar_range - [try_foobar_range : 156] true == true [task 2016-09-25T08:30:53.614708Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_foobar_range - [try_foobar_range : 157] 2152398873 == 2152398873 [task 2016-09-25T08:30:53.616028Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.616248Z] 08:30:53 INFO - PROCESS | 10163 | *** try_bytes_foobar_range() [task 2016-09-25T08:30:53.617425Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytes_foobar_range - [try_bytes_foobar_range : 168] true == true [task 2016-09-25T08:30:53.624194Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytes_foobar_range - [try_bytes_foobar_range : 169] "Body of the range request handler.\\r\\n" == "Body of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.624417Z] 08:30:53 INFO - PROCESS | 10163 | *** try_bytesfoo_bar_range() [task 2016-09-25T08:30:53.625897Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytesfoo_bar_range - [try_bytesfoo_bar_range : 180] true == true [task 2016-09-25T08:30:53.628233Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_bytesfoo_bar_range - [try_bytesfoo_bar_range : 181] 2152398873 == 2152398873 [task 2016-09-25T08:30:53.630796Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.631890Z] 08:30:53 INFO - PROCESS | 10163 | *** try_no_accept_ranges() [task 2016-09-25T08:30:53.634172Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_no_accept_ranges - [try_no_accept_ranges : 191] true == true [task 2016-09-25T08:30:53.639923Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_no_accept_ranges - [try_no_accept_ranges : 192] "Body of the range request handler.\\r\\n" == "Body of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.641131Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NS_ENSURE_TRUE(mIsPending) failed: file /home/worker/workspace/build/src/netwerk/protocol/http/nsHttpChannel.cpp, line 7852 [task 2016-09-25T08:30:53.642413Z] 08:30:53 INFO - PROCESS | 10163 | [Parent 10163] WARNING: NS_ENSURE_TRUE(mSuspendCount > 0) failed: file /home/worker/workspace/build/src/netwerk/protocol/http/nsHttpChannel.cpp, line 7873 [task 2016-09-25T08:30:53.643620Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.643836Z] 08:30:53 INFO - PROCESS | 10163 | *** try_suspend_resume() [task 2016-09-25T08:30:53.644185Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_suspend_resume - [try_suspend_resume : 203] true == true [task 2016-09-25T08:30:53.645514Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | try_suspend_resume - [try_suspend_resume : 204] "Body of the range request handler.\\r\\n" == "Body of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.646753Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | ChannelListener.prototype.onStopRequest - [ChannelListener.prototype.onStopRequest : 165] 36 == 36 [task 2016-09-25T08:30:53.646953Z] 08:30:53 INFO - PROCESS | 10163 | *** success() [task 2016-09-25T08:30:53.647979Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | success - [success : 214] true == true [task 2016-09-25T08:30:53.651215Z] 08:30:53 INFO - TEST-PASS | netwerk/test/unit_ipc/test_resumable_channel_wrap.js | success - [success : 215] "Body of the range request handler.\\r\\n" == "Body of the range request handler.\\r\\n" [task 2016-09-25T08:30:53.652974Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/crypto-SDR.js, line 66: : Component returned failure code: 0x805a1f9b [nsIPK11Token.initPassword] [task 2016-09-25T08:30:53.655432Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js, line 90: Error: Initialization failed [task 2016-09-25T08:30:53.663048Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/nsLoginManager.js, line 130: NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: [JavaScript Error: "Initialization failed" {file: "jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js" line: 90}]'[JavaScript Error: "Initialization failed" {file: "jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js" line: 90}]' when calling method: [nsILoginManagerStorage::initialize] [task 2016-09-25T08:30:53.664581Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/nsLoginManagerPrompter.js, line 219: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService] [task 2016-09-25T08:30:53.665872Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/crypto-SDR.js, line 66: : Component returned failure code: 0x805a1f9b [nsIPK11Token.initPassword] [task 2016-09-25T08:30:53.667004Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js, line 90: Error: Initialization failed [task 2016-09-25T08:30:53.669472Z] 08:30:53 INFO - PROCESS | 10163 | JavaScript error: jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/nsLoginManager.js, line 130: NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: [JavaScript Error: "Initialization failed" {file: "jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js" line: 90}]'[JavaScript Error: "Initialization failed" {file: "jar:file:///home/worker/workspace/build/application/firefox/omni.ja!/components/storage-json.js" line: 90}]' when calling method: [nsILoginManagerStorage::initialize] [task 2016-09-25T08:30:53.670833Z] 08:30:53 INFO - PROCESS | 10163 | \x07[Parent 10163] ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file /home/worker/workspace/build/src/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 981 [task 2016-09-25T08:31:19.015813Z] 08:31:19 INFO - PROCESS | 10163 | #01: nsWindowWatcher::OpenWindow [embedding/components/windowwatcher/nsWindowWatcher.cpp:375] [task 2016-09-25T08:31:19.018856Z] 08:31:19 INFO - PROCESS | 10163 | #02: NS_InvokeByIndex [xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:184] [task 2016-09-25T08:31:19.020811Z] 08:31:19 INFO - PROCESS | 10163 | #03: CallMethodHelper::Call [js/xpconnect/src/xpcprivate.h:752] [task 2016-09-25T08:31:19.022713Z] 08:31:19 INFO - PROCESS | 10163 | #04: XPCWrappedNative::CallMethod [js/xpconnect/src/XPCWrappedNative.cpp:1349] [task 2016-09-25T08:31:19.024627Z] 08:31:19 INFO - PROCESS | 10163 | #05: XPC_WN_CallMethod [js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1143] [task 2016-09-25T08:31:19.026497Z] 08:31:19 INFO - PROCESS | 10163 | #06: js::CallJSNative [js/src/jscntxtinlines.h:240] [task 2016-09-25T08:31:19.028367Z] 08:31:19 INFO - PROCESS | 10163 | #07: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:458] [task 2016-09-25T08:31:19.030212Z] 08:31:19 INFO - PROCESS | 10163 | #08: Interpret [js/src/vm/Interpreter.cpp:2922] [task 2016-09-25T08:31:19.032095Z] 08:31:19 INFO - PROCESS | 10163 | #09: js::RunScript [js/src/vm/Interpreter.cpp:375] [task 2016-09-25T08:31:19.034021Z] 08:31:19 INFO - PROCESS | 10163 | #10: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:476] [task 2016-09-25T08:31:19.035853Z] 08:31:19 INFO - PROCESS | 10163 | #11: js::Call [js/src/vm/Interpreter.cpp:522] [task 2016-09-25T08:31:19.037703Z] 08:31:19 INFO - PROCESS | 10163 | #12: JS_CallFunctionValue [js/src/jsapi.cpp:2776] [task 2016-09-25T08:31:19.039569Z] 08:31:19 INFO - PROCESS | 10163 | #13: nsXPCWrappedJSClass::CallMethod [js/xpconnect/src/XPCWrappedJSClass.cpp:1211] [task 2016-09-25T08:31:19.041464Z] 08:31:19 INFO - PROCESS | 10163 | #14: PrepareAndDispatch [xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:124] [task 2016-09-25T08:31:19.043356Z] 08:31:19 INFO - PROCESS | 10163 | #15: NS_InvokeByIndex [xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:184] [task 2016-09-25T08:31:19.045247Z] 08:31:19 INFO - PROCESS | 10163 | [Parent 10163] ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file /home/worker/workspace/build/src/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 981 [task 2016-09-25T08:31:19.047294Z] 08:31:19 INFO - PROCESS | 10163 | Hit MOZ_CRASH() at /home/worker/workspace/build/src/memory/mozalloc/mozalloc_abort.cpp:33 [task 2016-09-25T08:31:19.049014Z] 08:31:19 INFO - PROCESS | 10163 | ExceptionHandler::GenerateDump cloned child 10207 [task 2016-09-25T08:31:19.050958Z] 08:31:19 INFO - PROCESS | 10163 | ExceptionHandler::SendContinueSignalToChild sent continue signal to child [task 2016-09-25T08:31:19.052918Z] 08:31:19 INFO - PROCESS | 10163 | ExceptionHandler::WaitForContinueSignal waiting for continue signal... [task 2016-09-25T08:31:19.054961Z] 08:31:19 INFO - PROCESS | 10163 | \x07[Child 10181] ###!!! ABORT: Aborting on channel error.: file /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp, line 2057 [task 2016-09-25T08:31:19.057003Z] 08:31:19 INFO - PROCESS | 10163 | #01: mozilla::ipc::ProcessLink::OnChannelError [ipc/glue/MessageLink.cpp:351] [task 2016-09-25T08:31:19.058991Z] 08:31:19 INFO - PROCESS | 10163 | #02: event_base_loop [ipc/chromium/src/third_party/libevent/event.c:1355] [task 2016-09-25T08:31:19.061013Z] 08:31:19 INFO - PROCESS | 10163 | #03: base::MessagePumpLibevent::Run [ipc/chromium/src/base/message_pump_libevent.cc:372] [task 2016-09-25T08:31:19.062938Z] 08:31:19 INFO - PROCESS | 10163 | #04: MessageLoop::RunInternal [ipc/chromium/src/base/message_loop.cc:233] [task 2016-09-25T08:31:19.065076Z] 08:31:19 INFO - PROCESS | 10163 | #05: MessageLoop::Run [ipc/chromium/src/base/message_loop.cc:490] [task 2016-09-25T08:31:19.066976Z] 08:31:19 INFO - PROCESS | 10163 | #06: base::Thread::ThreadMain [ipc/chromium/src/base/thread.cc:183] [task 2016-09-25T08:31:19.068963Z] 08:31:19 INFO - PROCESS | 10163 | #07: ThreadFunc [ipc/chromium/src/base/platform_thread_posix.cc:40] [task 2016-09-25T08:31:19.071110Z] 08:31:19 INFO - PROCESS | 10163 | #08: libpthread.so.0 + 0x7e9a [task 2016-09-25T08:31:19.073119Z] 08:31:19 INFO - PROCESS | 10163 | #09: libc.so.6 + 0xf336d [task 2016-09-25T08:31:19.075113Z] 08:31:19 INFO - PROCESS | 10163 | [Child 10181] ###!!! ABORT: Aborting on channel error.: file /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp, line 2057 [task 2016-09-25T08:31:19.077136Z] 08:31:19 INFO - PROCESS | 10163 | Hit MOZ_CRASH() at /home/worker/workspace/build/src/memory/mozalloc/mozalloc_abort.cpp:33 [task 2016-09-25T08:31:19.078939Z] 08:31:19 INFO - <<<<<<<
Flags: needinfo?(amarchesini)
Priority: P2 → P3
The original example returns: Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] is undefined See also: https://bugzilla.mozilla.org/show_bug.cgi?id=792808 -------------------------------------------------------------------------------- A new example: function framescript() { var url = "http://browserspy.dk/password-ok.php"; var sandbox = new Components.utils.Sandbox(this, {wantXrays: true}); function GM_xmlhttpRequester(url) { Components.utils.importGlobalProperties(["XMLHttpRequest"]); var req = new XMLHttpRequest(); req.addEventListener("load", function () { console.log("req - status: " + req.status + " ; statusText: " + req.statusText); }); req.open("GET", url, true); req.send(null); } sandbox.GM_xmlhttpRequest = new GM_xmlhttpRequester(url); Components.utils.evalInSandbox("GM_xmlhttpRequest;", sandbox); } gBrowser.selectedBrowser.messageManager.loadFrameScript("data:,(" + framescript.toString() + ")();", false); -------------------------------------------------------------------------------- See also: https://github.com/violentmonkey/violentmonkey/issues/301
The result: [e10s on/off] Does not show login prompt In the Browser Console: "req - status: 401 ; statusText: Authorization Required"
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1409449 -------------------------------------------------------------------------------- about:config network.auth.non-web-content-triggered-resources-http-auth-allow = false The result: [e10s on/off] Does not show login prompt In the Browser Console: "req - status: 401 ; statusText: Authorization Required" -------------------------------------------------------------------------------- about:config network.auth.non-web-content-triggered-resources-http-auth-allow = true [e10s on] Does not show login prompt In the Browser Console: "req - status: 401 ; statusText: Authorization Required" [e10s off] Show login prompt, inserting login and password In the Browser Console: "req - status: 200 ; statusText: OK"
Component: DOM → DOM: Core & HTML

Unassigned. Maybe this bug can be taken by the necko team.

Assignee: amarchesini → nobody
Flags: needinfo?(amarchesini) → needinfo?(valentin.gosu)

It seems like we either need to fix the unit test, or not call wwatch->GetPrompt when there's no windowCreator ASSERTION: attempted to open a new window with no WindowCreator

Kershaw, do you want to take a look? Doesn't seem to be high priority, only if you have time.

Component: DOM: Core & HTML → Networking
Flags: needinfo?(valentin.gosu) → needinfo?(kershaw)
Whiteboard: triaged → [necko-triaged]
Assignee: nobody → kershaw
Flags: needinfo?(kershaw)
Pushed by kjang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/71569bb9cbc9 Show authentication prompt correctly for system XHR r=mayhemer
Status: REOPENED → RESOLVED
Closed: 8 years ago5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: