This will modify the "dom.popup_allowed_events" preference to control whether events from
user actions are allowed to open pop-up windows or not. If set to `false` then pop-ups from
user actions will not be allowed and will result in a doorhanger being displayed informing
the user that a pop-up was blocked. If set to `true` then all of the default events
will be allowed to open pop-up windows.
MozReview-Commit-ID: 8UFziq23zug
The following tests were removed from the test manifest in https://hg.mozilla.org/mozilla-central/rev/9704283b0e3a and never added back:
toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js
toolkit/components/extensions/test/xpcshell/test_ext_extension_content_telemetry.js
toolkit/components/extensions/test/xpcshell/test_ext_storage_telemetry.js
A bunch of changes were needed to the telemetry tests to make them work in OOP mode as well.
MozReview-Commit-ID: LPOrGb8OxNL
The following tests were removed from the test manifest in https://hg.mozilla.org/mozilla-central/rev/9704283b0e3a and never added back:
toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js
toolkit/components/extensions/test/xpcshell/test_ext_extension_content_telemetry.js
toolkit/components/extensions/test/xpcshell/test_ext_storage_telemetry.js
A bunch of changes were needed to the telemetry tests to make them work in OOP mode as well.
MozReview-Commit-ID: LPOrGb8OxNL
MozReview-Commit-ID: KmpBdrLmVNK
Also added a hasSetting method to ExtensionSettingsStore to check whether a particular extension has a
setting stored for a particulay key.
This gives us performance wins in sevaral areas:
- Creating a structured clone blob of storage data directly from the source
compartment allows us to avoid X-ray and JSON serialization overhead when
storing new values.
- Storing the intermediate StructuredCloneBlob, rather than JSON values,
in-memory saves us additional JSON and structured clone overhead when
passing the values to listeners and API callers, and saves us a fair amount
of memory to boot.
- Serializing storage values before sending them over a message manager allows
us to deserialize them directly into an extension scope on the other side,
saving us a lot of additional structured clone overhead and intermediate
garbage generation.
- Using JSONFile.jsm for storage lets us consolidate multiple storage file
write operations, rather than performing a separate JSON serialization for
each individual storage write.
- Additionally, this paves the way for us to transition to IndexedDB as a
storage backend, with full support for arbitrary structured-clone-compatible
data structures.
MozReview-Commit-ID: JiRE7EFMYxn
This gives us performance wins in sevaral areas:
- Creating a structured clone blob of storage data directly from the source
compartment allows us to avoid X-ray and JSON serialization overhead when
storing new values.
- Storing the intermediate StructuredCloneBlob, rather than JSON values,
in-memory saves us additional JSON and structured clone overhead when
passing the values to listeners and API callers, and saves us a fair amount
of memory to boot.
- Serializing storage values before sending them over a message manager allows
us to deserialize them directly into an extension scope on the other side,
saving us a lot of additional structured clone overhead and intermediate
garbage generation.
- Using JSONFile.jsm for storage lets us consolidate multiple storage file
write operations, rather than performing a separate JSON serialization for
each individual storage write.
- Additionally, this paves the way for us to transition to IndexedDB as a
storage backend, with full support for arbitrary structured-clone-compatible
data structures.
MozReview-Commit-ID: JiRE7EFMYxn