Closed
Bug 591801
Opened 14 years ago
Closed 14 years ago
Add-ons manager view-port is blank when opened in a standalone window
Categories
(Toolkit :: Add-ons Manager, defect)
Toolkit
Add-ons Manager
Tracking
()
VERIFIED
FIXED
mozilla2.0b7
People
(Reporter: u382332, Assigned: mossop)
References
Details
Attachments
(2 files)
(deleted),
image/gif
|
Details | |
(deleted),
patch
|
Unfocused
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0b5pre) Gecko/20100829 Firefox/4.0b5pre
Build Identifier:
The Add-ons manager is not showing anything in the view-port. It is blank.
(Extensions are working.)
Mozilla/5.0 (Windows NT 5.1; rv:2.0b5pre) Gecko/20100829 Thunderbird/3.2a1pre
Reproducible: Always
Possibly related to Bug 562797 - Add-ons manager doesn't integrate with session history (back/forward button misbehaves)
https://bugzilla.mozilla.org/show_bug.cgi?id=562797
Also, Error console shows:
Error: gCategories.node is null
Source File: chrome://mozapps/content/extensions/extensions.js
Line: 306
Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.replaceState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 343" data: no]
Comment 2•14 years ago
|
||
Confirmed in:
Mozilla/5.0 (Windows NT 5.0; rv:2.0b5pre) Gecko/20100829 Thunderbird/3.2a1pre ID:20100829035152
A Thunderbird debug build (Mac OS X) gives me while opening the broken Add-Ons manager:
pldhash: for the table at address 0x15c1468, the given entrySize of 48 probably favors chaining over double hashing.
++DOCSHELL 0x15c1400 == 9
++DOMWINDOW == 17 (0x2fc86e58) [serial = 18] [outer = 0x0]
WARNING: Subdocument container has no content: file /Volumes/Developer/temp/src/mozilla/layout/base/nsDocumentViewer.cpp, line 2400
WARNING: Context has no global.: file /Volumes/Developer/temp/src/mozilla/dom/base/nsJSEnvironment.cpp, line 2518
++DOMWINDOW == 18 (0x2ff8c448) [serial = 19] [outer = 0x2fc86e20]
WARNING: Subdocument container has no content: file /Volumes/Developer/temp/src/mozilla/layout/base/nsDocumentViewer.cpp, line 2400
WARNING: NS_ENSURE_TRUE(sf) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 4882
WARNING: NS_ENSURE_TRUE(sf) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 4882
WARNING: Subdocument container has no content: file /Volumes/Developer/temp/src/mozilla/layout/base/nsDocumentViewer.cpp, line 2400
pldhash: for the table at address 0x1676c68, the given entrySize of 48 probably favors chaining over double hashing.
++DOCSHELL 0x1676c00 == 10
++DOMWINDOW == 19 (0x8b2168) [serial = 20] [outer = 0x0]
###!!! ASSERTION: Subdoc frames must have an inner view too: 'innerView', file /Volumes/Developer/temp/src/mozilla/layout/base/nsDocumentViewer.cpp, line 2415
WARNING: Context has no global.: file /Volumes/Developer/temp/src/mozilla/dom/base/nsJSEnvironment.cpp, line 2518
++DOMWINDOW == 20 (0x2fc07058) [serial = 21] [outer = 0x8b2130]
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
WARNING: Positioned frame that does not handle positioned kids; looking further up the parent chain: file /Volumes/Developer/temp/src/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 5576
JavaScript error: chrome://mozapps/content/extensions/extensions.js, line 306: gCategories.node is null
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
JavaScript error: , line 0: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.replaceState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 343" data: no]
JavaScript error: chrome://mozapps/content/extensions/extensions.js, line 804: this.currentViewObj is null
JavaScript error: chrome://mozapps/content/extensions/extensions.js, line 804: this.currentViewObj is null
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
JavaScript error: , line 0: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 335" data: no]
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
JavaScript error: , line 0: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 335" data: no]
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
JavaScript error: , line 0: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 335" data: no]
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
WARNING: NS_ENSURE_TRUE(sessionHistory) failed: file /Volumes/Developer/temp/src/mozilla/docshell/base/nsDocShell.cpp, line 9550
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file /Volumes/Developer/temp/src/mozilla/dom/base/nsHistory.cpp, line 300
JavaScript error: , line 0: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://mozapps/content/extensions/extensions.js :: anonymous :: line 335" data: no]
JavaScript error: chrome://mozapps/content/extensions/extensions.js, line 804: this.currentViewObj is null
###!!! ASSERTION: XPConnect is being called on a scope without a 'Components' property!: 'Error', file /Volumes/Developer/temp/src/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp, line 792
--DOCSHELL 0x15c1400 == 9
--DOMWINDOW == 19 (0x8b2168) [serial = 20] [outer = 0x0] [url = about:blank]
--DOMWINDOW == 18 (0x2fc07058) [serial = 21] [outer = 0x0] [url = about:blank]
--DOCSHELL 0x1676c00 == 8
Updated•14 years ago
|
blocking-thunderbird3.2: --- → ?
Comment 5•14 years ago
|
||
Dave, looks like the fix could have broken all applications which do not have a browser?
Updated•14 years ago
|
Component: General → Add-ons Manager
OS: Windows XP → All
Product: Thunderbird → Toolkit
QA Contact: general → add-ons.manager
Hardware: x86 → All
Updated•14 years ago
|
blocking2.0: --- → ?
Assignee | ||
Updated•14 years ago
|
blocking2.0: ? → betaN+
Assignee | ||
Updated•14 years ago
|
Assignee: nobody → dtownsend
Assignee | ||
Comment 6•14 years ago
|
||
Problem seems to stem from here:
http://mxr.mozilla.org/mozilla-central/source/docshell/base/nsDocShell.cpp#10221
This is returning null for the nsISHistory for top-level windows. Do they have no session history?
Comment 7•14 years ago
|
||
By "top-level" do you mean the browser UI?
Assignee | ||
Comment 8•14 years ago
|
||
(In reply to comment #7)
> By "top-level" do you mean the browser UI?
I mean if I do window.openDialog("about:addons"). I've discovered the code here (http://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/browser.xml#644) which I tried replicating for the webNavigation for the new window. That improves matters but now my attempts to call pushState fail here since mOSHE is null http://mxr.mozilla.org/mozilla-central/source/docshell/base/nsDocShell.cpp#9560
Comment 9•14 years ago
|
||
Do you wire up the session history after the page has started loading, already? If so, then that initial load may not end up in the session history....
Assignee | ||
Comment 10•14 years ago
|
||
(In reply to comment #9)
> Do you wire up the session history after the page has started loading, already?
> If so, then that initial load may not end up in the session history....
Well the goal would be to have the script in about:addons do the necessary work to make it all work in its own window, so yeah it can't really do that unless the window is already loading. I guess I could detect there is no history and wire it up and then trigger a reload on the window perhaps? Or maybe I can just manually add the initial session history entry.
Assignee | ||
Updated•14 years ago
|
Summary: Add-ons manager view-port is blank → Add-ons manager view-port is blank when opened in a standalone window
Reporter | ||
Comment 11•14 years ago
|
||
I'm not sure why the summary was changed to Add-ons manager view-port is blank "when opened in a standalone window". As far as I know that is how the AOM opens by default for trunk until Bug 571759 is resolved. Unless I'm missing something here, it wouldn't matter if the AOM opened in a standalone window or a tab.
Assignee | ||
Comment 12•14 years ago
|
||
It does matter if the add-ons manager is opened in a tab or not. In a tab the session history will be wired up and working, in a standalone window it isn't, hence the bug we see here.
Reporter | ||
Comment 13•14 years ago
|
||
Okay, so we need to get Bug 571759 resolved in order to alleviate this particular bug. Is that correct?
Assignee | ||
Comment 14•14 years ago
|
||
(In reply to comment #13)
> Okay, so we need to get Bug 571759 resolved in order to alleviate this
> particular bug. Is that correct?
That would fix the problem for Thunderbird but not for any other applications that need to open the add-ons manager in a window.
Updated•14 years ago
|
Blocks: Instantbird
Comment 15•14 years ago
|
||
This happens to me with the latest release of the Firefox beta (4.0b6). With this update (on 9/15), the Add-on Manager started opening in a new window. It was after I installed the compatibility manager so I assumed it was related.
I went into the latest official release of Firefox to disable the compatibility manager but the trouble remains.
Screenshot to follow.
Cheers!
-M
Comment 16•14 years ago
|
||
Assignee | ||
Comment 17•14 years ago
|
||
The bug is still not fixed so yes it still happens.
Comment 18•14 years ago
|
||
Which action do you have performed so it opens in a new window?
Comment 19•14 years ago
|
||
I have no idea. It wasn't doing that in the previous version - it simply started loading that way with the latest update.
At the same time, I installed the compatibility manager add-on, so I have no idea if it's that or the update that forced it into a separate window. I do know that the compatibility add-on is disabled (which I did via the official release since I can't access any of my add-ons with the latest beta), and I still have it in a window as shown in the screenshot.
Comment 20•14 years ago
|
||
Note: For Thunderbird users, we're moving the add-on manager into a tab (see bug 571759). This will have session history enabled, and therefore will not experience this bug, although this bug will still need to be fixed for other applications.
Comment 21•14 years ago
|
||
Confirming same issue with BlueGriffon... I can't put the extension manager in
tabs since tabs are reserved for edited documents. Standalone extension manager
chokes on gCategories.node being null is extensions.js line 380 and in line 418 on nsIDOMHistory.pushState() with NS_ERROR_FAILURE (normal since the app has no notion of browsing history anyway?)
Assignee | ||
Comment 22•14 years ago
|
||
I had been hoping to figure out a way to keep the session history and the forward/back buttons working but I think the solution here is going to be to hide the forward/back buttons and protect the calls to session history.
Assignee | ||
Comment 23•14 years ago
|
||
This patch applies but probably doesn't make sense without bug 597178 fixed. It implements a wrapper around window.history. If session history isn't working then it will just cache the previous 2 states so that when we want to popState the data is there to do so. This could be extended to be a full session history in the future if we needed to do so.
I've run all tests with gUseInContentUI false and they all pass now, I've been trying to figure out an easy way to just make the whole test suite run twice so that we can keep that the case.
Attachment #478303 -
Flags: review?(bmcbride)
Assignee | ||
Updated•14 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Updated•14 years ago
|
Whiteboard: [has patch][needs review Unfocused]
Comment 24•14 years ago
|
||
Comment on attachment 478303 [details] [diff] [review]
patch rev 1
>-window.addEventListener("load", initialize, false);
...
>+document.addEventListener("load", initialize, true);
Curious: why this change?
>+ }
>+ else {
Style nit: Remove the newline.
Is there a separate bug on file for running tests with this in both a tab and a window?
Attachment #478303 -
Flags: review?(bmcbride) → review+
Updated•14 years ago
|
Whiteboard: [has patch][needs review Unfocused] → [has patch]
Assignee | ||
Comment 25•14 years ago
|
||
(In reply to comment #24)
> Comment on attachment 478303 [details] [diff] [review]
> patch rev 1
>
> >-window.addEventListener("load", initialize, false);
> ...
> >+document.addEventListener("load", initialize, true);
>
> Curious: why this change?
Oh yeah, so the test harness wasn't working properly with the add-ons manager opening in a new window. The load event listener in head.js was getting called before initialize. It seems that switching to a capturing document load listener makes initialize get called earlier than anything registered on the window.
> >+ }
> >+ else {
>
> Style nit: Remove the newline.
>
> Is there a separate bug on file for running tests with this in both a tab and a
> window?
Files bug 599891
Assignee | ||
Updated•14 years ago
|
Whiteboard: [has patch] → [has patch][needs-checkin-post-b7]
Assignee | ||
Comment 26•14 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Flags: in-testsuite+
Flags: in-litmus-
Resolution: --- → FIXED
Whiteboard: [has patch][needs-checkin-post-b7]
Target Milestone: --- → mozilla2.0b8
Comment 27•14 years ago
|
||
Ludovic, can you please verify this fix with Thunderbird? Thanks.
Comment 28•14 years ago
|
||
(In reply to comment #27)
> Ludovic, can you please verify this fix with Thunderbird? Thanks.
We can't open the add-on manager in a window in Thunderbird it always opens in a tab.
Status: RESOLVED → VERIFIED
Updated•14 years ago
|
Target Milestone: mozilla2.0b8 → mozilla2.0b7
Comment 29•13 years ago
|
||
> It seems that switching to a capturing document load listener
There are no load events on documents.
This capturing listener is firing whenever anything in the page loads. In particular, it seems to fire when the first <xul:image> in the document finishes loading.
I'm going to add a hack to this code in bug 185236 to avoid also firing on stylesheet loads, but this code just looks wrong to me...
Comment 30•13 years ago
|
||
Filed bug 688948.
You need to log in
before you can comment on or make changes to this bug.
Description
•