Depends on D85599
The WalkerActor is currently responsible for watching navigations and exposes them to the client.
However, this is communicated to the client differently depending on what kind of frame navigates.
If the top frame of the target navigates, this will be exposed via the watchRootNode API (onDestroyed/onAvailable callbacks will be triggered)
If an inner frame navigates, mutations will be emitted: "frameLoad"/"documentUnload" + a fake "childList" mutation.
On the client side, we have to handle both very similarly which leads to some duplication.
Also "frameLoad"/"documentUnload" are one of the last "immediateMutations" which usually means they should not have been mutations in the first place.
The goal here is to use the watchRootNode API for all frames.
Differential Revision: https://phabricator.services.mozilla.com/D84973
Depends on D85598
This test relies on mutations which are no longer emitted for most navigations and which will no longer be emitted at all with the next patches.
It has been disabled for 9 months and should be removed.
Differential Revision: https://phabricator.services.mozilla.com/D85599
Depends on D85597
newRoot mutations are no longer emitted by any server we support, we can remove the corresponding client code.
Differential Revision: https://phabricator.services.mozilla.com/D85598
_ref is renamed to _getOrCreateNodeActor to better reflect the purpose of the method.
_refMap is renamed to _nodeActorsMap
The test helper inspector-helpers was also directly querying _refMap.
This has been replaced by a call to the public API getNode.
Differential Revision: https://phabricator.services.mozilla.com/D84972
The backwards compatibility checks existed to support devtools
backend for version older than FF79. Now that FF79 has hit the
release channel, these tests for older backend can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D86142
The CSS Compatibility Tooltip tests cover the following cases:
* Check if the contents of the tooltip match the rendered template
* Check compatible rules aren't falsely marked incompatible
* Check incompatible rules are marked correct with icon appearing next to it
* Check toggling rule disable hides the icon
* Check adding rules updates the compatibilility status
* Check the compatibility icon disappears if a fix is added
Differential Revision: https://phabricator.services.mozilla.com/D84218
Use CompatibilityActor to fetch the compatiblity information for
a particular CSS declaration and show a tooltip for the
incompatible CSS declaration that may cause issue on platform
Differential Revision: https://phabricator.services.mozilla.com/D81474
Previously CompatibilityActor could only compute the compatiblity
issues taking node actor. However with the implementation of
inline compatibility warning, it becomes necessary to compute
compatiblity issue from the CSS declaration block. This patch
exposes a getCssDeclarationBlockIssues and add browser dataset
fetch within the actor for inline warnings.
Differential Revision: https://phabricator.services.mozilla.com/D81472
Not having the window property anymore, we have to change the `window` getter
in WebConsoleActor to retrieve `workerGlobal`. And since the getter name wasn't
reflecting what it was holding (it can be a window, a worker global or a sandbox),
we rename it to `global` (and `evalWindow` to `evalGlobal`).
We remove the `globalDebugObject` getter on the thread actor that wasn't used
anywhere in the code.
Differential Revision: https://phabricator.services.mozilla.com/D86035
The `watchResources` function [1] takes as a first parameter either a watcher
actor or a target actor, that is used to manage the created resources (e.g. the
object actors of console messages). In order to be able to manage actors, it
needs to extend the `Pool` class (which is the case for Actor).
In the worker cases, things are a bit different, since we create a DevToolServer
which only have a WebConsole and a Thread actor. Those actors usually take a target
actor as a parent, but in the Worker thread we simply have an object implementing
the properties and methods it needs.
This will be this target actor mock that we're going to pass to `watchResources`,
and in order to be able to do that, it needs to be able to manage actors.
In regard of all this, this patch makes the target actor mock an actual Actor,
witout spec, on which we then put the existing methods and properties.
[1] https://searchfox.org/mozilla-central/rev/0e309417bdc73be33fc93f6bd7a0d4063d2c6e51/devtools/server/actors/resources/index.js#66
Differential Revision: https://phabricator.services.mozilla.com/D85814
The existing browser_target_list_workers.js is split in two tests, one for testing
browser workers (i.e. Browser Toolbox case), and another one for testing workers
in a tab.
Numerous test cases are added to check behaviour of the targetList when workers:
- already exists
- are spawned
- are terminated
in the main document or in remote iframe.
The test is tagged as fail-if when fission is enabled since we don't get the
workers for remote iframes.
Differential Revision: https://phabricator.services.mozilla.com/D85813
fission_document.html's iframe was on example.com while the top document
is always on example.com as well, so we weren't exercising fission in it.
This patch puts the iframe on example.org, which highlighted some TargetList
test failures that this patch addresses.
Differential Revision: https://phabricator.services.mozilla.com/D85812
Makes `addException` more reusable in the form that can be used with exceptions objects that have different properties than a `resource` object from the `resourceWatcher`.
Fixes a typo in `Exception.js`.
Fixes incorrectly set property `sourceId` in `addEditorExceptionLine()` in `Exception.js`.
Differential Revision: https://phabricator.services.mozilla.com/D78883
The Fenix package name is now org.mozilla.firefox and not org.mozilla.fenix.
We need to update the logic in ADB to accommodate for this change.
Differential Revision: https://phabricator.services.mozilla.com/D85396
Before this change whenever the directory root header extends to the edge of the Primary pane a `flex-wrap` CSS rule in the `.sources-clear-root` selector breaks the directory root header text on to multiple lines. This patch removes this rule and fixes this bug.
{F2380491}
Differential Revision: https://phabricator.services.mozilla.com/D85400
Using allowMatchingRejectionsGlobally in a test will leak to all the tests running after it in the same suite. We should avoid using it as much as possible.
Differential Revision: https://phabricator.services.mozilla.com/D84963
This patch is borrowing a change that's coming with D85239 to fix the issue that the Changes panel shows as empty when it should show changes tracked in the background (before the Changes panel is opened).
The reason, as identified in D85239, is that the Changes panel reacts to `DOCUMENT_EVENT` resources which are cached in the resource watcher. The Changes panel thinks that the document is reloading so it clears all the changes that were collected. The result in an empty Changes panel.
The screenshot below shows the resource types and the order in which they arrive:
{F2382929}
Differential Revision: https://phabricator.services.mozilla.com/D85603
* removing simulations for protanomaly, deuteranomaly and tritanomaly
* updating (fixing) the color matrices for protanopia, deuteranopia and tritanopia
* adding a matrix to simulate achromatopsia
Co-authored-by: Matthew Petroff <mozilla@mpetroff.net>
Differential Revision: https://phabricator.services.mozilla.com/D85508
CLOSED TREE
We don't need these macros anymore, for two reasons:
1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
and friends.
2. clang now warns for the "temporary that should have been a declaration" case.
The extra requirements on class construction also show up during debug tests
as performance problems.
This change was automated by using the following sed script:
```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d
# Remove individual macros, carefully.
{
# We don't have to worry about substrings here because the closing
# parenthesis "anchors" the match.
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;
# Remove the longer identifier first.
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}
# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```
and running:
```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```
Differential Revision: https://phabricator.services.mozilla.com/D85168
This test is highly intermittent locally, and it seems to be spiking on try since bug 1633727.
The issue is that we try to click on the "flex" badge too quickly after selecting the node, before the flexbox store has had time to update.
Differential Revision: https://phabricator.services.mozilla.com/D85403
We don't need these macros anymore, for two reasons:
1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
and friends.
2. clang now warns for the "temporary that should have been a declaration" case.
The extra requirements on class construction also show up during debug tests
as performance problems.
This change was automated by using the following sed script:
```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d
# Remove individual macros, carefully.
{
# We don't have to worry about substrings here because the closing
# parenthesis "anchors" the match.
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;
# Remove the longer identifier first.
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}
# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```
and running:
```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```
Differential Revision: https://phabricator.services.mozilla.com/D85168
It seems that the test was failing because the focus wasn't on the console by
the time we were trying to evaluate the input, so the Enter keypress wasn't
registered and the input not evaluated.
This is fixed by focusing the console input in `keyboardExecuteAndWaitForMessage`,
before hitting Enter.
Differential Revision: https://phabricator.services.mozilla.com/D85368
Netlify recently moved from netlify.com to netlify.app for their
deployed URLs. Netlify.com deploy URLs are redirected to netlify.app.
(Netlify.com is still used for their main websites).
Differential Revision: https://phabricator.services.mozilla.com/D85304
Before this Work In Progress patch, the text that was displayed next to the home icon after a user sets directory root was generated using `state.sources.projectDirectoryRoot`. This was done in an attempt to reverse engineer the text that was displayed for the corresponding item in the Sources UI. This patch removes the logic that was responsible for this. Instead, it ensures that the text next to the home icon matches the text that was displayed in the Sources UI by using the existing event handler to pass the text that is displayed in the Sources UI to the Redux store whenever a user sets directory root. The text is then passed back down to the Primary Panes UI where it is displayed as the header after a user sets directory root.
The test suites in `PrimaryPanes.spec.js` and `setProjectDirectoryRoot.spec.js` will be updated before a final patch for this issue is submitted.
{F2352986}
Differential Revision: https://phabricator.services.mozilla.com/D83839