gecko-dev/tools
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
..
bloatview
browsertime Bug 1565399 - Update github tarball to 4989d0c22bba3a165078b8d784e8d303a727a119 r=nalexander 2019-07-16 15:09:17 +00:00
clang-tidy Bug 1558987 - For clang based static-analysis, disable readability-isolate-declaration. r=sylvestre 2019-06-13 12:32:57 +00:00
code-coverage Bug 1561435 - Format tools/, a=automatic-formatting 2019-07-05 11:18:19 +02:00
compare-locales Bug 1492070, update mach command for compare-locales, #firefox-build-system-reviewers r=firefox-build-system-reviewers,ted 2018-12-03 12:08:31 +00:00
coverity Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs 2019-07-08 09:27:47 +00:00
crashreporter Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
docs Bug 1559975 - fix python2 linter error for tools/docs r=ahal 2019-07-19 14:45:24 +00:00
fuzzing Bug 1561346 - Allow FUZZING_INTERFACE_STREAM to be used multiple times. r=froydnj 2019-06-25 22:02:52 +00:00
infer
jprof Bug 1559975 - fix python2 linter error for tools/jprof/split-profile.py r=ahal 2019-07-16 17:47:33 +00:00
leak-gauge Bug 1546501 - Remove unnecessary type attributes (i.e. [type="application/javascript"]) on non-test script tags r=mossop 2019-04-24 19:43:57 +00:00
lint Bug 1505913 - make plugin click-to-play and crash handling fission-compatible, r=mconley 2019-07-23 22:04:40 +00:00
performance Bug 1553254 - Part 1: Allow low-overhead selective collection of internal performance probes through ChromeUtils. r=brennie,nika 2019-05-21 21:01:31 +02:00
power Bug 1559975 - Make directories python3 compatible r=catlee 2019-07-02 15:47:34 +00:00
profiler Bug 1562642 - Part 4 - Add missing MPL2 headers in tools r=ahal 2019-07-10 19:12:07 +00:00
quitter Bug 1562642 - Part 4 - Add missing MPL2 headers in tools r=ahal 2019-07-10 19:12:07 +00:00
rb Bug 1499907 - Add a `jsonEscape` argument to `fixSymbols`. r=erahm 2018-11-21 10:28:00 +11:00
rewriting Backed out 3 changesets (bug 1559975) for linting failure at WebIDL.py on a CLOSED TREE. 2019-07-19 18:25:10 +03:00
tryselect Bug 1565168 - Add a webrender try preset. r=kats 2019-07-11 17:23:08 +00:00
update-packaging Bug 1458385: Package mar and mbsdiff as a toolchain; r=glandium 2019-07-11 16:40:13 +00:00
update-verify Bug 1562642 - Part 4 - Add missing MPL2 headers in tools r=ahal 2019-07-10 19:12:07 +00:00
vcs Bug 1561723 - Add debugger to whitelist for import-pr usage r=kvark 2019-07-19 14:18:56 +00:00
mach_commands.py Bug 1559975 - fix python2 lint issues in tools/mach_commands.py r=ahal,catlee 2019-07-19 14:50:07 +00:00
moz.build Bug 1553254 - Part 1: Allow low-overhead selective collection of internal performance probes through ChromeUtils. r=brennie,nika 2019-05-21 21:01:31 +02:00