3D view button not working in Nightly (e10s off)

VERIFIED FIXED in Firefox 41

Status

Firefox Graveyard
Developer Tools: 3D View
VERIFIED FIXED
3 years ago
2 years ago

People

(Reporter: Nazar Mokrynskyi, Assigned: jryans)

Tracking

({regression})

41 Branch
Firefox 41
regression

Details

(Whiteboard: [Bugday-20150709])

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
Build ID: 20150512195130

Steps to reproduce:

Open website, open developer tools, click "3D view"


Actual results:

Nothing, but in terminal (this issue specific things start from "console.error:"):

nazar-pc@nazar-pc ~> firefox-trunk 

(process:18066): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
ATTENTION: default value of option force_s3tc_enable overridden by environment.
Can't find symbol 'glXCreateContextAttribsARB'.
console.error: 
  Message: Error: environment.chromeDocument is not available in runAt:server commands
  Stack:
    GcliActor<._getRequisition/this._requisitionPromise</environment.chromeDocument@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/gcli.js:260:17
exports.items<.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/tilt/tilt-commands.js:79:9
Requisition.prototype.exec/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2073:16
createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:239:18
Task_spawn@resource://gre/modules/Task.jsm:164:12
exports.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/util/host.js:72:10
Requisition.prototype.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2072:14
Requisition.prototype.updateExec/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2112:12
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7
Promise.prototype.then@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:417:5
GcliActor<.execute<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/gcli.js:116:12
actorProto/</handler@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1006:19
DSC_onPacket@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js:1456:15
LocalDebuggerTransport.prototype.send/<@resource://gre/modules/devtools/dbg-client.jsm -> resource://gre/modules/devtools/transport/transport.js:561:11
makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14
makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14

console.error: 
Object
    - isTypedData = true
    - data = {"columnNumber":16,"fileName":"resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/gcli.js","lineNumber":260,"message":"environment.chromeDocument is not available in runAt:server commands","stack":"GcliActor<._getRequisition/this._requisitionPromise</environment.chromeDocument@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/gcli.js:260:17\nexports.items<.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/tilt/tilt-commands.js:79:9\nRequisition.prototype.exec/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2073:16\ncreateAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:239:18\nTask_spawn@resource://gre/modules/Task.jsm:164:12\nexports.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/util/host.js:72:10\nRequisition.prototype.exec@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2072:14\nRequisition.prototype.updateExec/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/gcli/cli.js:2112:12\nHandler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:867:23\nthis.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:7\nthis.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:37\nPromise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:688:5\nthis.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:709:7\nPromise.prototype.then@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:417:5\nGcliActor<.execute<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/gcli.js:116:12\nactorProto/</handler@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:1006:19\nDSC_onPacket@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js:1456:15\nLocalDebuggerTransport.prototype.send/<@resource://gre/modules/devtools/dbg-client.jsm -> resource://gre/modules/devtools/transport/transport.js:561:11\nmakeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14\nmakeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14\n"}
    - type = error
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
@chrome://tabmixplus/content/changecode.js line 1 > eval:37:21



Expected results:

3D view turned on. Also, it works fine if Firefox stable on the same system
(Reporter)

Updated

3 years ago
Component: Untriaged → Developer Tools: 3D View
Is e10s enabled?
Flags: needinfo?(nazar)
(Reporter)

Comment 2

3 years ago
No, neither in Nightly with bug, nor in Stable where bug is not present.
Flags: needinfo?(nazar)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: 3D view button not working in Nightly → 3D view button not working in Nightly (e10s off)
Okay, I think this is a regression from the recent GCLI changes.

Joe, does the GCLI runAt refactor require that tilt be rebuilt, or can the current local tab only one be made to work again somehow?  There could be an easy fix, not sure.
Flags: needinfo?(jwalker)
TL;DR: Add runAt:'client' to all the tilt commands, I expect that will fix it.


The tilt commands do not have a runAt:... specifier, and they should.

There is an instance of GCLI in both processes, marked location:'client' and location:'server'. A GCLI process with a location will accept commands that have either no runAt (for backwards compat), or a matching runAt.

This means that both GCLIs are registering the tilt commands.

Then the server GCLI publishes an event to the client saying "I've got a new command" (gcli.js:21) and the client automatically creates a proxy command (system.js:346) so that when someone types 'tilt' in the client, the execution is proxied to the server.

Net result - commands without runAt specifiers actually execute in the server.

tilt-commands.js:79 uses context.environment.chromeDocument which is only available on the client, and we complain when they do that (gcli.js:256) so they need to execute the the client.
Flags: needinfo?(jwalker)
Assignee: nobody → jryans
Status: NEW → ASSIGNED
Created attachment 8605848 [details] [diff] [review]
0001-Bug-1164537-Restore-tilt-for-non-e10s-windows.-r-jwa.patch

Seems to have worked as described.

Try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=6294bfdb2420
Attachment #8605848 - Flags: review?(jwalker)
Blocks: 1128988
Keywords: regression
Comment on attachment 8605848 [details] [diff] [review]
0001-Bug-1164537-Restore-tilt-for-non-e10s-windows.-r-jwa.patch

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

r+, obviously :)
Attachment #8605848 - Flags: review?(jwalker) → review+
status-firefox39: --- → unaffected
status-firefox40: --- → affected
status-firefox41: --- → affected

Updated

3 years ago
tracking-e10s: --- → -
:O
Keywords: checkin-needed

Comment 8

3 years ago
https://hg.mozilla.org/integration/fx-team/rev/a0180fccc14f
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/a0180fccc14f
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox41: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 41
Comment on attachment 8605848 [details] [diff] [review]
0001-Bug-1164537-Restore-tilt-for-non-e10s-windows.-r-jwa.patch

Approval Request Comment
[Feature/regressing bug #]: Bug 1128988
[User impact if declined]: 3D view will fail for e10s-off users (it still fails with e10s-on after this, separate issue)
[Describe test coverage new/current, TreeHerder]: m-c
[Risks and why]: Low, only affects 3D view tool
[String/UUID change made/needed]: None
Attachment #8605848 - Flags: approval-mozilla-aurora?
Duplicate of this bug: 1171504
Comment on attachment 8605848 [details] [diff] [review]
0001-Bug-1164537-Restore-tilt-for-non-e10s-windows.-r-jwa.patch

We are pushing e10s lately on aurora. Taking it.
Attachment #8605848 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
https://hg.mozilla.org/releases/mozilla-aurora/rev/d8184ba2ed3a
status-firefox40: affected → fixed
Duplicate of this bug: 1171640

Comment 15

3 years ago
Reproduced with Firefox 41.0a1 (2015-05-12) with the instruction from comment 0 and on Windows 10 x64.

Verified as fixed with Firefox 42.0a1 (Build ID : 20150707030206)

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:42.0) Gecko/20100101 Firefox/42.0

[Bugday-20150709]

Updated

3 years ago
Status: RESOLVED → VERIFIED

Updated

3 years ago
QA Whiteboard: [Bugday-20150709]
Whiteboard: [Bugday-20150709]

Comment 16

3 years ago
I have reproduced the bug in nightly 41.0a1 (2015-05-13) (Build ID:20150513030209) with the instruction from comment 0 and linux 32 bit

Mozilla/5.0 (X11; Linux i686; rv:41.0) Gecko/20100101 Firefox/41.0

Bug is fixed now on latest Developer Edition 41.0a2 (2015-07-09) (Build ID:20150709004007)
Mozilla/5.0 (X11; Linux i686; rv:41.0) Gecko/20100101 Firefox/41.0

& latest beta 40.0 (Build ID:20150706172413)
Mozilla/5.0 (X11; Linux i686; rv:40.0) Gecko/20100101 Firefox/40.0

Comment 17

2 years ago
The bug is reproducible (namely, neither 3D View toolbar button nor the corresponding checkbox in developer-tools settings are available) in the lastest Dev Edition and Nightly with e10s enabled.

With e10s disabled, 3D View is available both as a checkbox in settings and as a toolbar button.

Interesting detail: 3D View DOES work for empty new tabs while it does NOT work for regular-website tabs. So the bug is probably not caused by some incompatibility with e10s itself, instead it looks like 3D view is just dynamically disabled (probably intentionally) for regular websites while not disabled for empty new tabs.
(In reply to Marat Tanalin | tanalin.com from comment #17)
> Interesting detail: 3D View DOES work for empty new tabs while it does NOT
> work for regular-website tabs. So the bug is probably not caused by some
> incompatibility with e10s itself, instead it looks like 3D view is just
> dynamically disabled (probably intentionally) for regular websites while not
> disabled for empty new tabs.

The new tab page isn't currently loaded in the child process, so that is what allows tilt to keep working there even though it fails for regular web content.

Follow bug 937166 to track getting tilt to work in e10s.
Product: Firefox → Firefox Graveyard
You need to log in before you can comment on or make changes to this bug.