Debugger shows an error "newChannel does not accept 'loadUsingSystemPrincipal' if the 'loadingNode' or 'loadingPrincipal' properties are present on the options object."

VERIFIED FIXED in Firefox 49

Status

defect
P1
normal
VERIFIED FIXED
3 years ago
10 months ago

People

(Reporter: simon.lindholm10, Assigned: ochameau)

Tracking

unspecified
Firefox 49

Firefox Tracking Flags

(firefox49 verified)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
Go to http://simonsoftware.se/other/justatextarea.html, enter

> <script>a = 1;</script>

into the text field, and press Modify HTML (which will do document.open, document.write(that text), document.close). Then open the Debugger.

I'm seeing the following error appear in the source view:

> Error loading this URL: Could not load the source for http://simonsoftware.se/other/justatextarea.html.
> [Exception... "newChannel does not accept 'loadUsingSystemPrincipal' if the 'loadingNode' or 'loadingPrincipal' properties are present on the options object."  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js :: newChannelForURL :: line 557"  data: no]
> Stack: newChannelForURL@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js:557:12
> mainThreadFetch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/DevToolsUtils.js:413:15
> SourceActor<._getSourceText/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/server/actors/source.js:378:29
> Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
> this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
> Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
> this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7
> Promise.prototype.then@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:454:5
> SourceActor<.onSource<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/server/actors/source.js:457:12
> generateRequestHandlers/</handler@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/protocol.js:1046:19
> DSC_onPacket@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/server/main.js:1643:15
> ChildDebuggerTransport.prototype.receiveMessage@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/transport/transport.js:742:5
> Line: 557, column: 0

and that error message sounds valid; DevToolsUtils.js's newChannelForURL is indeed passing both loadUsingSystemPrincipal and loadingPrincipal to newChannel when it has a principal.

(I don't know whether the debugger is meant to be able to fetch sources despite document.open(), but that seems secondary to this error in any case.)

Blame points to bug 1060732.
:ochameau, can you take a look since you worked on bug 1060732?
Flags: needinfo?(poirot.alex)
Priority: -- → P1
(Assignee)

Comment 2

3 years ago
Thanks for the very detailed report, I'll look into this!
Assignee: nobody → poirot.alex
Flags: needinfo?(poirot.alex)
(Assignee)

Comment 3

3 years ago
Posted patch patch v1Splinter Review
I don't get why that doesn't throw in other cases. But here is a fix for that.

Thanks again Simon for your really helpful report!
(Assignee)

Comment 5

3 years ago
Comment on attachment 8755824 [details] [diff] [review]
patch v1

Review of attachment 8755824 [details] [diff] [review]:
-----------------------------------------------------------------

Eddy, here is a small patch to fix a regression from bug 1060732.
Attachment #8755824 - Flags: review?(ejpbruel)
Comment on attachment 8755824 [details] [diff] [review]
patch v1

Review of attachment 8755824 [details] [diff] [review]:
-----------------------------------------------------------------

LGTM. I took a day off on friday and monday, hence the slow review turnover.
Attachment #8755824 - Flags: review?(ejpbruel) → review+
(Assignee)

Comment 7

3 years ago
https://hg.mozilla.org/integration/fx-team/rev/8bf67bdad00282eed87c14a08c166a0ca90bf621
Bug 1273311 - Prevent DevToolsUtils.fetch from throwing when no policy is given. r=ejpbruel

Comment 8

3 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/8bf67bdad002
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 49
I have reproduced this bug with Nightly 49.0a1 (2016-05-16) on Windows 7 ,64Bit!

This bug's fix is verified on latest  Developer Edition

 Build ID   20160708004052
 User Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0

 Build ID   20160714030208
 User Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0
(In reply to Maruf Rahman from comment #9)
> I have reproduced this bug with Nightly 49.0a1 (2016-05-16) on Windows 7
> ,64Bit!
> 
> This bug's fix is verified on latest  Developer Edition
> 
>  Build ID   20160708004052
>  User Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101
> Firefox/49.0
> 
>  Build ID   20160714030208
>  User Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101
> Firefox/50.0

And its also been fixed in latest Nightly(Representing the last 2 lines of the comment number 09)
Thanks for testing Maruf!
I also verified this using latest DevEdition 49.0a2 on Mac OS X 10.10.5.
Status: RESOLVED → VERIFIED

Updated

10 months ago
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.