Previously, we were simply having a flag on the ContentProcessConnector
that we would flip once we loaded the content process server startup script.
This was working fine until multi-proxy browser console.
Each time we open the Browser Console, we create a new loader in a new
compartment. Which means in the end we'll have a new ContentProcessConnector
instance, and the flag would be resetted, and thus we would load a new
content process server startup script, which finally, would emit some
packet twice, and thus would break how we manage new packet in the client.
This patch fixes that by replacing the flag by checking if the script
was already loaded.
Differential Revision: https://phabricator.services.mozilla.com/D43618
--HG--
extra : moz-landing-system : lando
This is an alternative implementation to D41996.
The main difference is that it's now a "push" approach whereby changes to one CSS rule will refresh the CSS declarations of all rules matching the element (inferred to be list of rules returned by the latest call to `PageStyleActor.getApplied()`).
If any declaration's used state has changed, an event called "declarations-changed" is triggered by the `StyleRuleActor` for that rule with all the declarations and their updated state. On the client, consumers go through the declarations with changed `isUsed` flags and update the UI accordingly.
Some optimizations done:
- do not check declarations that don't have validators for Inactive CSS conditions
- trigger the `"declarations-changed"` event only for rules which have declarations that have actually changed their `isUsed` flag
TODO [Bug 1574471](https://bugzilla.mozilla.org/show_bug.cgi?id=1574471): we should rename `declaration.isUsed` or make it a boolean and tack the other metadata (`fixId`, `msgId`, etc) onto another exposed object on the declaration. It's confusing to have it return an object given its name.
Differential Revision: https://phabricator.services.mozilla.com/D42135
--HG--
extra : moz-landing-system : lando
The `MockSecurityInfo` instances in the patched devtools tests are not actually
being used as `nsITransportSecurityInfo` instances; while `QueryInterface`
methods were generated for the them, these were never called. Additionally, the
methods they are being passed to are not XPCOM-defined and therefore do not
strictly require `nsITransportSecurityInfo`.
In addition `NetworkHelper#parseSecurityInfo` now requires its `securityInfo`
to be `QueryInterface`d to a `nsITransportSecurityInfo` before calling the
function (except in the case of `MockSecurityInfo`, which is structurally
similar).
Differential Revision: https://phabricator.services.mozilla.com/D40521
--HG--
extra : moz-landing-system : lando
The patch for [Bug 1559796](https://bugzilla.mozilla.org/show_bug.cgi?id=1559796) has changed the computed value for the default `circle()` basic shape (no coordinates). It now reflects the approach used with default `ellipse()` basic shape (no coordinates), thus addressing the issue with inconsistency raised in Bug 1521508.
The change means the Shape Path Editor's parsing of `circle()` and `ellipse()` need to account for the missing "closest-side" default radius. This patch addresses this need and introduces a test to check whether the Shape Path Editor successfully triggers for basic shapes with default values.
Differential Revision: https://phabricator.services.mozilla.com/D42639
--HG--
extra : moz-landing-system : lando
When the console parent actor is a ContentProcessTargetActor, we don't have
a reference to a `nsIDOMWindow`, but only to a Sandbox.
The code in `hasNativeConsoleAPI` would then silently fail when trying to
access `window.wrappedJSObject`, and keep `isNative` as `false`.
For now, we work around this by always returning true if we don't have
access to a `nsIDOMWindow`.
Differential Revision: https://phabricator.services.mozilla.com/D42506
--HG--
extra : moz-landing-system : lando
* Add a new extensionStorage actor to enable inspection of data stored by an extension using the WebExtension storage.local API in the Storage panel client.
* The actor is only listed when the developer toolbox is targeting an extension process. For multi-process Firefox (e10s), this applies to only the toolbox accessed in about:debugging.
* The actor is gated behind a preference: devtools.storage.extensionStorage.enabled. This preference is set to false by default.
* The Storage panel displays storage item values as strings. If a storage item value is not JSON-stringifiable, it will be displayed in the table as "Object".
* It should be noted that extension storage.local’s storage backend is in the process of migrating from a JSON file to IndexedDB as of Firefox 66 for performance reasons. This actor only works for extensions that have migrated to the IndexedDB storage backend.
* In-line comments referencing Bugs 1542038 and 1542039 indicate places where the implementation may differ for local storage versus the other storage areas in the actor.
Differential Revision: https://phabricator.services.mozilla.com/D34415
--HG--
extra : moz-landing-system : lando
The `MockSecurityInfo` instances in the patched devtools tests are not actually
being used as `nsITransportSecurityInfo` instances; while `QueryInterface`
methods were generated for the them, these were never called. Additionally, the
methods they are being passed to are not XPCOM-defined and therefore do not
strictly require `nsITransportSecurityInfo`.
In addition `NetworkHelper#parseSecurityInfo` now requires its `securityInfo`
to be `QueryInterface`d to a `nsITransportSecurityInfo` before calling the
function (except in the case of `MockSecurityInfo`, which is structurally
similar).
Differential Revision: https://phabricator.services.mozilla.com/D40521
--HG--
extra : moz-landing-system : lando