Closed Bug 1695817 Opened 7 months ago Closed 4 months ago

Introduce about:third-party page

Categories

(Firefox :: Launcher Process, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
relnote-firefox --- 90+
firefox90 --- fixed

People

(Reporter: toshi, Assigned: toshi)

References

(Blocks 1 open bug)

Details

Attachments

(10 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
81.58 KB, image/png
Details
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Now that the new section "Third-Party Modules" in about:support (bug 1669036) has landed on the release version, let's start prototyping a new about:third-party page.

This patch adds a blank page about:third-party along with a skeleton XPCOM
object AboutThirdParty which has a method to invoke a background task in C++.

Depends on D109302

This patch implements a frontend part of the about:third-party, showing
third-party module info based on the telemetry ping as we currently do in
the "Third-Party Modules" section in the about:support page (bug 1669036).

Depends on D109303

This patch adds a feature to mark each module in the about:third-party page
as a shell extension or an IME if it is so. To achieve this, when the page
is loaded, it starts a background task to collect registered shell extensions
from the registry and adds a tag next to a module's name.

Depends on D109304

This patch adds application info (Name and Publisher for now) in the
about:third-party page if a module is a part of an installed application,
which is registered in the registry and shown in Windows Control Panel.
To achieve this, we parse the registry to collect installed applications
in the background task.

Depends on D109305

This patch adds a new mochitest to verify the content on about:third-party.
As a third-party module to test, this patch adds a new DLL TestShellEx.dll
which works as an Icon Handler Shell Extension.

Depends on D109306

Attached image screenshot-20210322.png (obsolete) —
Attachment #9210704 - Attachment description: Bug 1695817 - Part 4: Label a module as ShellExtension or IME → Bug 1695817 - Part 4: Label a module as ShellExtension or IME. r=gijs
Attachment #9210705 - Attachment description: Bug 1695817 - Part 5: Show name and publisher of an application owning a module → Bug 1695817 - Part 5: Show name and publisher of an application owning a module. r=gijs
Attachment #9210706 - Attachment description: Bug 1695817 - Part 6: Add a mochitest case with TestShellEx.dll → Bug 1695817 - Part 6: Add a mochitest case with TestShellEx.dll. r=gijs

This patch is to show a warning icon for a module which caused crash
i.e. if CrashManager has a record where the crashing address was within
the module's mapped region.

Attached image screenshot-20210420.png
Attachment #9210707 - Attachment is obsolete: true
Attachment #9210705 - Attachment description: Bug 1695817 - Part 5: Show name and publisher of an application owning a module. r=gijs → Bug 1695817 - Part 6: Show name and publisher of an application owning a module. r=gijs
Attachment #9210706 - Attachment description: Bug 1695817 - Part 6: Add a mochitest case with TestShellEx.dll. r=gijs → Bug 1695817 - Part 7: Add a mochitest case with TestShellEx.dll. r=gijs
Attachment #9217151 - Attachment description: Bug 1695817 - Part 7: Show a warning icon for crasher modules. r=gijs → Bug 1695817 - Part 8: Show a warning icon for crasher modules. r=gijs
Blocks: 1712630
Pushed by tkikuchi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ba3ddcc28cbf
Part 1: Make nt::GetLeafName accept nsAString r=mhowell
https://hg.mozilla.org/integration/autoland/rev/a2d11a0849d5
Part 2: Introduce a blank page about:third-party r=Gijs,fluent-reviewers,xpcom-reviewers,kmag
https://hg.mozilla.org/integration/autoland/rev/9af42c7a3ca7
Part 3: Show third-party module info in the about:third-party page r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/0a80eea3c0fa
Part 4: Label a module as ShellExtension or IME.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/c73705233fc4
Part 5: Add std::equal_range equivalent in MFBT.  r=glandium
https://hg.mozilla.org/integration/autoland/rev/a2c86a645fa8
Part 6: Show name and publisher of an application owning a module.  r=Gijs,fluent-reviewers,mhowell
https://hg.mozilla.org/integration/autoland/rev/fd277ae2a7b8
Part 7: Add a mochitest case with TestShellEx.dll.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/119a24f8be08
Part 8: Show a warning icon for crasher modules.  r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/df4086427aaf
Part 9: Localize process type strings on the about:third-party.  r=Gijs,fluent-reviewers
Blocks: 1713242

Updated the part2 patch.

Flags: needinfo?(tkikuchi)
Pushed by tkikuchi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/29dee289f866
Part 1: Make nt::GetLeafName accept nsAString r=mhowell
https://hg.mozilla.org/integration/autoland/rev/4860450c2e23
Part 2: Introduce a blank page about:third-party r=Gijs,fluent-reviewers,xpcom-reviewers,kmag
https://hg.mozilla.org/integration/autoland/rev/c7354b48fbee
Part 3: Show third-party module info in the about:third-party page r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/3551230a7522
Part 4: Label a module as ShellExtension or IME.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/812a6bbfbe0e
Part 5: Add std::equal_range equivalent in MFBT.  r=glandium
https://hg.mozilla.org/integration/autoland/rev/b03b122438cc
Part 6: Show name and publisher of an application owning a module.  r=Gijs,fluent-reviewers,mhowell
https://hg.mozilla.org/integration/autoland/rev/ab9fa7f3b633
Part 7: Add a mochitest case with TestShellEx.dll.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/30f1382d6058
Part 8: Show a warning icon for crasher modules.  r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/49be1caf6501
Part 9: Localize process type strings on the about:third-party.  r=Gijs,fluent-reviewers

Hmm, somehow the icon file in the Part7 became empty.

Flags: needinfo?(tkikuchi)
Pushed by tkikuchi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1c45ba4fba61
Part 1: Make nt::GetLeafName accept nsAString r=mhowell
https://hg.mozilla.org/integration/autoland/rev/e3f2bed63c33
Part 2: Introduce a blank page about:third-party r=Gijs,fluent-reviewers,xpcom-reviewers,kmag
https://hg.mozilla.org/integration/autoland/rev/7583675dccb1
Part 3: Show third-party module info in the about:third-party page r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/48c0eed38628
Part 4: Label a module as ShellExtension or IME.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/4a9bcb38fddf
Part 5: Add std::equal_range equivalent in MFBT.  r=glandium
https://hg.mozilla.org/integration/autoland/rev/9c9a928d4a70
Part 6: Show name and publisher of an application owning a module.  r=Gijs,fluent-reviewers,mhowell
https://hg.mozilla.org/integration/autoland/rev/b4f971059f3f
Part 7: Add a mochitest case with TestShellEx.dll.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/ad3ea67b3d70
Part 8: Show a warning icon for crasher modules.  r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/6b7f451e911e
Part 9: Localize process type strings on the about:third-party.  r=Gijs,fluent-reviewers

Backed out 9 changesets (Bug 1695817) for causing bc failures in content/aboutThirdParty.js
Backout link: https://hg.mozilla.org/integration/autoland/rev/c884d008db5c45825972f442c7a8010eafd339fc
Push with failures, failure log

Flags: needinfo?(tkikuchi)

It seems MOZ_CRASHREPORTER is not defined in ASan build on autoland. Updated the Part8 patch.

Flags: needinfo?(tkikuchi)
Pushed by tkikuchi@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9d48d8ab9d65
Part 1: Make nt::GetLeafName accept nsAString r=mhowell
https://hg.mozilla.org/integration/autoland/rev/1bc11fed0fa7
Part 2: Introduce a blank page about:third-party r=Gijs,fluent-reviewers,xpcom-reviewers,kmag
https://hg.mozilla.org/integration/autoland/rev/01e6b8919218
Part 3: Show third-party module info in the about:third-party page r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/cef7309a8e3c
Part 4: Label a module as ShellExtension or IME.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/9494a0c6f129
Part 5: Add std::equal_range equivalent in MFBT.  r=glandium
https://hg.mozilla.org/integration/autoland/rev/2e4e5decb750
Part 6: Show name and publisher of an application owning a module.  r=Gijs,fluent-reviewers,mhowell
https://hg.mozilla.org/integration/autoland/rev/a6a7d4df5ca4
Part 7: Add a mochitest case with TestShellEx.dll.  r=Gijs,mhowell
https://hg.mozilla.org/integration/autoland/rev/3214e7781afd
Part 8: Show a warning icon for crasher modules.  r=Gijs,fluent-reviewers
https://hg.mozilla.org/integration/autoland/rev/df2befd2754e
Part 9: Localize process type strings on the about:third-party.  r=Gijs,fluent-reviewers

Is this worth calling out in firefox 90 release notes, or not quite yet? (If yes, see https://wiki.mozilla.org/Release_Management/Release_Notes#Nomination_in_Bugzilla)

Flags: needinfo?(tkikuchi)

(In reply to Julien Cristau [:jcristau] from comment #23)

Is this worth calling out in firefox 90 release notes, or not quite yet? (If yes, see https://wiki.mozilla.org/Release_Management/Release_Notes#Nomination_in_Bugzilla)

Thank you for the suggestion. Yes, we want to add a note about this!


Release Note Request (optional, but appreciated)
[Why is this notable]: We introduce a new page for Windows users to see the list of third-party modules injected into Firefox. If they know this feature, they may be able to triage compatibility issues by themselves.
[Affects Firefox for Android]: No
[Suggested wording]: Firefox for Windows now offers a new page about:third-party to help users identify compatibility issues caused by third-party applications.
[Links (documentation, blog post, etc)]: We're preparing a SUMO article to which we want to have a link, but it's not available yet.

relnote-firefox: --- → ?
Flags: needinfo?(tkikuchi)

Can you help me understand where these two strings are used? I've been staring at the code for a while, and can't tell
https://hg.mozilla.org/mozilla-central/rev/01e6b8919218#l4.16

+third-party-header-module-list = Module list
+third-party-header-loading-events = Loading events

In the last is unclear if loading is a verb or an adjective. I assume it's a verb, which makes it sound like the string is missing an ellipsis at the end.

Flags: needinfo?(tkikuchi)

(In reply to Francesco Lodolo [:flod] from comment #25)

Can you help me understand where these two strings are used? I've been staring at the code for a while, and can't tell
https://hg.mozilla.org/mozilla-central/rev/01e6b8919218#l4.16

+third-party-header-module-list = Module list
+third-party-header-loading-events = Loading events

In the last is unclear if loading is a verb or an adjective. I assume it's a verb, which makes it sound like the string is missing an ellipsis at the end.

Oh, thank you for looking at the code. These are unused and I forgot to remove them. I'll file a bug.

Flags: needinfo?(tkikuchi)
See Also: → 1714620
Blocks: 1728190
Blocks: 1730553
You need to log in before you can comment on or make changes to this bug.