gecko-dev/tools/lint
Gijs Kruitbosch fffc7f0c58 Bug 1505913 - make plugin click-to-play and crash handling fission-compatible, r=mconley
At a high level, this change does the following:
- move the pluginchild actor to be a JSWindowActorChild
- move the parent handling from browser-plugins into a JSWindowActorParent
- move the crash handling from ContentCrashHandlers.jsm to the parent actor,
  using a `PluginManager` object. It needs to talk to the actors (and vice
  versa), so this seemed a better fit than spreading actor implementation
  details to other JSMs.
- switch to using plugin IDs to identify plugins cross-process, instead of
  combinations of names or other properties of the plugin tag. As part of that,
  ensured plugin IDs are unique between "fake" plugins and the other ones.
- drop support for having a notification for more than 1 plugin. We only support
  Flash, in practice, so there didn't seem to be much point in the added
  complexity of trying to support more than 1 thing.

Some notes:
- the previous implementation mixes runIDs (for NPAPI plugin process "runs")
  and GMP pluginIDs when doing crashreporting. AFAICT there is no guarantee
  these don't conflict, so I've split them out to avoid issues. There's a
  pluginCrashID object I pass around instead that has either a runID or
  pluginID. Happy to rename some more for clarity.
- the previous implementation used `pluginInfo` and `plugin` for a bunch of
  different types of variables. I've tried to be consistent, where:
  * `pluginElement` is a DOM element for a plugin
  * `activationInfo` is a JS object used to track click to play state for a plugin
  * `plugin` is a plugintag as returned by the pluginhost service
  * `pluginCrashID` is an identifier for a crashed plugin (see previous point).
- I'm still using broadcastAsyncMessage to tell the content processes about
  gmp plugin crashes and plugin crash submission updates, because there's no
  guarantee the actors are instantiated (for gmp plugins) nor can the parent
  easily find out which actors to talk to (for either gmp or npapi plugins).
  Open to suggestions there, too. I think our best bet might be moving that to
  IPDL-based IPC within the GMP code, but that feels like a separate bug.

Differential Revision: https://phabricator.services.mozilla.com/D37665

--HG--
rename : browser/base/content/browser-plugins.js => browser/actors/PluginParent.jsm
extra : moz-landing-system : lando
2019-07-23 22:04:40 +00:00
..
cpp Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
docs Bug 1566097 - Setup rstcheck linter instead of restructuredtext-lint. r=ahal 2019-07-23 21:30:10 +00:00
eslint Bug 1505913 - make plugin click-to-play and crash handling fission-compatible, r=mconley 2019-07-23 22:04:40 +00:00
license Bug 1562645 - Add an autofix to the license check r=ahal 2019-07-16 13:40:43 +00:00
python Bug 1562642 - Part 4 - Add missing MPL2 headers in tools r=ahal 2019-07-10 19:12:07 +00:00
rst Bug 1566097 - Setup rstcheck linter instead of restructuredtext-lint. r=ahal 2019-07-23 21:30:10 +00:00
rust Bug 1563797 - Use 'backports.shutil_which' instead of 'which' across the tree r=Callek 2019-07-11 14:03:39 +00:00
shell Bug 1563797 - Use 'backports.shutil_which' instead of 'which' across the tree r=Callek 2019-07-11 14:03:39 +00:00
spell Bug 1563797 - Use 'backports.shutil_which' instead of 'which' across the tree r=Callek 2019-07-11 14:03:39 +00:00
test Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
tox
wpt Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
yamllint_ Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
codespell.yml Bug 1555450 - Remove locale-specific behavior when fully fluent (no longer using properties/json) r=k88hudson 2019-07-03 23:49:07 +00:00
cpp-virtual-final.yml Bug 1513950 - Run cpp-virtual-final lint on .cc files. r=ahal 2018-12-31 21:27:22 +00:00
eslint.yml Bug 1537622 - add rudimentary support for linting XUL files, r=Standard8 2019-04-05 12:40:23 +00:00
flake8.yml Bug 1367092 - [flake8] Use a blacklist instead of a whitelist, r=egao 2019-02-22 21:25:50 +00:00
hooks.py Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
hooks_clang_format.py Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
hooks_js_format.py Bug 1559975 - fix python2 linter errors for tools/lint r=ahal 2019-07-19 15:56:29 +00:00
l10n.yml Bug 1353680, create test to prevent bad content in localizable strings, r=ahal,flod 2019-05-02 10:50:43 +00:00
license.yml Bug 1562645 - Add an autofix to the license check r=ahal 2019-07-16 13:40:43 +00:00
mach_commands.py Bug 1375861 - [mozlint] Globally exclude paths listed in tools/rewriting/ThirdPartyPaths.txt from our linters, r=sylvestre 2018-10-18 15:27:59 +00:00
mingw-capitalization.yml Bug 1375861 - [mozlint] Globally exclude paths listed in tools/rewriting/ThirdPartyPaths.txt from our linters, r=sylvestre 2018-10-18 15:27:59 +00:00
py2.yml Bug 1559975 - remove media from python2/3 linter blacklist r=ahal 2019-07-19 14:53:16 +00:00
py3.yml Bug 1559975 - remove media from python2/3 linter blacklist r=ahal 2019-07-19 14:53:16 +00:00
rst.yml Bug 1566097 - Setup rstcheck linter instead of restructuredtext-lint. r=ahal 2019-07-23 21:30:10 +00:00
rustfmt.yml Bug 1554406 - rustfmt: Remove servo from the list (not green yet) r=ahal 2019-05-27 15:25:47 +00:00
shellcheck.yml
test-disable.yml Bug 1375861 - [mozlint] Globally exclude paths listed in tools/rewriting/ThirdPartyPaths.txt from our linters, r=sylvestre 2018-10-18 15:27:59 +00:00
wpt.yml
yaml.yml Bug 1482395: [mozrelease] Generate whats new blob and populate it during release; r=mtabara 2018-11-26 17:51:23 +00:00