***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8
This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:
ChromeUtils.import("resource://gre/modules/Services.jsm");
is approximately the same as the following, in the new model:
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs
This was done using the followng script:
https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16750
Aside from making things easier for JS callers, this also makes it harder to
accidentally trigger an early load of the service, which can be expensive
during startup.
This also makes a slight change to nsPluginHost to initially preserve the
previous blocklist state when a plugin is updated, to avoid the risk of the
possible additioanl asynchrony unblocking a plugin that should stay blocked.
MozReview-Commit-ID: 4EvIGJ1Ke0Z
Since the user can now block Flash and ask the browser to
remember that decision, the histogram that collects user's choices
on this has to be updated with a fourth option.
MozReview-Commit-ID: J4r6nJIiaeQ
Migrated to simply use PopupNotifications.jsm. Additionally, this
changes the behavior to always have two buttons and a remember
checkbox. When selecting allow with remember, it will behave like
the always allow option previously, but when selecting block with
remember, it will move that page into a quiet mode with respect
to Flash - i.e., no plugin overlays will show anymore, and instead
you will just see the plugin icon in the URL bar, which you can
continue to interact with as before.
MozReview-Commit-ID: EUFlI7nM09t
Most of this is fixing functions that in some cases return a value but then
can also run to completion without returning anything. ESLint 2 catches this
where previous versions didn't. Unless there was an obvious other choice I just
made these functions return undefined at the end which is effectively what
already happens.
MozReview-Commit-ID: DEskVIjiKDM
showNPAPIPluginCrashedNotification was erroneously calling submitGMPCrashReport, and attempted
to call it with arguments that it definitely didn't have (pluginDumpID, browserDumpID). Now
we call submitCrashReport with a runID, as expected.
This patch does the following:
* Has the gPluginHandler tell content processes when a NPAPI plugin crashes
* Introduces PluginCrashReporter, and renames TabCrashReporter.jsm to ContentCrashReporters.jsm.
* Makes gPluginHandler use PluginCrashReporter to submit plugin crashes.
* If a plugin crash report is submitted, puts all visible instances into the submitted state.
* Makes the plugin crashed notification bar work with run IDs.
* Removes event and message listeners in PluginContent when uninitting.
This patch does the following:
* Has the gPluginHandler tell content processes when a NPAPI plugin crashes
* Introduces PluginCrashReporter, and renames TabCrashReporter.jsm to ContentCrashReporters.jsm.
* Makes gPluginHandler use PluginCrashReporter to submit plugin crashes.
* If a plugin crash report is submitted, puts all visible instances into the submitted state.
* Makes the plugin crashed notification bar work with run IDs.
* Removes event and message listeners in PluginContent when uninitting.