Closed Bug 1102368 Opened 10 years ago Closed 9 years ago

[e10s] console.log not working in frame scripts

Categories

(Core :: General, defect)

36 Branch
x86
macOS
defect
Not set
normal
Points:
5

Tracking

()

RESOLVED WORKSFORME
Iteration:
38.1 - 26 Jan
Tracking Status
e10s m5+ ---

People

(Reporter: disya2, Assigned: mossop)

References

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.62 Safari/537.36

Steps to reproduce:

I'm trying to load a frame script to a just created tab (for example by gBrowser.addTab() or manually created) using gBrowser.selectedBrowser.loadFrameScript(script, true). I specifically use allowDelayedLoad flag here.


Actual results:

The script doesn't seem to be executed at all. I was trying to dump() as well as sendAsyncMessage(some_test_message) at the start of the script to see if it works.


Expected results:

When a tab have already some web-page preloaded the frame script works fine.

If it matters I use Firefox Nightly on Mac OS X, the latest version tested was 36.0a1 (2014-11-20)
Blocks: e10s
tracking-e10s: --- → ?
Product: Firefox → Core
Summary: Frame scripts are not loaded to a just created tab → e10s - Frame scripts are not loaded to a just created tab
Could you try to post a test case? It's hard to figure out the issue from the report.
Flags: needinfo?(disya2)
While making a test case I found that a frame script is actually working. What not working is console.log() inside a frame script. Tested in Nightly 36.0a1 (2014-11-25). Sorry for the misleading report. 

Anyway, here is a test case: 

Inside a chrome script:
gBrowser.selectedTab = gBrowser.addTab();
let mm = gBrowser.selectedBrowser.messageManager;
mm.loadFrameScript("chrome://imacros/content/test.js", true);
mm.addMessageListener("test-response", function(msg) {
    console.log("got response from script %O", msg.data);
});
mm.sendAsyncMessage("test", {});

Frame script (test.js):
addMessageListener("test", function(msg) {
    console.log("got test message");
    sendAsyncMessage("test-response", {greetings: "hi"});
});

If you comment out the first line (i.e. no new tab is created) then two lines are printed in the console:
"got test message" 
"got response from script ", Object {greetings: "hi"}

When first line in chrome script is active only one line is printed in the console:
"got response from script ", Object {greetings: "hi"}

Since I couldn't get anything logged from a frame script I thought that it hadn't been executed at all.
Flags: needinfo?(disya2)
Assignee: nobody → wmccloskey
Summary: e10s - Frame scripts are not loaded to a just created tab → [e10s] console.log not working in frame scripts
Component: Untriaged → General
Flags: firefox-backlog+
Points: --- → 5
Flags: qe-verify-
Assignee: wmccloskey → dtownsend
Status: UNCONFIRMED → ASSIGNED
Iteration: --- → 38.1 - 26 Jan
Ever confirmed: true
I just experimented with this and wasn't able to reproduce the problem, can you let me know where I am going wrong:

I opened Firefox, the browser console and scratchpad.
I set scratchpad to run in the browser environment and ran the following code:

function frame_script() {
  addMessageListener("fs-test", function listener(msg) {
    removeMessageListener("fs-test", listener);
    console.log("got test message");
    sendAsyncMessage("fs-test-response", {greetings: "hi"});
  });
}

gBrowser.selectedTab = gBrowser.addTab();
let mm = gBrowser.selectedBrowser.messageManager;
mm.loadFrameScript("data:,(" + frame_script.toString() + ")();", false);
mm.addMessageListener("fs-test-response", function listener(msg) {
  mm.removeMessageListener("fs-test-response", listener);
  console.log("got response from script %O", msg.data);
});
mm.sendAsyncMessage("fs-test", {});

A new tab opens and both console log messages show up in the browser console.
Flags: needinfo?(disya2)
It seems working now (tested with Nightly 38.0a1 (2015-01-13) on Mac OS X 10.10). 

I guess it has been fixed along with some other bug.
Flags: needinfo?(disya2)
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.