Closed
Bug 571759
Opened 14 years ago
Closed 13 years ago
Move Add-on Manager to be in a content tab
Categories
(Thunderbird :: Toolbars and Tabs, defect)
Thunderbird
Toolbars and Tabs
Tracking
(blocking-thunderbird5.0 needed)
RESOLVED
FIXED
Thunderbird 3.3a2
Tracking | Status | |
---|---|---|
blocking-thunderbird5.0 | --- | needed |
People
(Reporter: standard8, Assigned: standard8)
References
Details
(Whiteboard: [UXprio])
Attachments
(2 files, 4 obsolete files)
6.50 KB,
patch
|
bwinton
:
review+
|
Details | Diff | Splinter Review |
30.85 KB,
patch
|
rain1
:
review+
clarkbw
:
ui-review+
|
Details | Diff | Splinter Review |
Now the new add-on manager has landed and is working in Thunderbird, we want to use it in a content tab so that we can easily get to the extra functionality obtained by having it in one of those tabs - e.g. add-on installation, drag n drop etc. This bug should do that, removing the old window version and swapping to using content tabs.
How is this going to affect users who don't use tabs and hide the tab bar?
Assignee | ||
Comment 2•14 years ago
|
||
(In reply to comment #1) > How is this going to affect users who don't use tabs and hide the tab bar? The tab bar will be displayed and the you'll temporarily have a tab whilst the manager is open.
Assignee | ||
Updated•14 years ago
|
Keywords: helpwanted
Assignee | ||
Comment 4•14 years ago
|
||
This is a partial fix so far. What needs doing: - Re-enable the functionality to select a pane when opening the add-ons manager, i.e. handle the aPane parameter to openAddonsMgr. Look at BrowserOpenAddonsMgr in Firefox for some hints on how to do this. - Hook up the "Manage Add-ons" button in preferences to open in a new tab, possibly via openAddonsMgr. - Mozmill tests I'm not sure when the next time I'll be able to do bits of work on this will be. So if anyone wants to pick it up in the meantime, please do.
Assignee | ||
Comment 6•13 years ago
|
||
This needs to fix the notifications as well (xref bug 567127) so that installation works as well.
Flags: blocking-thunderbird-next+
Comment 8•13 years ago
|
||
The inability to selectively disable extensions is becoming extremely painful in determining extension conflicts on trunk builds. I'm quite sure this will lead to meaningless bug reports soon. (I nearly reported one such case just today)
Assignee | ||
Comment 9•13 years ago
|
||
(moved to correct bug location from bug 517498) This gets the basics working. It probably needs a few tweaks to the site regexps and a few notification handling updates, but at least it'll bring trunk's add-on manager into the partially usable range. Main things in this patch are to: swap to opening add-on manager in a tab, enable history on the content tabs - required for add-ons manager (I've done this in the deferred way like Firefox for start-up times) and to update the prefs to match the new ones required.
Assignee: nobody → bugzilla
Attachment #453068 -
Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #476752 -
Flags: review?(bwinton)
Assignee | ||
Comment 10•13 years ago
|
||
I just found one addition and one correction in the all-thunderbird.js prefs file that we may as well take in this part of the bug/patch.
Attachment #476752 -
Attachment is obsolete: true
Attachment #476767 -
Flags: review?(bwinton)
Attachment #476752 -
Flags: review?(bwinton)
Comment 11•13 years ago
|
||
Comment on attachment 476767 [details] [diff] [review] [checked in] Part 1 - the basics v2 I've run with it for a while, and it looks pretty nice. :) >+++ b/mail/app/profile/all-thunderbird.js >@@ -125,16 +125,29 @@ pref("app.update.idletime", 60); >+// Enables some extra Extension System Logging (can reduce performance) >+pref("extensions.logging.enabled", false); So we set enabled to false to enable the logging? I think it might be nice if we enabled the "Go » Forward" and "Go » Back" buttons since we're enabling history, but that could be a followup bug. I also wonder what sort of testing we can do here, but that, too, can be a followup patch. So, aside from those small questions/suggestions, r=me. Later, Blake.
Attachment #476767 -
Flags: review?(bwinton) → review+
Assignee | ||
Comment 12•13 years ago
|
||
(In reply to comment #11) > >+++ b/mail/app/profile/all-thunderbird.js > >@@ -125,16 +125,29 @@ pref("app.update.idletime", 60); > >+// Enables some extra Extension System Logging (can reduce performance) > >+pref("extensions.logging.enabled", false); > > So we set enabled to false to enable the logging? Well, that's just a description of what the pref is meant to do ;-) > I think it might be nice if we enabled the "Go » Forward" and "Go » Back" > buttons since we're enabling history, but that could be a followup bug. Well, the little back and forward buttons within the tab are enabled ;-) but yes we could look at Forward and Back for content tabs in general. > I also wonder what sort of testing we can do here, but that, too, can be a > followup patch. I'm assuming that the core of the extension manager is tested in core. However, there's things like installing add-ons and other notifications that we can check we're getting in Thunderbird, but we need to get this usable on trunk first, and I think there will be a few follow-ups required anyway.
Assignee | ||
Comment 13•13 years ago
|
||
Comment on attachment 476767 [details] [diff] [review] [checked in] Part 1 - the basics v2 Checked in: http://hg.mozilla.org/comm-central/rev/1804f0251383
Attachment #476767 -
Attachment description: Part 1 - the basics v2 → [checked in] Part 1 - the basics v2
Comment 14•13 years ago
|
||
Although the AOM is basically functional now (Thanks), I'm seeing the following error message after opening: Error: [Exception... "Component returned failure code: 0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED) [nsIDocShellHistory.useGlobalHistory]" nsresult: "0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED)" location: "JS frame :: chrome://global/content/bindings/browser.xml :: :: line 649" data: no] Source file: chrome://global/content/bindings/browser.xml Line: 653
Status: ASSIGNED → UNCONFIRMED
Ever confirmed: false
Assignee | ||
Updated•13 years ago
|
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Assignee | ||
Updated•13 years ago
|
blocking-thunderbird5.0: --- → needed
Flags: blocking-thunderbird-next+
Assignee | ||
Comment 15•13 years ago
|
||
This is a work in progress patch that should handle the notifications from the add-on manager for blocked installs, complete installs etc. Still needs some tweaks and an icon, also needs mozmill tests.
Assignee | ||
Comment 16•13 years ago
|
||
This one has a couple of fixes plus unit tests. Unfortunately not quite ready yet, I'm still trying to figure out why installInfo.installs.some comes back with reference to undefined property installInfo.installs, when exactly the same code in FF works fine... (this is currently breaking the install complete notification).
Attachment #499390 -
Attachment is obsolete: true
Assignee | ||
Comment 17•13 years ago
|
||
I've finally got this working. There were some bogus javascript strict warnings about installInfo.installs being undefined despite the fact it works fine... This gets all the notifications working via the notification bar. This code is pretty much a copy-paste and adapt of what Firefox has. The strings are a direct copy and paste. The notification bar icons I've stolen from 1.9.2 branch as they look the same and they are the right size (Firefox replaced the notification bar with their doorhanger notification so they have different icons now).
Attachment #502508 -
Attachment is obsolete: true
Attachment #503816 -
Flags: ui-review?(clarkbw)
Assignee | ||
Updated•13 years ago
|
Attachment #503816 -
Flags: review?(sid.bugzilla)
Comment 18•13 years ago
|
||
(In reply to comment #14) > Although the AOM is basically functional now (Thanks), I'm seeing the following > error message after opening: > Error: [Exception... "Component returned failure code: 0x80040154 > (NS_ERROR_FACTORY_NOT_REGISTERED) [nsIDocShellHistory.useGlobalHistory]" > nsresult: "0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED)" location: "JS frame > :: chrome://global/content/bindings/browser.xml :: :: line 649" data: no] > Source file: chrome://global/content/bindings/browser.xml > Line: 653 Removing disablehistory="true" from content tabs makes them try to wire up both session history and global history (nsIGlobalHistory2 - not to be confused with IHistory which is apparently permanently wired up).
Comment 19•13 years ago
|
||
Comment on attachment 503816 [details] [diff] [review] [checked in] Part 2 - handle notifications v1 on file: mail/base/content/specialTabs.js line 880 > get _prefService() { > delete this._prefService; > return this._prefService = > Components.classes["@mozilla.org/preferences-service;1"] > .getService(Components.interfaces.nsIPrefBranch2); > }, Do we still need this? on file: mail/base/content/specialTabs.js line 892 > let installInfo = aSubject.QueryInterface(Ci.amIWebInstallInfo); You don't need to actually assign to a different variable here, but keeping it is fine for clarity's sake. on file: mail/base/content/specialTabs.js line 950 > installInfo.installs.forEach( Can we use for ([, install] in Iterator(installInfo.installs)) instead? on file: mail/base/content/specialTabs.js line 951 > function (aInstall) { > let host = (installInfo.originatingURI instanceof Ci.nsIStandardURL) && > installInfo.originatingURI.host; > if (!host) > host = (aInstall.sourceURI instanceof Ci.nsIStandardURL) && > aInstall.sourceURI.host; As the comment in Firefox's browser.js <https://mxr.mozilla.org/comm-central/source/mozilla/browser/base/content/browser.js#731> says, this isn't ideal for the multiple failures case, since we might use the same host over and over again. Please add that TODO comment here. on file: mail/base/content/specialTabs.js line 1011 > installInfo.installs.forEach(function(aInstall) { for-in-Iterator? on file: mail/test/mozmill/content-tabs/test-install-xpi.js line 94 > // The install dialog has a count down that we must wait for before > // proceeding. > mc.sleep(5000); Isn't the countdown 5 seconds? I'm worried this is cutting it too fine. on file: mail/test/mozmill/content-tabs/test-install-xpi.js line 158 > // After closing the dialog we need to give just a little extra time > // before we do things. Why do we need to do this? on file: mail/test/mozmill/content-tabs/test-install-xpi.js line 164 > let prefBranch = Cc["@mozilla.org/preferences-service;1"] > .getService(Ci.nsIPrefBranch); Import Services.jsm instead, please. on file: mail/test/mozmill/shared-modules/test-content-tab-helpers.js line 94 > if (aClickHandler == undefined) > aClickHandler = ""; 1. (aClickHandler === undefined) please. 2. Please assign null instead. Looks good in general -- I just need to run with the patch.
Comment 20•13 years ago
|
||
Comment on attachment 503816 [details] [diff] [review] [checked in] Part 2 - handle notifications v1 >diff --git a/mail/themes/gnomestripe/mail/update.png b/mail/themes/gnomestripe/mail/update.png >new file mode 100644 >index 0000000000000000000000000000000000000000..920e7cc108b804bcd409982024d754f29a3d96c4 You need to move this to mail/icons/update.png. >diff --git a/mail/themes/qute/mail/update.png b/mail/themes/qute/mail/update.png >new file mode 100644 >index 0000000000000000000000000000000000000000..e2737058f849ffc81b05eb8f2e1963b8f6ce547c and this. Looks good to me, modulo the comments above.
Attachment #503816 -
Flags: review?(sid.bugzilla) → review+
Assignee | ||
Comment 21•13 years ago
|
||
(In reply to comment #19) > on file: mail/test/mozmill/content-tabs/test-install-xpi.js line 94 > > // The install dialog has a count down that we must wait for before > > // proceeding. > > mc.sleep(5000); > > Isn't the countdown 5 seconds? I'm worried this is cutting it too fine. On here I was seeing 3 seconds ish, but I've made it 5.5 just in case. > on file: mail/test/mozmill/content-tabs/test-install-xpi.js line 158 > > // After closing the dialog we need to give just a little extra time > > // before we do things. > > Why do we need to do this? I believe that we basically just need to let things happen - i.e. let the core code finish up and tidy itself before we need try and do something else.
Comment 22•13 years ago
|
||
Comment on attachment 503816 [details] [diff] [review] [checked in] Part 2 - handle notifications v1 Inline with FF so there isn't really anything I want to change here. ui-r+
Attachment #503816 -
Flags: ui-review?(clarkbw) → ui-review+
Assignee | ||
Comment 23•13 years ago
|
||
Comment on attachment 503816 [details] [diff] [review] [checked in] Part 2 - handle notifications v1 Checked in: http://hg.mozilla.org/comm-central/rev/ebb269ce8610
Attachment #503816 -
Attachment description: Part 2 - handle notifications v1 → [checked in] Part 2 - handle notifications v1
Assignee | ||
Comment 24•13 years ago
|
||
The add-on manager is now largely functional, whilst there are a few other issues around it still (e.g. bug 612884), we'll deal with those in follow-up bugs.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Flags: in-testsuite+
Keywords: helpwanted
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 3.3a2
Comment 25•13 years ago
|
||
Pushed a followup: https://hg.mozilla.org/comm-central/rev/88032a4ef838
You need to log in
before you can comment on or make changes to this bug.
Description
•