This is the last part of this seris of patches to implement geometry property.
This particular patch just run `./mach devtools-css-db` to update db per instruction
at the beginning of devtools/shared/tests/unit/test_css-properties-db.js, and also a manual addition to the animation property db.
After this patch, the SVG geometry propery is implemented for <rect>, <circle>,
<ellipse> and <foreignObject>. We already implemented outer <svg>. Thus the
remainings are inner <svg> and <image>, which are kind of different to the
others, so they will be handled in some follow-ups. Note that these patches won't
impact old behavior of inner <svg> and <image>.
Differential Revision: https://phabricator.services.mozilla.com/D30808
--HG--
extra : moz-landing-system : lando
Note that the "loose | normal | strict" values are not yet parsed/implemented.
Differential Revision: https://phabricator.services.mozilla.com/D29817
--HG--
extra : moz-landing-system : lando
Before sending back the stacktrace, we remove all the
devtools internal frames using removeFramesAboveDebuggerEval.
A test (that was failing without the fix) is added to ensure
this works as expected.
The test revealed some issues in webconsole-connection-proxy
(mostly trying to access webConsoleUI while closing the toolbox),
which we fix in the patch as well.
Differential Revision: https://phabricator.services.mozilla.com/D31249
--HG--
extra : moz-landing-system : lando
This preference is used both by the client and the server and cannot be stored in devtools/client
Also added default fallback values.
Differential Revision: https://phabricator.services.mozilla.com/D31404
--HG--
extra : moz-landing-system : lando
This is the last part of this seris of patches to implement geometry property.
This particular patch just run `./mach devtools-css-db` to update db per instruction
at the beginning of devtools/shared/tests/unit/test_css-properties-db.js, and also a manual addition to the animation property db.
After this patch, the SVG geometry propery is implemented for <rect>, <circle>,
<ellipse> and <foreignObject>. We already implemented outer <svg>. Thus the
remainings are inner <svg> and <image>, which are kind of different to the
others, so they will be handled in some follow-ups. Note that these patches won't
impact old behavior of inner <svg> and <image>.
Differential Revision: https://phabricator.services.mozilla.com/D30808
--HG--
extra : moz-landing-system : lando
We now have stacktrace for expressions evaluated in the console
that throws, and we are stripping any frames that are devtools
internals.
But the way we were doing this meant that we were only having
one `debugger eval code` frame, even if the expression in the console
had multiple frames.
Also, if an expression was throwing without having any `debugger eval
code` frame (e.g. expression with SyntaxError), we were sending internal
frames.
This patch should fix those 2 cases and a linux 64 ccov intermittent
caused by a different line number for an internal frame in a fixture
packet.
Tests cases are added to the existing mochitest to ensure this
works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D30934
--HG--
extra : moz-landing-system : lando
Rather straighforward -- as per jryans recommendation, I have renamed the file to reflect
our naming conventions.
Differential Revision: https://phabricator.services.mozilla.com/D28641
--HG--
rename : devtools/shared/specs/script.js => devtools/shared/specs/thread.js
extra : moz-landing-system : lando
### Changes
Probably the most important change apart from the tooltips is that we now only support one property at a time. This allows us to short circuit at the first invalid property and improve performance. This was previously agreed with Razvan but there were some relics left in the code.
`toolbox.xul`
- Added tooltips.ftl
`devtools/client/inspector/markup/test/helper_events_test_runner.js`:
- Had to change to synthesizeMouseAtCenter because CSS changes caused the original to fail.
`devtools/client/inspector/rules/rules.js`:
- Added `VIEW_NODE_INACTIVE_CSS` to node types and sorted alphabetically.
- Added new nodeInfo data for Inactive CSS icons.
`devtools/client/inspector/rules/test/browser_rules_inactive_css_flexbox.js` &
`devtools/client/inspector/rules/test/browser_rules_inactive_css_grid.js`:
- removed some listeners that are no longer needed
`devtools/client/inspector/rules/test/head.js`:
- Refactored `getPropertiesForRuleIndex()` in order to pass along information needed for testing our Fluent strings.
- Refactored `checkDeclarationIsInactive()` to check tooltip contnts using a new method.
- Added `checkInteractiveTooltip()` for checking the tooltip contents themselves.
- Simple changes to `runInactiveCSSTests()`.
`devtools/client/inspector/rules/views/text-property-editor.js`:
- We no longer create the tooltip by adding the title attribute.
`devtools/client/inspector/shared/node-types.js`:
- Changed the enum to use strings to simplify debugging.
- Added `VIEW_NODE_INACTIVE_CSS`.
- Sorted alphabetically.
`devtools/client/inspector/shared/tooltips-overlay.js`:
- Introduced a new tooltip type called `interactiveTooltip`.
`devtools/client/locales/en-US/inspector.properties`:
- Removed strings.
`devtools/client/locales/en-US/tooltips.ftl`:
- Added structured versions of the properties from `inspector.properties`.
`devtools/client/shared/widgets/tooltip/HTMLTooltip.js`:
- Made the tooltips obey the "prevent popup autohide" option in the browser debugger.
`devtools/client/shared/widgets/tooltip/InactiveCSSTooltipHelper.js`:
- Main file for handling InactiveCSS Tooltips.
`devtools/client/themes/tooltips.css`:
- Made arrow tooltips follow the Proton theme.
`devtools/server/actors/utils/inactive-property-helper.js`:
- General changes to support Fluent.
- Bail on first inactive property found.
### Latest Try (expecting green)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=de28939206d444dc4b534a3e5cc7a84b8797bec3
Differential Revision: https://phabricator.services.mozilla.com/D29372
--HG--
extra : moz-landing-system : lando
### Summary of Changes
1. Added `element-style.js::refreshUnusedCssAll()`:
- This method refreshes the CSS declarations for every property change and then calls `element-style.js::_updatePropertyUsed()` for each pseudo element.
2. Added `element-style.js::_updatePropertyUsed()`:
- This method simply updates the unused CSS HTML for each property that needs it.
3. Added `alerticon-unused.svg`.
4. A tiny bit of tidying in `devtools/client/themes/rules.css`:
- Added blank lines before comments.
- Changed `0px` to `0`;
- Merged both the `#ruleview-class-panel .classes` rules.
- Added used and unused CSS styles.
- Hooked `InactivePropertyHelper` into `devtools/server/actors/styles.js`
5. `devtools/server/actors/utils/inactive-property-helper.js` contains the actual unused CSS engine.
6. This feature exposed a race condition inside `head.js::assertShowPreviewTooltip()`. It was mousing over an element and sometimes the tooltip emitted "shown" before we added the listener. This is now fixed.
### Try
https://treeherder.mozilla.org/#/jobs?repo=try&revision=016f8dc8e05dbaa89bc5a79b822ce23e786d3fc1
Differential Revision: https://phabricator.services.mozilla.com/D26879
--HG--
extra : moz-landing-system : lando
The prior code calls '.cleanup()', but ActorPools have no 'cleanup' method. I
think it means to call 'destroy'.
Differential Revision: https://phabricator.services.mozilla.com/D29755
--HG--
extra : moz-landing-system : lando
This patch builds on [Bug 1537876](https://bugzilla.mozilla.org/show_bug.cgi?id=1537876) which associates CSS selectors with error messages where applicable.
This patch introduces a new React component, `CSSWarning`, for messages of type CSS. It forks the`PageError` component which was shared for `LOG` messages of type `JAVASCRIPT` and type `CSS`.
The `CSSWarning` component is expandable when the message has an associated CSS selector. When expanded, it runs a `document.querySelectorAll()` command to list all elements matching the selector. Clicking on any of the elements in the result jumps to the Inspector and select the corresponding node in the markup view.
Not all errors have associated CSS selectors. Not all selectors match elements. The errors/warnings are a result of the CSS Parser; there is no guarantee that the CSS rule is used anywhere on the document. The query may return an empty `NodeList`.
Differential Revision: https://phabricator.services.mozilla.com/D28457
--HG--
extra : moz-landing-system : lando
Finally! the goal of all of this: removing three functions from threadClient that really belong as part of source client. PauseLongString is never used except in tests. ThreadLongString is only ever used by sourceClient. Same goes for the arrayBuffer method. This clears all of that out.
Differential Revision: https://phabricator.services.mozilla.com/D21715
--HG--
extra : moz-landing-system : lando
This introduces an ArrayBuffer front, so that we no longer need to go through the thread client to get an array buffer for the sourceFront (this is the only place it is used).
It also converts the arrayBufferActor to a protocol.js actor. I was running into an issue between them. I need to double check what this issue was. If these two refactors need to be split, I can do that, but for now it looks like it wasn’t that large of a change.
Differential Revision: https://phabricator.services.mozilla.com/D27878
--HG--
rename : devtools/shared/client/array-buffer-client.js => devtools/shared/fronts/array-buffer.js
extra : moz-landing-system : lando
### Summary of Changes
1. Added `element-style.js::refreshUnusedCssAll()`:
- This method refreshes the CSS declarations for every property change and then calls `element-style.js::_updatePropertyUsed()` for each pseudo element.
2. Added `element-style.js::_updatePropertyUsed()`:
- This method simply updates the unused CSS HTML for each property that needs it.
3. Added `alerticon-unused.svg`.
4. A tiny bit of tidying in `devtools/client/themes/rules.css`:
- Added blank lines before comments.
- Changed `0px` to `0`;
- Merged both the `#ruleview-class-panel .classes` rules.
- Added used and unused CSS styles.
- Hooked `InactivePropertyHelper` into `devtools/server/actors/styles.js`
5. `devtools/server/actors/utils/inactive-property-helper.js` contains the actual unused CSS engine.
6. This feature exposed a race condition inside `head.js::assertShowPreviewTooltip()`. It was mousing over an element and sometimes the tooltip emitted "shown" before we added the listener. This is now fixed.
### Try
https://treeherder.mozilla.org/#/jobs?repo=try&revision=016f8dc8e05dbaa89bc5a79b822ce23e786d3fc1
Differential Revision: https://phabricator.services.mozilla.com/D26879
--HG--
extra : moz-landing-system : lando