This implements the context menu items for the DOM mutation breakpoint.
In addition, there were some server changes to:
- Update the mutationBreakpoints form for the NodeActor
- Expose the mutationBreakpoints form
- Moved the setMutationBreakpoints method from the Node spec to Walker spec
since the Node spec only consisted of getter methods. It made more sense
that the setter went into the Walker spec to be more consistent with how
the Walker and Node spec have been arranged.
Unit tests will be followed up in Part 2 immediately.
Differential Revision: https://phabricator.services.mozilla.com/D36074
PowerOfTwo makes for a cleaner and more expressive interface, showing that the
profiler will use a power-of-2 storage size.
Using PowerOfTwoMask in ProfilerBuffer also makes it more obvious that we want
cheap modulo operations.
And we don't need to keep the original capacity, as it's only used once and can
easily be recomputed from the mask.
Differential Revision: https://phabricator.services.mozilla.com/D36027
--HG--
extra : moz-landing-system : lando
We take this as an opportunity to clean-up the function that
waits for the evaluation result.
This change was causing an issue in main.js `_queueResponse`.
Previously, since `evaluateJsAsync` wasn't returning anything,
`_queueResponse` wouldn't be called (See https://searchfox.org/mozilla-central/rev/928742d3ea30e0eb4a8622d260041564d81a8468/devtools/server/main.js#1305-1308).
But now `ret` isn't falsy (the async function always return a
Promise), which means we ended up trying to send a response.
To fix this, we simply check if the response isn't falsy, or we
bail out.
Differential Revision: https://phabricator.services.mozilla.com/D35985
--HG--
extra : moz-landing-system : lando
Showing moz-extension URLs in the debugger is not helpful -- we should display the name of the extension instead.
Differential Revision: https://phabricator.services.mozilla.com/D34427
--HG--
extra : moz-landing-system : lando
This was a difficult situation. We are not waiting for a server response when setting or
removing breakpoints. The result is that the server has not completed those actions by the time the
test closed, leaving setBreakpoint or removeBreakpoint requests hanging, causing a number of tests
to fail. In order to get around this, I made the panel action "SET_BREAKPOINT" and
"REMOVE_BREAKPOINT" aware of the server response. This involved rewriting the helper methods
`clientSetBreakpoint` and `clientRemoveBreakpoint` so that they no longer relied on the dispatch.
It was not possible to use the dispatches to wait, as they had no event exposed to the tests,
especially in cases when we triggered these requests via button presses.
Differential Revision: https://phabricator.services.mozilla.com/D32710
--HG--
extra : moz-landing-system : lando
The webConsoleFront and the threadClient front both used to depend on the debugger-client
to destroy them via registered clients. This is no longer the case, and this code can be deleted
Differential Revision: https://phabricator.services.mozilla.com/D32699
--HG--
extra : moz-landing-system : lando
In order for a front to be available to getFront on a given target, it must be first --
registered on the target scope, and second -- set on the target's targetForm. This makes that update
for both browsing context and worker targets. This works as part of a work around until we can get
the server into better shape.
Differential Revision: https://phabricator.services.mozilla.com/D32698
--HG--
extra : moz-landing-system : lando
The resume case is much more complex than the other events, because we do an
unsafeSynchronize to send an unsolicited pause. In the old system, the resume response would have
been ignored, but that is no longer the case. With the new system, we do not want to send a response
to a resume action if it did not come from the UI. This also update the debugger panel code to
accept a resume.
Differential Revision: https://phabricator.services.mozilla.com/D32697
--HG--
extra : moz-landing-system : lando
This is part one of removing threadClient specifics out of the debuggerClient. We were
managing messages from the thread client in a special way -- this was the "Unsolicited Pauses"
object that we had before. This patch updates the threadClient to use Front style events. This
required updating the spec for the threadClient, and several of the methods. What has not been fully
migrated here is the "resumed" event, as this is much more complex. This is taken care of in the
next patch.
Differential Revision: https://phabricator.services.mozilla.com/D32695
--HG--
extra : moz-landing-system : lando
This is the first part of the threadClient refactor. It only moves the methods to the new
front. and does some basic fixes.
Differential Revision: https://phabricator.services.mozilla.com/D32692
--HG--
extra : moz-landing-system : lando
We take this as an opportunity to add tests for `align-self` as well.
This requires the test to change a bit so we can create more than one
element in order to test the inactive property helper on grid/flex item
(i.e. with a parent flex/grid container).
This is done by providing a `createTestElement` function in the test case,
that creates whatever nodes it need and append it in the rootNode parameter.
The function then returns the element that needs to be tested with isPropertyUsed.
Differential Revision: https://phabricator.services.mozilla.com/D34714
--HG--
extra : moz-landing-system : lando
This was a difficult situation. We are not waiting for a server response when setting or
removing breakpoints. The result is that the server has not completed those actions by the time the
test closed, leaving setBreakpoint or removeBreakpoint requests hanging, causing a number of tests
to fail. In order to get around this, I made the panel action "SET_BREAKPOINT" and
"REMOVE_BREAKPOINT" aware of the server response. This involved rewriting the helper methods
`clientSetBreakpoint` and `clientRemoveBreakpoint` so that they no longer relied on the dispatch.
It was not possible to use the dispatches to wait, as they had no event exposed to the tests,
especially in cases when we triggered these requests via button presses.
Differential Revision: https://phabricator.services.mozilla.com/D32710
--HG--
extra : moz-landing-system : lando
The webConsoleFront and the threadClient front both used to depend on the debugger-client
to destroy them via registered clients. This is no longer the case, and this code can be deleted
Differential Revision: https://phabricator.services.mozilla.com/D32699
--HG--
extra : moz-landing-system : lando
In order for a front to be available to getFront on a given target, it must be first --
registered on the target scope, and second -- set on the target's targetForm. This makes that update
for both browsing context and worker targets. This works as part of a work around until we can get
the server into better shape.
Differential Revision: https://phabricator.services.mozilla.com/D32698
--HG--
extra : moz-landing-system : lando
The resume case is much more complex than the other events, because we do an
unsafeSynchronize to send an unsolicited pause. In the old system, the resume response would have
been ignored, but that is no longer the case. With the new system, we do not want to send a response
to a resume action if it did not come from the UI. This also update the debugger panel code to
accept a resume.
Differential Revision: https://phabricator.services.mozilla.com/D32697
--HG--
extra : moz-landing-system : lando
This is part one of removing threadClient specifics out of the debuggerClient. We were
managing messages from the thread client in a special way -- this was the "Unsolicited Pauses"
object that we had before. This patch updates the threadClient to use Front style events. This
required updating the spec for the threadClient, and several of the methods. What has not been fully
migrated here is the "resumed" event, as this is much more complex. This is taken care of in the
next patch.
Differential Revision: https://phabricator.services.mozilla.com/D32695
--HG--
extra : moz-landing-system : lando
This is the first part of the threadClient refactor. It only moves the methods to the new
front. and does some basic fixes.
Differential Revision: https://phabricator.services.mozilla.com/D32692
--HG--
extra : moz-landing-system : lando
We put some objects on the InactivePropertyHelper (node, rule),
but never reset those properties, which was causing leaks in some
inspector tests.
This patch adds a unselect function that clears all the references
added in the select function.
Differential Revision: https://phabricator.services.mozilla.com/D34844
--HG--
extra : moz-landing-system : lando
The inactive CSS feature is only enabled in Nightly at
the moment, which is what's causing the test to fail
on beta simulation.
Forcing the pref to true in the test should fix the issue.
Differential Revision: https://phabricator.services.mozilla.com/D34847
--HG--
extra : moz-landing-system : lando
There was an issue where this test was timing out, and due to the way it was written it was
very hard to identify where -- there were many nested promises. I rewrote the test in order to
identify the time out.
Differential Revision: https://phabricator.services.mozilla.com/D32714
--HG--
extra : moz-landing-system : lando
There were a few miscellaneous situations in which the test would fail due to a hanging
request. These tests passed in the past because the old way of using the threadActor did not
identify which requests had been responded to.
Differential Revision: https://phabricator.services.mozilla.com/D32711
--HG--
extra : moz-landing-system : lando
If logpoint throws, set `level` to "error".
Add tests to ensure the correct level is set.
Demo function: https://luxuriant-system.glitch.me/
Add some logpoints. The first two statements are invalid. The third one is valid.
{F1311386}
In console:
{F1311387}
Differential Revision: https://phabricator.services.mozilla.com/D31157
--HG--
extra : moz-landing-system : lando
This should make the test more managable as we add properties
validators in InactivePropertyHelper.
eslint doesn't support dynamic import yet, so we have to ignore
the test file.
Differential Revision: https://phabricator.services.mozilla.com/D34677
--HG--
rename : devtools/server/tests/mochitest/test_inspector-inactive-property-helper.html => devtools/server/tests/mochitest/inactive-property-helper/gap.js
rename : devtools/server/tests/mochitest/test_inspector-inactive-property-helper.html => devtools/server/tests/mochitest/inactive-property-helper/max-min-width-height.js
rename : devtools/server/tests/mochitest/test_inspector-inactive-property-helper.html => devtools/server/tests/mochitest/inactive-property-helper/vertical-align.js
extra : moz-landing-system : lando
Element.nodeName is usually all-caps, and we were testing lower cased version,
which brought erroneous results.
The test wasn't picking those errors because we were creating the element from
a XHTML document, where Element.nodeName keep the casing used for their creation.
The test is modified to deal with an HTML document instead.
After the test was modified, I could see it was failing, and was then able to
do the actual feature fix.
Differential Revision: https://phabricator.services.mozilla.com/D34149
--HG--
rename : devtools/server/tests/browser/browser_inspector-inactive-property-helper.js => devtools/server/tests/mochitest/test_inspector-inactive-property-helper.html
extra : moz-landing-system : lando
Indicate in the infobar highlighter if the element is of kind grid or flex, and if it is a container or an item.
Differential Revision: https://phabricator.services.mozilla.com/D29964
--HG--
extra : moz-landing-system : lando
This is done so the user has a choice what kind of audit to run or what kind of audit type to filter the accessibility tree by
Differential Revision: https://phabricator.services.mozilla.com/D33183
--HG--
extra : moz-landing-system : lando
This introduce a new form of invalid messages. Until now, all the
messages were like "X has no effect on this since it's not Y".
But in this case, the width/height properties applies to all but
a few cases, which means we can't really keep the same shape of
message (or it would be "since it's not A, B, C, D, ...).
So we're switching to a message that prints the display property
of the element ("X has no effect on this element since it has a
display of Y").
In order to do that, we need to pipe the element computed display
into the inactive tooltip.
Differential Revision: https://phabricator.services.mozilla.com/D32805
--HG--
extra : moz-landing-system : lando
support for from-font listed in the CSS spec will be implemented in a later bug
Differential Revision: https://phabricator.services.mozilla.com/D33233
--HG--
extra : moz-landing-system : lando
Depends on D32867
Reference the shared list of pseudo-elements throughout the codebase:
- markup view context menu + test
- Rule editor
- box model highlighter
- node actor
- new Rules view
Differential Revision: https://phabricator.services.mozilla.com/D32868
--HG--
extra : moz-landing-system : lando
- Removes the hardcoded references from `index.xhtml` and `rules.js` and uses a centralized list of pseudo-classes to generate the checkboxes for the supported pseudo-class locks at runtime.
- Streamlines the handling for pseudo-class locks state. Fixes Bug 1536676 as a side-effect.
- Updates tests.
Differential Revision: https://phabricator.services.mozilla.com/D32867
--HG--
extra : moz-landing-system : lando
Since isPropertyUsed takes an HTMLElement and its computed style, we
need to have access to the DOM, and can't use an xpcshell test.
Differential Revision: https://phabricator.services.mozilla.com/D33454
--HG--
extra : moz-landing-system : lando
r=jdescottes
turns out we were incorrectly passing the threadClient to the environmentClient while
instantiating in one of the tests. It worked before because the threadClient exposed the API surface
of the debugger-client.
Differential Revision: https://phabricator.services.mozilla.com/D32685
--HG--
extra : moz-landing-system : lando
Displays blocked requests in the Network monitor request listing, providing a reason for why the request was blocked based on response codes provided b nsILoadInfo.idl
Differential Revision: https://phabricator.services.mozilla.com/D31907
--HG--
extra : moz-landing-system : lando
And with some tidying some comments and removing stray #include "gfxPrefs.h"
Differential Revision: https://phabricator.services.mozilla.com/D31468
--HG--
extra : moz-landing-system : lando
And with some tidying some comments and removing stray #include "gfxPrefs.h"
Differential Revision: https://phabricator.services.mozilla.com/D31468
--HG--
extra : moz-landing-system : lando
This includes style system and layout update. I add 3 extra reftests
because the original tests use ray() function as the offset-path, but we
don't support it. It'd be better to add tests using a different type of
offset-path.
The spec issue about the serialization:
https://github.com/w3c/fxtf-drafts/issues/340
Differential Revision: https://phabricator.services.mozilla.com/D32212
--HG--
extra : moz-landing-system : lando
We want to go back to ESLint's default complexity level so that newly introduced code is checked for complexity.
At the same time, to make that work, we're excluding all of the more complex functions for now.
We should fix them: make them less complex, and remove the eslint-disable comment.
See bug 1553449 for more information about this.
Differential Revision: https://phabricator.services.mozilla.com/D32139
--HG--
extra : moz-landing-system : lando
We want to go back to ESLint's default complexity level so that newly introduced code is checked for complexity.
At the same time, to make that work, we're excluding all of the more complex functions for now.
We should fix them: make them less complex, and remove the eslint-disable comment.
See bug 1553449 for more information about this.
Differential Revision: https://phabricator.services.mozilla.com/D32139
--HG--
extra : moz-landing-system : lando
And with some tidying some comments and removing stray #include "gfxPrefs.h"
Differential Revision: https://phabricator.services.mozilla.com/D31468
--HG--
extra : moz-landing-system : lando
This patch gives the RDM UI the ability to update the screen orientation based on the orientation of the simulated device screen. It fixes the following issues:
- Initializing the orientation state of the selected device when RDM is opened.
- Updating orientation state when the rotate button in the RDM toolbar is pressed.
- Updating the orientation state when a new device is selected.
There are three actions creators that are responsible for notifying the ResponsiveUI manager, `changeDevice`, `restoreDeviceState`, and `rotateViewport`. In particular:
- `restoreDeviceState` is dispatched when the Responsive UI has finished initializing. If a previous RDM session had a device selected, then this action creator will also dispatch the `changeDevice` action to update the RDM UI to reflect the currently selected device.
- `changeDevice` is dispatched when a device is selected.
- `rotateViewport` is dispatched when the rotate button is clicked in the RDM toolbar.
When either of these actions is dispatched, we post a "viewport-orientation-change" message to the window that notifies the manager to update the screen orientation accordingly.
Finally, when RDM is closed, we need to ensure the original physical screen orientation is restored. We do this by calling the `setRDMPaneOrientation` on the docShell's document in the content frame script.
Differential Revision: https://phabricator.services.mozilla.com/D30440
--HG--
extra : moz-landing-system : lando
`isInherited` is a callback function that checks if a given CSS property is inherited. It is misleadingly commented as a cache of inherited properties (which perhaps it is on the InspectorUtils implementation, but on the consumer side it is just a function).
The actual call is done by InspectorUtils.isPropertyInherited. There is no need to pass the handler to CssLogic or to CssPropertyInfo since InspectorUtils is available in the same context as the definition of the consumers.
There is no other use case where a custom handler is passed to check for inherited properties in so it is safe to remove this as an argument and just use InspectorUtils.isPropertyInherited where needed. This cleans up the code slightly.
Differential Revision: https://phabricator.services.mozilla.com/D32016
--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 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
Add a max width on infobar when inspecting elements.
The intent is to prevent very long infobars due to autogenerated classes or id.
Differential Revision: https://phabricator.services.mozilla.com/D28276
--HG--
extra : moz-landing-system : lando
Depends on D28629
Follows exactly the same pattern as showSystemAddons. Enabled by default for local builds, disabled otherwise.
Differential Revision: https://phabricator.services.mozilla.com/D28630
--HG--
extra : moz-landing-system : lando
The server should not be driven by a client-side performance about which perf panel is enabled.
To preserve the behavior, the performance connection will not be initiated by the toolbox if the new perf panel is enabled.
Differential Revision: https://phabricator.services.mozilla.com/D28042
--HG--
extra : moz-landing-system : lando
After toggling off 'Pause on exceptions' in the debugger, exceptions were still being paused on once.
This was because the server's exception-pausing behavior was not toggled off until an exception was paused on. This patch makes it so that the behavior is changed immediately after unchecking the 'Pause on exceptions' checkbox in the debugger.
Differential Revision: https://phabricator.services.mozilla.com/D27453
--HG--
extra : moz-landing-system : lando
Truncate the Request Payload if it exceeds the `devtools.netmonitor.requestBodyLimit` pref and show `Request has been truncated` error in the Params Tab
Differential Revision: https://phabricator.services.mozilla.com/D27898
--HG--
extra : moz-landing-system : lando
BrowserTabList._actorByBrowser still contains opened tab we attached
to when destroying the RootActor. This prevents correctly unregistering
the DOM listener set on browser.xul, leading to permanent leaks.
Differential Revision: https://phabricator.services.mozilla.com/D26110
--HG--
extra : moz-landing-system : lando
Introduces tracking for newly created CSS rules in the PageStyleActor.
Adds a boolean flag, `isNew`, to the tracked rule in the Changes Redux store. Using this flag, render the new rule's selector in the React component as added (plus sign, green background). Ensure selector changes for thew new rule always overwrite the original selector (fix for Bug 1542288) instead of erroneously showing the original selector as removed.
Removes obsolete documentation for "changeType" from the tracked rule in the Changes Redux store. This was never used.
Differential Revision: https://phabricator.services.mozilla.com/D28215
--HG--
extra : moz-landing-system : lando
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.
Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.
Differential Revision: https://phabricator.services.mozilla.com/D28132
--HG--
rename : dom/interfaces/base/nsITabParent.idl => dom/interfaces/base/nsIRemoteTab.idl
extra : rebase_source : 9d8a1790a7bb10195ad063644d1a93d63b2afb72
After toggling off 'Pause on exceptions' in the debugger, exceptions were still being paused on once.
This was because the server's exception-pausing behavior was not toggled off until an exception was paused on. This patch makes it so that the behavior is changed immediately after unchecking the 'Pause on exceptions' checkbox in the debugger.
Differential Revision: https://phabricator.services.mozilla.com/D27453
--HG--
extra : moz-landing-system : lando
This is nearly the same the first patch for blocking, but adds the unblock
option as well.
Differential Revision: https://phabricator.services.mozilla.com/D26581
--HG--
extra : moz-landing-system : lando
This updates the request list to indicate a request was blocked by marking the
entire request item and also replaces transferred size column with "blocked by
DevTools". In the future, we may show other reasons for blocking in this way,
such as CORS, etc.
Differential Revision: https://phabricator.services.mozilla.com/D26580
--HG--
extra : moz-landing-system : lando
This is a very basic form of request blocking for the Network Monitor. It only
supports blocking a request via right-click. This change adds the minimal UI and
server support to block the request.
There is no UI to indicate what happened to the request yet, so it will just
look like a "confused" request that never started. Future patches will improve
from here.
Differential Revision: https://phabricator.services.mozilla.com/D26579
--HG--
extra : moz-landing-system : lando
The autocomplete popup in the web console now favours matches
with the user input in alphabetical order with lowercase letters and
perfect matches brought to the top of the list.
e.g.
Typing 'document.styleSheets' brings up the result:
-styleSheets
-styleSheetSets
Differential Revision: https://phabricator.services.mozilla.com/D19330
--HG--
extra : moz-landing-system : lando
This property was already in console api message packet,
and this patch also adds it to pageError packets (retrieving
it from nsIScriptError.isFromChromeContext).
Stubs are updated to include the new property.
Differential Revision: https://phabricator.services.mozilla.com/D26336
--HG--
extra : moz-landing-system : lando
Depends on D27468
As suggested, some additonal tests that should be skipped on this platform.
A first batch of tests were disabled in Bug 1533184
Differential Revision: https://phabricator.services.mozilla.com/D27558
--HG--
extra : moz-landing-system : lando
This property was already in console api message packet,
and this patch also adds it to pageError packets (retrieving
it from nsIScriptError.isFromChromeContext).
Stubs are updated to include the new property.
Differential Revision: https://phabricator.services.mozilla.com/D26336
--HG--
extra : moz-landing-system : lando
As we convert more chrome documents away from XUL we end up running
through two different paths in this function. These are going to be
filtered out in later checks anyway, so this change removes the early return.
Differential Revision: https://phabricator.services.mozilla.com/D26574
--HG--
extra : moz-landing-system : lando
This has some fun wins
- colored prompt
- multiline textarea
- default value for log points
Differential Revision: https://phabricator.services.mozilla.com/D26585
--HG--
extra : moz-landing-system : lando
I changed DelegatedQueryInterface and CallMethod to be non-static
methods rather than taking an explicit |self| parameter.
There is already a method nsXPCWrappedJS::CallMethod() with the same
signature, but it is a shim, so I inlined it into the version in
XPCWrappedJSClass.cpp.
I also fixed up a few comments that mention nsXPCWrappedJSClass.
The new comments starting with "We now need to enter the realm" were
written by Boris, and are a little more explicit so they are easier to
understand.
I renamed DebugDump() to DebugDumpInterfaceInfo() to be more
informative.
Differential Revision: https://phabricator.services.mozilla.com/D26422
--HG--
extra : moz-landing-system : lando
I changed DelegatedQueryInterface and CallMethod to be non-static
methods rather than taking an explicit |self| parameter.
I did a tiny bit of cleanup in the nsIXPConnectJSObjectHolder case of
DelegatedQueryInterface().
There is already a method nsXPCWrappedJS::CallMethod() with the same
signature, but it is a shim, so I inlined it into the version in
XPCWrappedJSClass.cpp.
I also fixed up a few comments that mention nsXPCWrappedJSClass.
The new comments starting with "We now need to enter the realm" were
written by Boris, and are a little more explicit so they are easier to
understand.
I renamed DebugDump() to DebugDumpInterfaceInfo() to be more
informative.
Differential Revision: https://phabricator.services.mozilla.com/D26422
--HG--
extra : moz-landing-system : lando