Mass removal of NPAPI plugin code
Categories
(Core Graveyard :: Plug-ins, task, P1)
Tracking
(firefox89 fixed)
Tracking | Status | |
---|---|---|
firefox89 | --- | fixed |
People
(Reporter: handyman, Assigned: handyman)
References
(Regressed 1 open bug)
Details
Attachments
(25 files, 43 obsolete files)
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 | |
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 | |
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 | |
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 |
Bug for the initial omnibus NPAPI-plugin-removal patch series. We will work to include nearly all of the NPAPI-exclusive code across the repo, and to refactor some components around its integration, but may leave some stragglers. Bug 1677160 is the umbrella bug for all NPAPI removal.
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Assignee | ||
Comment 46•4 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #45)
David, are you still working on this?
Yes, still active. It should be wrapping up now. Try again in a week or so.
Comment 47•4 years ago
|
||
OK, good to know. FYI, we removed most of the layout/ code in bug 1687239, so you might get a few conflicts from that (sorry, I wasn't aware of this work at the time).
Comment 48•4 years ago
|
||
Gentle ping. Even just dropping the tests (D99508) would help us drop depends on gtk2 (1377445).
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 49•4 years ago
|
||
Removes NPAPI plugin features from tests outside of dom/plugins. Some tests are updated to avoid NPAPI behavior and others are deleted if they no longer offer anthing useful.
Assignee | ||
Comment 50•4 years ago
|
||
Removes NPAPI plugin tests in dom/plugins, as well as the TestPlugin, as part of removing all of NPAPI plugin support. A small handful of tests that are still relevant remain in that directory.
Depends on D107134
Assignee | ||
Comment 51•4 years ago
|
||
Removes the PPluginSurface actor used for windowed plugins, as part of removing all of NPAPI plugin support. SharedDIB is then unused and is also removed.
Depends on D107138
Assignee | ||
Comment 52•4 years ago
|
||
Removes the NPAPI plugin widget actor and its proxy, as part of removing all of NPAPI plugin support.
Depends on D107140
Assignee | ||
Comment 53•4 years ago
|
||
Removes the mac plugin_interposer (and the related NSCursorInfo behavior), as part of removing all of NPAPI plugin support, since it has no other clients.
Depends on D107141
Assignee | ||
Comment 54•4 years ago
|
||
Removes NPAPI plugin support from accessible/, as part of removing all of NPAPI plugin support. This was the only reason for HTMLWin32ObjectAccessible was needed, so we get rid of that, too.
Depends on D107142
Assignee | ||
Comment 55•4 years ago
|
||
This is the first of two patches in this series that removes a large amount of now dead code from dom/plugins as part of removing all NPAPI plugin support. This patch removes re-entrancy guards we have for Windows OnPaint messages, as the guards were only needed for windowed plugins.
Depends on D107143
Assignee | ||
Comment 56•4 years ago
|
||
Removes nsIPluginDocument and its implementation as part of removing all NPAPI plugin support.
Depends on D107144
Assignee | ||
Comment 57•4 years ago
|
||
Removes NPAPI plugin support from the ClearDataService as part of removing all of NPAPI.
Depends on D107145
Assignee | ||
Comment 58•4 years ago
|
||
Removes Flash version and plugin blocklist data from telemetry and about:telemetry as part of removing all NPAPI plugin support.
Depends on D107146
Assignee | ||
Comment 59•4 years ago
|
||
Removes the PluginProvider and NPAPI plugin blocklist handling as part of removing all NPAPI support. This allows us to remove nsIPluginHost.
Depends on D107147
Assignee | ||
Comment 60•4 years ago
|
||
Removes unused nsIPluginWidget, as part of removing all NPAPI support.
Depends on D107148
Assignee | ||
Comment 61•4 years ago
|
||
This is the second of two patches in this series that removes a large amount of now dead code from dom/plugins as part of removing all NPAPI plugin support.
Depends on D107149
Assignee | ||
Comment 62•4 years ago
|
||
We still use these types so that the typing of these arrays in navigator follows the spec but they are never populated since we have removed all NPAPI plugin support. So these classes are greatly simplified.
Depends on D107150
Assignee | ||
Comment 63•4 years ago
|
||
Removes async (windowless) NPAPI plugin rendering methods used to render a plugin to an offscreen surface in the GPU process. None of this code is used since we have removed all NPAPI plugin support.
Depends on D107151
Assignee | ||
Comment 64•4 years ago
|
||
Removes stale windowed NPAPI plugin layers support as part of removing all NPAPI support.
Depends on D107152
Assignee | ||
Comment 65•4 years ago
|
||
As part of removing all NPAPI plugin support, CTP is no longer relevant (it does not apply to GMP plugins) so we remove the option from about:addons.
Depends on D107153
Assignee | ||
Comment 66•4 years ago
|
||
Removes the methods for handling NPAPI plugin process crashes, as we are eliminating all NPAPI behavior.
Depends on D107154
Assignee | ||
Comment 67•4 years ago
|
||
As part of removing all NPAPI plugin support, plugin MIME type is no longer relevant (it does not apply to GMP plugins) so we remove the table from about:plugins.
Depends on D107155
Assignee | ||
Comment 68•4 years ago
|
||
Removes NPAPI support from JS plugin actors, most of which was CTP-and-fallback overlay related, leaving them to only do GMP crash handling.
Depends on D107156
Assignee | ||
Comment 69•4 years ago
|
||
Similifies use of EventStates and ObjectType/FallbackType enums since most states they represented are no longer valid with the removal of NPAPI plugins. The state machine for (unsupported) plugin elements is now much simpler but still distinguishes between HTML fallbacks, fallbacks leading to a "BROKEN" state (e.g. failing to load the image the element refers to), and fallbacks that would simply lead the element to occupy an empty region. The last type of fallback is behind a pref "layout.use-plugin-fallback" and is disabled by default.
Simplifying the state machine allows us to clean up nsObjectLoadingContent. We also update many of the enums which refered to plugins, which would otherwise get confusing.
Depends on D107157
Assignee | ||
Comment 70•4 years ago
|
||
HiddenPluginEvent is no longer used since NPAPI plugin support has been removed.
Depends on D107158
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 83•4 years ago
|
||
Removes the Flash sandbox descriptor as part of removing all NPAPI plugin support.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 84•4 years ago
|
||
Removes Windows NPAPI process sandboxing code, including the code to establish a viable temp directory that was accessible by the sandboxed process.
Depends on D107159
Assignee | ||
Comment 85•4 years ago
|
||
Eliminates the NPAPI plugin process type from the GeckoChildProcess enum as part of NPAPI removal. In order to avoid altering enum values when updating the process list, the GECKO_PROCESS_TYPE macro has been updated to include the desired enum value. We want to resist altering the values as they need to be consistent e.g. in telemetry reports.
We also remove plugins from adjacent spots that need to maintain consistency with GeckoChildProcess -- most notably the nsICrashService.
Depends on D108688
Comment 86•4 years ago
|
||
Could you land approved revisions incrementally, seeking other reviewers, or separate patches to multiple bugs? This bug blocks some further cleanups.
Assignee | ||
Comment 87•4 years ago
|
||
Unfortunately, the patches are pretty tightly integrated, to avoid tediously maintaining code that was also soon to be deleted, so landing them piecemeal would be hard. I'll see what I can do about speeding up reviews but there isn't much left. If you've got something specific that's really urgent, and if there is a sane way to do it, I'm good with coordinating so you can land right away. Just LMK what you need.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 88•4 years ago
|
||
(In reply to David Parks [:handyman] from comment #87)
If you've got something specific that's really urgent, and if there is a sane way to do it, I'm good with coordinating so you can land right away. Just LMK what you need.
It is not so urgent, but I want to #define UNICODE
everywhere in windows builds. Unfortunately, some legacy plugin code dislikes #define UNICODE
. I do not want to find out the cause and fix it because I thought it will be removed soon anyway. If it is possible to remove (or at least stop building) the relevant code, that's great.
Comment 89•4 years ago
|
||
Comment 90•4 years ago
|
||
Backed out for bustage on ProcessHangMonitor.cpp and nsCOMPtr.h
backout: https://hg.mozilla.org/integration/autoland/rev/bd702683bc3c0e964f915158dd03b8662bed429d
failure logs:
[task 2021-04-06T00:33:17.142Z] 00:33:17 ERROR - /builds/worker/checkouts/gecko/dom/ipc/ProcessHangMonitor.cpp:892:6: error: 'void {anonymous}::HangMonitorParent::UpdateMinidump(uint32_t, const nsString&)' defined but not used [-Werror=unused-function]
[task 2021-04-06T00:33:17.142Z] 00:33:17 INFO - void HangMonitorParent::UpdateMinidump(uint32_t aPluginId,
[task 2021-04-06T00:33:17.142Z] 00:33:17 INFO - ^~~~~~~~~~~~~~~~~
[task 2021-04-06T00:33:17.143Z] 00:33:17 INFO - cc1plus: all warnings being treated as errors
[task 2021-04-06T00:33:17.143Z] 00:33:17 ERROR - make[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:676: ProcessHangMonitor.o] Error 1
[task 2021-04-06T00:33:17.143Z] 00:33:17 INFO - make[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/ipc'
[task 2021-04-06T00:07:55.956Z] In file included from /builds/worker/checkouts/gecko/dom/base/nsMimeTypeArray.h:11:
[task 2021-04-06T00:07:55.957Z] /builds/worker/checkouts/gecko/obj-x86_64-pc-linux-gnu/dist/include/nsCOMPtr.h:424:5: error: no matching function for call to 'ToSupports'
[task 2021-04-06T00:07:55.958Z] NSCAP_LOG_ASSIGNMENT(this, aNewPtr);
[task 2021-04-06T00:07:55.959Z] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2021-04-06T00:07:55.960Z] /builds/worker/checkouts/gecko/obj-x86_64-pc-linux-gnu/dist/include/nsISupportsImpl.h:182:49: note: expanded from macro 'NSCAP_LOG_ASSIGNMENT'
[task 2021-04-06T00:07:55.961Z] if (_p != nullptr) NS_LogCOMPtrAddRef((_c), ToSupports(_p))
[task 2021-04-06T00:07:55.962Z] ^~~~~~~~~~
Assignee | ||
Comment 91•4 years ago
|
||
Fortunately this looks to be just deleting an unused method and adding an #include missing in non-unified builds. Nothing deep at all -- should be back shortly.
Assignee | ||
Comment 92•4 years ago
|
||
Comment 93•4 years ago
|
||
Comment 94•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1c07317c6dbf
https://hg.mozilla.org/mozilla-central/rev/080aa7b074c3
https://hg.mozilla.org/mozilla-central/rev/3739f10fd744
https://hg.mozilla.org/mozilla-central/rev/8f1aa45d854b
https://hg.mozilla.org/mozilla-central/rev/11170fb7e7fe
https://hg.mozilla.org/mozilla-central/rev/4dba093cbb34
https://hg.mozilla.org/mozilla-central/rev/29ce5e7ceaa6
https://hg.mozilla.org/mozilla-central/rev/a5d8b38876d8
https://hg.mozilla.org/mozilla-central/rev/d789ce825491
https://hg.mozilla.org/mozilla-central/rev/32a2fdad82bb
https://hg.mozilla.org/mozilla-central/rev/6e00aba7e14f
https://hg.mozilla.org/mozilla-central/rev/ee8836383bf0
https://hg.mozilla.org/mozilla-central/rev/2e011ce4adbf
https://hg.mozilla.org/mozilla-central/rev/4639cb0ba184
https://hg.mozilla.org/mozilla-central/rev/c76b18432fa2
https://hg.mozilla.org/mozilla-central/rev/ac573562d3df
https://hg.mozilla.org/mozilla-central/rev/f2ad1724e9af
https://hg.mozilla.org/mozilla-central/rev/ee8b4ffc4aca
https://hg.mozilla.org/mozilla-central/rev/6999a4083233
https://hg.mozilla.org/mozilla-central/rev/a0b2f4d23544
https://hg.mozilla.org/mozilla-central/rev/2155fb99d845
https://hg.mozilla.org/mozilla-central/rev/36306d2ee01f
https://hg.mozilla.org/mozilla-central/rev/654058730d71
https://hg.mozilla.org/mozilla-central/rev/196e52cf4488
Comment 95•4 years ago
|
||
Comment 96•3 years ago
|
||
Comment 97•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Updated•3 years ago
|
Description
•