Instead of setting MOZ_QUIET to hide the DOMWINDOW and DOCSHELL log messages, you
now must set a regular logging module to enable them. They are automatically enabled
on tests that rely on these messages are leak checking.
That module is DocShellAndDOMWindowLeak:3
One disadvantage of this change is that you cannot set MOZ_QUIET to hide these
messages when running those tests (primarily browser-chrome).
Differential Revision: https://phabricator.services.mozilla.com/D52413
--HG--
extra : moz-landing-system : lando
* Update the extensionStorage actor to enable some writing to extension storage.local through the Storage panel client.
* All values in the client are displayed as strings, so the actor must stringify them before sending them to the client and parse them when receiving changes from the client. For this reason, there is currently limited write support.
* Item values that are JSONifiable (numbers, strings, booleans, object literals, arrays and null) can be edited from the Storage panel.
* Object literals and arrays are only editable if their values are JSONifiable, with a maximum nested depth of 2 (e.g. an object with a nested object is editable, provided the nested object contains only primitive values). Object literals' keys must also be strings to be editable.
* Non-JSONifiable values cannot be edited, and will be represented by "{}" in most cases in the panel, though some non-JSONifiable values (undefined, Date, and BigInt) will be displayed as more readable strings.
* Some modifications are a little more complex, requiring an IndexedDB transaction. This will be handled in a separate patch.
* Item names cannot be edited from the Storage panel.
* New items cannot be added from the Storage panel.
* Any item can be removed.
* All items can be removed at once.
* 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.
* The parseItemValue method used in the client was moved to a shared directory, so that the actor could parse string values from the client in its editItem method.
Differential Revision: https://phabricator.services.mozilla.com/D34416
--HG--
rename : devtools/client/shared/vendor/JSON5_LICENSE => devtools/shared/storage/vendor/JSON5_LICENSE
rename : devtools/client/shared/vendor/JSON5_UPGRADING.md => devtools/shared/storage/vendor/JSON5_UPGRADING.md
rename : devtools/client/shared/vendor/json5.js => devtools/shared/storage/vendor/json5.js
rename : devtools/client/shared/vendor/stringvalidator/UPDATING.md => devtools/shared/storage/vendor/stringvalidator/UPDATING.md
rename : devtools/client/shared/vendor/stringvalidator/moz.build => devtools/shared/storage/vendor/stringvalidator/moz.build
rename : devtools/client/shared/vendor/stringvalidator/tests/unit/head_stringvalidator.js => devtools/shared/storage/vendor/stringvalidator/tests/unit/head_stringvalidator.js
rename : devtools/client/shared/vendor/stringvalidator/tests/unit/test_sanitizers.js => devtools/shared/storage/vendor/stringvalidator/tests/unit/test_sanitizers.js
rename : devtools/client/shared/vendor/stringvalidator/tests/unit/test_validators.js => devtools/shared/storage/vendor/stringvalidator/tests/unit/test_validators.js
rename : devtools/client/shared/vendor/stringvalidator/tests/unit/xpcshell.ini => devtools/shared/storage/vendor/stringvalidator/tests/unit/xpcshell.ini
rename : devtools/client/shared/vendor/stringvalidator/util/assert.js => devtools/shared/storage/vendor/stringvalidator/util/assert.js
rename : devtools/client/shared/vendor/stringvalidator/util/moz.build => devtools/shared/storage/vendor/stringvalidator/util/moz.build
rename : devtools/client/shared/vendor/stringvalidator/validator.js => devtools/shared/storage/vendor/stringvalidator/validator.js
extra : moz-landing-system : lando
Everything should be typed in the JS Docs. I added a bunch of TODOs for features
the could be added in the future, but weren't valuable for this initial
prototype. Unfortunately I couldn't get the @types folder working, and had to
co-locate the redux.d.ts next to the vender file. TypeScript was attempting
to parse the file, and was failing.
Differential Revision: https://phabricator.services.mozilla.com/D46042
--HG--
extra : moz-landing-system : lando
This is the only version of lodash that actually ships with Firefox.
We have some package.json files that also reference lodash but they are used for tests only.
Differential Revision: https://phabricator.services.mozilla.com/D39223
--HG--
extra : moz-landing-system : lando
Depends on D38620
json5 is a much bigger library than JSOL but it doesn't rely on any eval-like code.
It should provide similar features, and testing locally it seems to work as expected.
Differential Revision: https://phabricator.services.mozilla.com/D38515
--HG--
extra : moz-landing-system : lando
Depends on D38619
The new version of JSZip doesn't rely on any eval like code.
Differential Revision: https://phabricator.services.mozilla.com/D38517
--HG--
extra : moz-landing-system : lando
Depends on D38618
The template() helper seems not used in devtools so I removed it here.
If we could generate a bundle of lodash without this method from the start that would be great.
Differential Revision: https://phabricator.services.mozilla.com/D38516
--HG--
extra : moz-landing-system : lando
Depends on D38617
We should no longer use eval-like code in privileged modules
Differential Revision: https://phabricator.services.mozilla.com/D38513
--HG--
extra : moz-landing-system : lando
ChromeUtils.import still support a second argument as it used to do
when it was Components.utils.import. But this is deprecated and we should
instead always use the returned value.
Differential Revision: https://phabricator.services.mozilla.com/D37708
--HG--
extra : moz-landing-system : lando
I'm sorry this is just one commit, I should have split it :( I will submit tests in another patch.
- Vendored [react-router-dom](https://www.npmjs.com/package/react-router-dom) library.
- Removed `getSelectedPageComponent` from `App` component and changed it to use React Router's `Route` components.
- Made the sidebar links to point to proper URL's. Thanks to this we don't need a lot of code/props we were passing to these items to select the proper page.
Some considerations over the implementation:
- React Router's `Switch` is used to wrap our routes, to ensure only one is rendered. Right now is not strictly necessary, but I think it helps to clarify that the routes are _not_ nested.
- We need to pass a `key` prop to the `RuntimePage` rendered in the route, so when we change the actual runtime shown, the page gets updated.
- The action `selectPage` gets called on `componentWillMount`, so it doesn't change state while rendering.
- When we reload the page and a device runtime is selected, we redirect to "This Firefox" page.
(Click on this GIF to see navigation 👇)
{F1100903}
I'm sorry this has taken this long, it has been a bit of a headache 🙏
Differential Revision: https://phabricator.services.mozilla.com/D12147
--HG--
extra : moz-landing-system : lando
Ultimately fluent.js should not be vendored here, since fluent-react only
needs 2 methods from fluent.js.
Work is currently ongoing to extract those dependencies to separate packages,
once ready we will remove this vendored version of fluent.js.
MozReview-Commit-ID: E5uwsCHQ7tj
--HG--
extra : rebase_source : 549200589ee8f33a950cf28787ae170ee43229c1
Importing this object is unnecessary after the updates to the WebIDL console from Bug 1425574
and the follow-ups blocking Bug 1430810. There are still callers that access Console.jsm
to create custom ConsoleAPI objects, but those will be handled separately.
MozReview-Commit-ID: 9ojFxtkpPId
--HG--
extra : rebase_source : 971bf99f709b8d2afe300f3693665724f747aa5e
This is as simple as an upgrade can be. Everything still appears to work but we should ensure try is green before landing.
MozReview-Commit-ID: KjH6nnuK4EY
--HG--
rename : devtools/client/shared/vendor/REDUX_UPGRADING => devtools/client/shared/vendor/REDUX_UPGRADING.md
extra : rebase_source : 12c88e1cad10fc08fcfb2cb829f9969b83b37ca1
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b