Closed Bug 1183565 Opened 9 years ago Closed 9 years ago

[e10s] RemoteWebNavigation now accepts postdata, but needs to accept CPOW postdata as well

Categories

(Firefox :: General, defect)

42 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bugs, Unassigned)

Details

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Build ID: 20150630154324

Steps to reproduce:

* Install Reload Plus add-on in Nightly where bug 1129957 is fixed

* Open Add-ons Manager, click through to Reload Plus' options

* Change value for "Auto-Retry Delay" to 5

* Open http://blackwind.org/temp/bugzilla-500-post-test.php

* Page sends a 500 response, Reload Plus engages its auto-retry functionality and adds a countdown badge to the tab

* Press the "Post!" button

* Page is POSTed normally, Reload Plus restarts the countdown after asking for confirmation

* When countdown expires this time, Reload Plus tries to re-POST using RemoteWebNavigation and fails


Actual results:

JavaScript error: resource://gre/modules/NetUtil.jsm, line 456: NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE: It's illegal to pass a CPOW to native code arg 0 [nsIScriptableInputStream.init]


Expected results:

Reload Plus should re-POST the document and continue auto-retrying until it doesn't encounter a 500 response.

My understanding here (and please correct me if I'm wrong) is that, because the postdata I'm passing has to come from tab.linkedBrowser.webNavigation and there's no way to access webNavigation from a content script, the postdata can only come in the form of a CPOW, so the interface needs to accept CPOWs.
Component: Untriaged → General
(In reply to blackwind from comment #0)
> My understanding here (and please correct me if I'm wrong) is that, because
> the postdata I'm passing has to come from tab.linkedBrowser.webNavigation
> and there's no way to access webNavigation from a content script,

Actually, you can use webNavigation from a content script. Here's an example:

let webProgress = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                          .getInterface(Ci.nsIWebProgress);
webProgress.addProgressListener(foo, Ci.nsIWebProgress.NOTIFY_ALL);

I would suggest doing it that way.
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.