Open
Bug 912433
Opened 11 years ago
Updated 2 years ago
JavaScript Error: "this.controller is undefined" {file: "chrome://browser/content/places/browserPlacesViews.js" line: 216}]
Categories
(Firefox :: Bookmarks & History, defect, P3)
Firefox
Bookmarks & History
Tracking
()
NEW
People
(Reporter: Yoric, Unassigned)
References
Details
Attachments
(1 file)
JavaScript strict warning: chrome://browser/content/places/browserPlacesViews.js, line 104: reference to undefined property this._controller
************************************************************
* Call to xpconnect wrapped JSObject produced this error: *
[Exception... "'[JavaScript Error: "this.controller is undefined" {file: "chrome://browser/content/places/browserPlacesViews.js" line: 216}]' when calling method: [nsINavHistoryResultObserver::containerStateChanged]" nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)" location: "JS frame :: chrome://browser/content/places/browserPlacesViews.js :: PlacesViewBase.prototype.result :: line 77" data: yes]
************************************************************
I encounter this error reproducibly upon startup with latest m-c.
Comment 1•11 years ago
|
||
Assignee: nobody → ttaubert
Status: NEW → ASSIGNED
Attachment #821507 -
Flags: review?(mano)
Attachment #821507 -
Flags: review?(mak77)
Comment 2•11 years ago
|
||
Looks like this has been around for some time now and was exposed by bug 895340, I think.
Comment 3•11 years ago
|
||
So, the patch is "scary" in the sense it may end up covering some unexpected behavior, for example doesn't make much sense to have a controller until there's no location. And _startMarker was supposed to always be defined.
First of all, since I recall this setup is quite crazy looping into itself, I tried to rebuild a pseudostack:
new PlacesMenu()
PlacesViewBase.call()
set place()
result.addobserver()
set result()
containerOpen = true
containerStateChanged
invalidateContainer
here the controller has not yet been created, it will be created after the place = location call in PlacesViewBase. So that's what looks like the first exception.
_rebuildPopup
_cleanPopup
here we try to use _startMarker that is defined by ensureMarkers() that is invoked by _onPopupShowing, that is called in the PlacesMenu constructor, but only after building PlacesViewBase.
First, I wonder how we entered the PlacesMenu constructor, comment 0 doesn't seem to point out the need to open a Places menu (history/bookmarks), is that a required step to reproduce?
I wonder if we should rather avoid opening the container in the result setter and instead open it at the end of the view constructor if the result is set... I need to think about it a little bit more.
Comment 4•11 years ago
|
||
Aww, I thought this would be an easy fix. Please, someone take over :)
(In reply to Marco Bonardo [:mak] from comment #3)
> First, I wonder how we entered the PlacesMenu constructor, comment 0 doesn't
> seem to point out the need to open a Places menu (history/bookmarks), is
> that a required step to reproduce?
Yes, the error occurs whenever I open the 'History' menu. My dev profile should be rather clean without any places related things. I can reproduce this 100% of the time.
Assignee: ttaubert → nobody
Updated•11 years ago
|
Attachment #821507 -
Flags: review?(mano)
Attachment #821507 -
Flags: review?(mak77)
Updated•11 years ago
|
Status: ASSIGNED → NEW
Updated•8 years ago
|
Component: Places → Bookmarks & History
Priority: -- → P3
Product: Toolkit → Firefox
Comment 6•8 years ago
|
||
Now with the following stack:
PVB__rebuildPopup chrome://browser/content/places/browserPlacesViews.js:261:1
PVB_invalidateContainer chrome://browser/content/places/browserPlacesViews.js:725:7
PVB_containerStateChanged chrome://browser/content/places/browserPlacesViews.js:662:7
set result chrome://browser/content/places/browserPlacesViews.js:91:7
set place chrome://browser/content/places/browserPlacesViews.js:63:5
PlacesViewBase chrome://browser/content/places/browserPlacesViews.js:16:3
PlacesMenu chrome://browser/content/places/browserPlacesViews.js:1751:3
HistoryMenu chrome://browser/content/browser-places.js:714:3
onpopupshowing chrome://browser/content/browser.xul:1:78
I'll try to investigate further/ take a look when I find a little time to do so.
Comment 7•7 years ago
|
||
Also with the following stack:
PVB__rebuildPopup chrome://browser/content/places/browserPlacesViews.js:261:1
PVB_invalidateContainer chrome://browser/content/places/browserPlacesViews.js:725:7
PVB_containerStateChanged chrome://browser/content/places/browserPlacesViews.js:662:7
set result chrome://browser/content/places/browserPlacesViews.js:91:7
set place chrome://browser/content/places/browserPlacesViews.js:63:5
PlacesViewBase chrome://browser/content/places/browserPlacesViews.js:16:3
PlacesMenu chrome://browser/content/places/browserPlacesViews.js:1751:3
onpopupshowing chrome://browser/content/browser.xul:1:144
waitForSyncCallback resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait resource://services-common/async.js:168:27
promiseSpinningly resource://services-common/async.js:234:12
_processIncoming resource://services-sync/engines.js:1289:18
_processIncoming resource://services-sync/engines/history.js:62:14
_sync resource://services-sync/engines.js:1798:7
WrappedNotify resource://services-sync/util.js:161:21
sync resource://services-sync/engines.js:723:5
_syncEngine resource://services-sync/stages/enginesync.js:219:7
sync resource://services-sync/stages/enginesync.js:166:15
onNotify resource://services-sync/service.js:1080:7
WrappedNotify resource://services-sync/util.js:161:21
WrappedLock resource://services-sync/util.js:117:16
_lockedSync resource://services-sync/service.js:1070:12
sync/< resource://services-sync/service.js:1062:7
WrappedCatch resource://services-sync/util.js:92:16
sync resource://services-sync/service.js:1051:5
sync self-hosted:951:17
(During a first-time sync with a large account.)
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•