Closed
Bug 1189748
Opened 9 years ago
Closed 9 years ago
The values of a google 3d graph can't be modified
Categories
(Core :: DOM: Events, defect)
Core
DOM: Events
Tracking
()
RESOLVED
DUPLICATE
of bug 1057858
People
(Reporter: cbadau, Unassigned)
References
()
Details
(Whiteboard: gfx-noted)
Attachments
(2 files)
Reproducible on Firefox 40 Beta 9 (BuildID: 20150730171029)
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Steps to reproduce:
1. Launch Firefox.
2. Open http://goo.gl/zz1rox .
3. Try to change the value of the X,Y or Z by clicking on the fields.
Expected results: The values can be successfully modified.
Actual results: The values can't be modified. The fields with the values are not editable.
Notes:
1. The issue is reproducible also on Windows 8 32bit and Ubuntu 14.04 x64.
2. The issue is reproducible also on Firefox 38.0.5 and Firefox 36.
I confirm this in Windows 10 with Firefox Nightly. I suspect this is a webcompat issue for Google to fix but perhaps this requires something we've not yet implemented. I'll need someone more knowledgeable than I to take a look at this.
Doubt this has anything to do with WebGL.
I managed to get this error once, on this page, though I can't figure out what I've done:
Query failed: TypeError: this._searchSuggestionController is null
*************************
A coding exception was thrown in a Promise resolution callback.
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise
Full message: TypeError: this._searchSuggestionController is null
Full stack: _matchSearchSuggestions/promise<@resource://gre/components/UnifiedComplete.js:944:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7
this.SearchSuggestionController.prototype._fetchRemote/<@resource://gre/modules/SearchSuggestionController.jsm:250:54
this.SearchSuggestionController.prototype.stop@resource://gre/modules/SearchSuggestionController.jsm:172:7
stop@resource://gre/modules/PlacesSearchAutocompleteProvider.jsm:181:5
stop@resource://gre/components/UnifiedComplete.js:782:7
UnifiedComplete.prototype.stopSearch@resource://gre/components/UnifiedComplete.js:1785:7
onInput@chrome://browser/content/urlbarBindings.xml:858:13
onxblinput@chrome://global/content/bindings/autocomplete.xml:581:9
*************************
*************************
A coding exception was thrown and uncaught in a Task.
Full message: TypeError: this._searchSuggestionController is null
Full stack: _matchSearchSuggestions/promise<@resource://gre/components/UnifiedComplete.js:944:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:934:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:11
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:776:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:711:7
this.SearchSuggestionController.prototype._fetchRemote/<@resource://gre/modules/SearchSuggestionController.jsm:250:54
this.SearchSuggestionController.prototype.stop@resource://gre/modules/SearchSuggestionController.jsm:172:7
stop@resource://gre/modules/PlacesSearchAutocompleteProvider.jsm:181:5
stop@resource://gre/components/UnifiedComplete.js:782:7
UnifiedComplete.prototype.stopSearch@resource://gre/components/UnifiedComplete.js:1785:7
onInput@chrome://browser/content/urlbarBindings.xml:858:13
onxblinput@chrome://global/content/bindings/autocomplete.xml:581:9
*************************
Query failed: TypeError: this._searchSuggestionController is null
2015-07-31 15:49:29.077 firefox[52225:303] Set intl.ime.nstextinput.enable to true in about:config to fix input.
*************************
No errors or extra messages with MOZ_GL_SPEW set.
Flags: needinfo?(milan)
Updated•9 years ago
|
URL: http://goo.gl/zz1rox
Whiteboard: gfx-noted
Comment 4•9 years ago
|
||
It works in Edge, too.
Comment 5•9 years ago
|
||
So the fields aren't editable in Firefox, but you can change the values fine by zooming in and out. This means it's almost certainly not a WebGL issue. Probably something in DOM.
Comment 6•9 years ago
|
||
This is either a web-compat issue with the site or a bug in our code somewhere, probably in DOM somewhere.
Component: Canvas: WebGL → DOM
Summary: WebGL animations - The values of a Graph can't be modified → The values of a google 3d graph can't be modified
Comment 7•9 years ago
|
||
Something is weird here. If I breakpoint in our debugger on all click event listeners in the page, then this works. I can click the number, and I get an editable number input for it. But only if the devtools are in a separate window.
So I tried breakpointing on blur handlers instead. Now what I see, with devtools in the _same_ window, even, is that we do switch to the number input, then fire a blur event. The blur event handler switches the input back to a non-editable cell.
So I guess the question is why we're firing a blur event during that click...
Component: DOM → DOM: Events
Flags: needinfo?(bugs)
Comment 8•9 years ago
|
||
Because an ancestor of the element you click has a tabindex=0 attribute and therefore gains focus by the mousedown and looses focus when the input is focused?
Flags: needinfo?(bugs)
Comment 9•9 years ago
|
||
Comment 10•9 years ago
|
||
As ever so often, once you've found the apparent cause of something what's left to explain is why this doesn't cause the same effect in other browsers..
In IE, the unselectable=on attribute on the children means the element with tabindex doesn't gain focus after all.
Although the site does apply -webkit-user-select:none, it has no such effect in a minimised test case so I'm not yet sure why Chrome&co manage to avoid triggering (or ignore) that blur event.
Comment 11•9 years ago
|
||
I'm pretty sure I tried removing that "tabindex=0" using the devtools while testing stuff for comment 7 and the behavior did not change.... So there's something else going on too, as far as I can tell.
That's assuming you mean the tabindex=0 on the <div aria-labelledby="graph_heading">, at least.
Flags: needinfo?(bugs)
Comment 12•9 years ago
|
||
You're right. We fire another blur event for a different reason and I haven't figured out why yet. Still looking at it, but Olli might find it faster..
Comment 13•9 years ago
|
||
The real reason: it's a type=number input. For some reason a blur event gets fired when input type=number gets focused by JS..
Comment 14•9 years ago
|
||
It's even more interesting than that - seems there needs to be some "instability" in the DOM to cause this effect - like the element being newly appended or the DOM not fully built. If I take this minimal TC and put the select() call inside onload it seems to pass fine. ,-o
Over to you, Olli!
Comment 15•9 years ago
|
||
Sounds like https://bugzilla.mozilla.org/show_bug.cgi?id=1012818?
Updated•9 years ago
|
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Updated•7 years ago
|
Flags: needinfo?(bugs)
You need to log in
before you can comment on or make changes to this bug.
Description
•