Closed
Bug 1460392
Opened 7 years ago
Closed 6 years ago
Port bug 1457027 to TB: Create a HandlerListItem class for richlistbox#handlersView
Categories
(Thunderbird :: Preferences, task)
Thunderbird
Preferences
Tracking
(Not tracked)
RESOLVED
FIXED
Thunderbird 64.0
People
(Reporter: Paenglab, Assigned: Paenglab)
References
Details
Attachments
(7 files, 18 obsolete files)
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
jorgk-bmo
:
review+
|
Details | Diff | Splinter Review |
FX does this also for the de-XBL. When we do this now, this should then work also in the future.
Assignee | ||
Comment 1•7 years ago
|
||
Part 1 - Don't persist the last selected handler
Assignee: nobody → richard.marti
Status: NEW → ASSIGNED
Attachment #8974496 -
Flags: review?(acelists)
Assignee | ||
Comment 2•7 years ago
|
||
Part 1 is a port of https://hg.mozilla.org/mozilla-central/rev/33e9a37ae5b4
Assignee | ||
Comment 3•7 years ago
|
||
Part 2 - Define services using defineLazyServiceGetters
Port of https://hg.mozilla.org/mozilla-central/rev/8834a397305b
Attachment #8974498 -
Flags: review?(acelists)
Assignee | ||
Comment 4•7 years ago
|
||
Part 3 - Use class syntax for the HandlerInfoWrapper hierarchy
Port of https://hg.mozilla.org/mozilla-central/rev/a2dd752c009e
The FX part 3 is stringbundle changes we don't need to port.
Attachment #8974499 -
Flags: review?(acelists)
Assignee | ||
Comment 5•7 years ago
|
||
Part 4 - Move _describeType to HandlerInfoWrapper.
Port of https://hg.mozilla.org/mozilla-central/rev/93bda045ca0b
Aceman, I get TypeError: this._visibleTypeDescriptionCount is undefined applications.js:1119. What do I need to do to fix this?
Attachment #8974501 -
Flags: feedback?(acelists)
Assignee | ||
Comment 6•7 years ago
|
||
I have the other patches ready but first part 4 needs to be correct before I can work on the following patches.
The part 4 patch removes ._visibleTypeDescriptionCount, but did you remove the reference at https://dxr.mozilla.org/comm-central/rev/28fb09316488db06ca1f606429a75c29d0bd856d/mail/components/preferences/applications.js#1138 ? It is not seen in the patch.
Assignee | ||
Comment 8•7 years ago
|
||
FX doesn't have the description (for example: (application/pdf: .pdf) ). This is what broke. I managed this now.
Attachment #8974501 -
Attachment is obsolete: true
Attachment #8974501 -
Flags: feedback?(acelists)
Attachment #8974815 -
Flags: review?(acelists)
Assignee | ||
Comment 9•7 years ago
|
||
Part 6 - Move _describePreferredAction to HandlerInfoWrapper.
Port of https://hg.mozilla.org/mozilla-central/rev/3e98dcc160f8
Attachment #8974816 -
Flags: review?(acelists)
Assignee | ||
Comment 10•7 years ago
|
||
Part 6 - Move action icon getters to HandlerInfoWrapper.
Port of https://hg.mozilla.org/mozilla-central/rev/b29b502c0fce
Attachment #8974817 -
Flags: review?(acelists)
Assignee | ||
Comment 11•7 years ago
|
||
Part 7 - Add a HandlerListItem class
Port of https://hg.mozilla.org/mozilla-central/rev/e9d78f354b26
This one doesn't work because of this lines:
+ this.node.setAttribute("shortTypeDetails",
+ this._typeDetails(visibleType));
This is to add the description FX doesn't have.
Aceman, please can you help me to move _typeDetails() into the handlerInfoWrapper? I don't know how this should be done.
Attachment #8974821 -
Flags: feedback?(acelists)
Assignee | ||
Comment 12•7 years ago
|
||
Part 7 fixed after talk over IRC.
Attachment #8974821 -
Attachment is obsolete: true
Attachment #8974821 -
Flags: feedback?(acelists)
Attachment #8974833 -
Flags: review?(acelists)
Assignee | ||
Comment 13•6 years ago
|
||
Updated to tip.
Attachment #8974815 -
Attachment is obsolete: true
Attachment #8974815 -
Flags: review?(acelists)
Attachment #8989712 -
Flags: review?(acelists)
Assignee | ||
Comment 14•6 years ago
|
||
Updated to tip.
Attachment #8974816 -
Attachment is obsolete: true
Attachment #8974816 -
Flags: review?(acelists)
Attachment #8989713 -
Flags: review?(acelists)
Assignee | ||
Comment 15•6 years ago
|
||
Updated to tip.
Attachment #8974817 -
Attachment is obsolete: true
Attachment #8974817 -
Flags: review?(acelists)
Attachment #8989714 -
Flags: review?(acelists)
Assignee | ||
Comment 16•6 years ago
|
||
Updated to tip.
Attachment #8974833 -
Attachment is obsolete: true
Attachment #8974833 -
Flags: review?(acelists)
Attachment #8989715 -
Flags: review?(acelists)
Updated•6 years ago
|
Blocks: tb-war-on-xbl
Updated•6 years ago
|
No longer blocks: tb-war-on-xbl
Assignee | ||
Comment 17•6 years ago
|
||
I had to update all patches because of the linting in this directory.
Attachment #8974496 -
Attachment is obsolete: true
Attachment #8974496 -
Flags: review?(acelists)
Attachment #9011182 -
Flags: review?(acelists)
Assignee | ||
Comment 18•6 years ago
|
||
Attachment #8974498 -
Attachment is obsolete: true
Attachment #8974498 -
Flags: review?(acelists)
Attachment #9011183 -
Flags: review?(acelists)
Assignee | ||
Comment 19•6 years ago
|
||
Attachment #8974499 -
Attachment is obsolete: true
Attachment #8974499 -
Flags: review?(acelists)
Attachment #9011184 -
Flags: review?(acelists)
Assignee | ||
Comment 20•6 years ago
|
||
Attachment #8989712 -
Attachment is obsolete: true
Attachment #8989712 -
Flags: review?(acelists)
Attachment #9011185 -
Flags: review?(acelists)
Assignee | ||
Comment 21•6 years ago
|
||
Attachment #8989713 -
Attachment is obsolete: true
Attachment #8989713 -
Flags: review?(acelists)
Attachment #9011186 -
Flags: review?(acelists)
Assignee | ||
Comment 22•6 years ago
|
||
Attachment #8989714 -
Attachment is obsolete: true
Attachment #8989714 -
Flags: review?(acelists)
Attachment #9011187 -
Flags: review?(acelists)
Assignee | ||
Comment 23•6 years ago
|
||
Attachment #8989715 -
Attachment is obsolete: true
Attachment #8989715 -
Flags: review?(acelists)
Attachment #9011188 -
Flags: review?(acelists)
Assignee | ||
Comment 24•6 years ago
|
||
Aceman, please can you check the linting too?
Attachment #9011182 -
Flags: review?(acelists) → review+
Attachment #9011183 -
Flags: review?(acelists) → review+
Comment 25•6 years ago
|
||
Comment on attachment 9011184 [details] [diff] [review]
handler_part3.patch
Review of attachment 9011184 [details] [diff] [review]:
-----------------------------------------------------------------
::: mail/components/preferences/applications.js
@@ +98,5 @@
>
> getNext() {
> return this._contents[this._index++];
> },
> +}
Why this change? I think eslint adds some of these trailing commas and semicolons. So they should be OK. Also, it seems this ArrayEnumerator is unused and can be removed.
@@ +140,5 @@
> + // and user-configured records, stop using this boolean flag and simply
> + // check for the presence of a user-configured record to determine whether
> + // or not this type is only handled by a plugin. Filed as bug 395142.
> + this.handledOnlyByPlugin = false;
> + }
So in a class commas are not needed here? Yes it works and adding a comma throws a syntax error. Weird.
@@ +178,2 @@
> return;
> /* eslint-enable mozilla/use-includes-instead-of-indexOf */
This comment may need removal when you removed the starting pair of it.
@@ +191,5 @@
> }
>
> + var handlers = this.possibleApplicationHandlers;
> + for (var i = 0; i < handlers.length; ++i) {
> + var handler = handlers.queryElementAt(i, Ci.nsIHandlerApp);
You could use 'let's here. But if all this code is copied from m-c then deviations may be unwanted and you do not need to do them.
Attachment #9011184 -
Flags: review?(acelists) → review+
Comment 26•6 years ago
|
||
(In reply to Richard Marti (:Paenglab) from comment #24)
> Aceman, please can you check the linting too?
Linter produced some errors:
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:104:2 | Missing semicolon. (semi)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:241:29 | 'InternalHandlerInfoWrapper' is not defined. (no-undef)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:282:13 | 'isFeedType' is not defined. (no-undef)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:284:36 | 'InternalHandlerInfoWrapper' is not defined. (no-undef)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:542:2 | Unnecessary semicolon. (no-extra-semi)
TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/comm/mail/components/preferences/applications.js:1130:50 | 'mimeType' is not defined. (no-undef)
(https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=19b0a6b0e58871a9cad0c2377513572d72e987ec)
Seems the semicolon on ArrayEnumerator is required.
Comment 27•6 years ago
|
||
Comment on attachment 9011185 [details] [diff] [review]
handler_part4.patch
Review of attachment 9011185 [details] [diff] [review]:
-----------------------------------------------------------------
::: mail/components/preferences/applicationManager.js
@@ +13,5 @@
>
> var bundle = document.getElementById("appManagerBundle");
> gApplicationsPane._prefsBundle = document.getElementById("bundlePreferences");
>
> + var description = gApplicationsPane.handlerInfo.typeDescription;
Where is this 'handlerInfo' defined in gApplicationsPane ?
Attachment #9011186 -
Flags: review?(acelists) → review+
Comment 28•6 years ago
|
||
Comment on attachment 9011187 [details] [diff] [review]
handler_part6.patch
Review of attachment 9011187 [details] [diff] [review]:
-----------------------------------------------------------------
::: mail/components/preferences/applications.js
@@ +238,5 @@
> + case Ci.nsIHandlerInfo.saveToDisk:
> + return "save";
> +
> + case Ci.nsIHandlerInfo.handleInternally:
> + if (isFeedType(this.type)) {
isFeedType is flagged as undefined by eslint. Do we import it from mozilla/browser/components/preferences/in-content/main.js in any way? Seamonkey has its own copy of it.
Assignee | ||
Comment 29•6 years ago
|
||
(In reply to :aceman from comment #25)
> Comment on attachment 9011184 [details] [diff] [review]
> handler_part3.patch
>
> Review of attachment 9011184 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: mail/components/preferences/applications.js
> @@ +98,5 @@
> >
> > getNext() {
> > return this._contents[this._index++];
> > },
> > +}
>
> Why this change? I think eslint adds some of these trailing commas and
> semicolons. So they should be OK. Also, it seems this ArrayEnumerator is
> unused and can be removed.
I removed the ArrayEnumerator. And eslint is happy now. :-)
> @@ +140,5 @@
> > + // and user-configured records, stop using this boolean flag and simply
> > + // check for the presence of a user-configured record to determine whether
> > + // or not this type is only handled by a plugin. Filed as bug 395142.
> > + this.handledOnlyByPlugin = false;
> > + }
>
> So in a class commas are not needed here? Yes it works and adding a comma
> throws a syntax error. Weird.
eslint does not show a error. I leave it as it is.
> @@ +178,2 @@
> > return;
> > /* eslint-enable mozilla/use-includes-instead-of-indexOf */
>
> This comment may need removal when you removed the starting pair of it.
Removed.
> @@ +191,5 @@
> > }
> >
> > + var handlers = this.possibleApplicationHandlers;
> > + for (var i = 0; i < handlers.length; ++i) {
> > + var handler = handlers.queryElementAt(i, Ci.nsIHandlerApp);
>
> You could use 'let's here. But if all this code is copied from m-c then
> deviations may be unwanted and you do not need to do them.
Copied from m-c. I'll leave them.
Attachment #9011184 -
Attachment is obsolete: true
Attachment #9012792 -
Flags: review?(acelists)
Assignee | ||
Comment 30•6 years ago
|
||
(In reply to :aceman from comment #27)
> Comment on attachment 9011185 [details] [diff] [review]
> handler_part4.patch
>
> Review of attachment 9011185 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: mail/components/preferences/applicationManager.js
> @@ +13,5 @@
> >
> > var bundle = document.getElementById("appManagerBundle");
> > gApplicationsPane._prefsBundle = document.getElementById("bundlePreferences");
> >
> > + var description = gApplicationsPane.handlerInfo.typeDescription;
>
> Where is this 'handlerInfo' defined in gApplicationsPane ?
It's in applications.js line 989.
Assignee | ||
Comment 31•6 years ago
|
||
(In reply to :aceman from comment #28)
> Comment on attachment 9011187 [details] [diff] [review]
> handler_part6.patch
>
> Review of attachment 9011187 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: mail/components/preferences/applications.js
> @@ +238,5 @@
> > + case Ci.nsIHandlerInfo.saveToDisk:
> > + return "save";
> > +
> > + case Ci.nsIHandlerInfo.handleInternally:
> > + if (isFeedType(this.type)) {
>
> isFeedType is flagged as undefined by eslint. Do we import it from
> mozilla/browser/components/preferences/in-content/main.js in any way?
> Seamonkey has its own copy of it.
This slipped in when copied from m-c. Removed.
I also added the missing InternalHandlerInfoWrapper class.
Eslint is happy now.
Attachment #9011187 -
Attachment is obsolete: true
Attachment #9011187 -
Flags: review?(acelists)
Attachment #9012794 -
Flags: review?(acelists)
Assignee | ||
Comment 32•6 years ago
|
||
Part_7 needed a rebase to apply.
Attachment #9011188 -
Attachment is obsolete: true
Attachment #9011188 -
Flags: review?(acelists)
Attachment #9012795 -
Flags: review?(acelists)
Assignee | ||
Comment 33•6 years ago
|
||
After talk with aceman over IRC he found that applicationManager.js needed some changes to work correctly.
Attachment #9011185 -
Attachment is obsolete: true
Attachment #9011185 -
Flags: review?(acelists)
Attachment #9012971 -
Flags: review?(acelists)
Attachment #9012792 -
Flags: review?(acelists) → review+
Comment 34•6 years ago
|
||
Comment on attachment 9012971 [details] [diff] [review]
handler_part4.patch
Review of attachment 9012971 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks
Attachment #9012971 -
Flags: review?(acelists) → review+
Attachment #9012794 -
Flags: review?(acelists) → review+
Comment 35•6 years ago
|
||
Comment on attachment 9012795 [details] [diff] [review]
handler_part7.patch
Review of attachment 9012795 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks for the series. Hopefully it future-proofs the code, as it contains a ton of new JS constructs that are not much used in c-c yet.
Attachment #9012795 -
Flags: review?(acelists) → review+
Assignee | ||
Updated•6 years ago
|
Keywords: checkin-needed
Comment 36•6 years ago
|
||
Comment on attachment 9011183 [details] [diff] [review]
handler_part2.patch
Review of attachment 9011183 [details] [diff] [review]:
-----------------------------------------------------------------
::: mail/components/preferences/applications.js
@@ +966,5 @@
> if (type in this._handledTypes)
> handlerInfoWrapper = this._handledTypes[type];
> else {
> let wrappedHandlerInfo =
> + gMIMEService.getFromTypeAndExtension(mimeType.type, null);
where does mimeType come from?
Assignee | ||
Comment 37•6 years ago
|
||
(In reply to Jorg K (GMT+2) from comment #36)
> Comment on attachment 9011183 [details] [diff] [review]
> handler_part2.patch
>
> Review of attachment 9011183 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: mail/components/preferences/applications.js
> @@ +966,5 @@
> > if (type in this._handledTypes)
> > handlerInfoWrapper = this._handledTypes[type];
> > else {
> > let wrappedHandlerInfo =
> > + gMIMEService.getFromTypeAndExtension(mimeType.type, null);
>
> where does mimeType come from?
It's in _loadPluginHandlers() in part3. So part2 isn't 100% correct itself but with all parts applied all is defined.
See also https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=fdf3be2a311263cc557a8757ed680cc8431f9805 without the applicationManager.js change in part4.
Comment 38•6 years ago
|
||
Comment on attachment 9012971 [details] [diff] [review]
handler_part4.patch
Review of attachment 9012971 [details] [diff] [review]:
-----------------------------------------------------------------
I can see whether I can update part 4 without the rest unravelling.
::: mail/components/preferences/applicationManager.js
@@ +14,5 @@
> var bundle = document.getElementById("appManagerBundle");
> gApplicationsPane._prefsBundle = document.getElementById("bundlePreferences");
>
> + this.handlerInfo = window.arguments[0];
> + var bundle = document.getElementById("appManagerBundle");
This gives a linting error since |var bundle| is already there a few lines above.
Comment 39•6 years ago
|
||
Attachment #9012971 -
Attachment is obsolete: true
Attachment #9012993 -
Flags: review+
Comment 40•6 years ago
|
||
Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/1dfd8879d65b
Port bug 1457027 to TB: Part 1 - Don't persist the last selected handler. r=aceman
https://hg.mozilla.org/comm-central/rev/e490dff436dd
Port bug 1457027 to TB: Part 2 - Define services using defineLazyServiceGetters. r=aceman
https://hg.mozilla.org/comm-central/rev/be4843f65ece
Port bug 1457027 to TB: Part 4 - Use class syntax for the HandlerInfoWrapper hierarchy. r=aceman
https://hg.mozilla.org/comm-central/rev/f686a4e62dc8
Port bug 1457027 to TB: Part 5 - Move _describeType to HandlerInfoWrapper. r=aceman
https://hg.mozilla.org/comm-central/rev/cc895db45e99
Port bug 1457027 to TB: Part 6 - Move _describePreferredAction to HandlerInfoWrapper. r=aceman
https://hg.mozilla.org/comm-central/rev/eca38904a853
Port bug 1457027 to TB: Part 7 - Move action icon getters to HandlerInfoWrapper. r=aceman
https://hg.mozilla.org/comm-central/rev/2131ecd0173c
Port bug 1457027 to TB: Part 8 - Add a HandlerListItem class. r=aceman
Comment 41•6 years ago
|
||
Part 3 wasn't ported, see comment #4.
Target Milestone: --- → Thunderbird 64.0
Updated•5 years ago
|
Type: enhancement → task
You need to log in
before you can comment on or make changes to this bug.
Description
•