This is done by getting the value of the `devtools.testing.enableServerWatcherSupport`
preference on the WatcherActor, and using its result to enable the traits or not.
On the browser_resources_* test that have both legacy and server listener, we
run the tests twice, without and with the pref to have some decent coverage.
Differential Revision: https://phabricator.services.mozilla.com/D79983
Previously, the list clone was completely replaced every time aria-activedescendant was set.
This caused screen readers to extraneously report this as a new list every time the user cursored to a different item, even if the items hadn't changed.
Differential Revision: https://phabricator.services.mozilla.com/D79941
This patch removes the browsingContextID getter in favor of creating a property
on the instance in the constructor.
The getter was an attempt to handle the fact that we can have multiple browsing
context over time, but it wasn't working that well, so we'll tackle that as
part of Bug 1625027.
Differential Revision: https://phabricator.services.mozilla.com/D80151
This is done by getting the value of the `devtools.testing.enableServerWatcherSupport`
preference on the WatcherActor, and using its result to enable the traits or not.
On the browser_resources_* test that have both legacy and server listener, we
run the tests twice, without and with the pref to have some decent coverage.
Differential Revision: https://phabricator.services.mozilla.com/D79983
No idea if that is the real reason why the Browser Toolbox failed opening.
It isn't clear how WorkerTarget detach is implied in toolbox opening?
Differential Revision: https://phabricator.services.mozilla.com/D79159
The issue was that we were having a ResizeObserver only on the console output
node. When the output only has a few node, its height is impacted when an
element is expanded.
We fix this by observing the output parent node, which contains both the input
and the output, which prevents the issue.
In editor mode though, we still need to observe only the output element, as
the editor is on the right side.
So when the console changes from editor mode to inline, or the other way around,
we change the observed element.
A test case is added to make sure the issue is fixed. Sadly, this also means
we have to remove a test case (typing a multiline expression in input mode
won't keep the output scroll to the bottom), but it's a tradeoff I'm willing
to make as the issue isn't as annoying as the one we're fixing here.
Differential Revision: https://phabricator.services.mozilla.com/D79961
We're converting to nscoord in some places unnecessarily, reducing the
precision of the computed value we return.
This makes some tests unnecessarily fail if we change the base of
nscoord.
Differential Revision: https://phabricator.services.mozilla.com/D79996
This patch adds title attributes on the different Reps, alongside with a new `shouldRenderTooltip` prop.
The props is only used from the ExpressionPanel in the debugger so far.
Tests are added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D72900
This patch does the following:
1. Adds a semantic document role to the computed styles pane. This causes screen readers to treat it as something they can use their reading commands on for better navigation and efficiency.
2. Gives the expansion twisties a button role and a label. I am reusing the labels introduced in an earlier patch.
3. Turns the name portion of each property into a heading so screen reader users can quickly skip between them, regardless of their expanded status or not.
4. Explicitly displays the status for each rule match with visually hidden text because screen readers do not pick up text from titles on simple span elements.
5. Adjusts the visually-hidden class to be more modern and less intrusive.
Differential Revision: https://phabricator.services.mozilla.com/D79673
In order to handle parentProcessTargetActor in the WatcherActor, we modify
TargetActorRegistry.getTargetActor to return the parent process target when
the passed browsing context id is null.
The comment explaining why we need to call getTargetActor in
WatcherActor#watchResources is modified to better summarize the situation.
We also take this as an opportunity to handle those targets in unwatchResources.
Differential Revision: https://phabricator.services.mozilla.com/D79424
Added browser test for CompatibilityActor to check consistency and
correctness.
Thse test include:
* Test for no issue
* Test for simple issue
* Test for invalid CSS rule
* Test for aliases
* Test for browser specific issues
* Test for multiple issues for same element
Differential Revision: https://phabricator.services.mozilla.com/D78956
This patch adds a `CompatibilityActor` that calls the MDNCompatibility
library from the devtool server.
This patch exposes `_declarations` from the `StyleRuleActor` and the
a new function `formDeclaration` responsible for populating the
declarations property.
As a check for correctness, the patch replaces the `pageStyle.getApplied`
call in the Compatibility Panel on the client with `compatibility.getNodeCssIssues`
fetching the array of compatibility issues directly and removing the
dependency on MDNCompatibility library for client side computation of
compatibility issues.
Differential Revision: https://phabricator.services.mozilla.com/D77060
In a nutshell, this rule says that if a push only modifies files under "/devtools" then
only run builds and tests that are tagged with "linux", "macosx" or "windows" and skip
all others (which is just "android").
Note it may still be possible to see Android builds and tests as not all tasks use
the 'skip-unless-schedules' optimization, but this should avoid most of them.
Differential Revision: https://phabricator.services.mozilla.com/D79470
While cleaning up and restructuring client-side code to manage highlighters, I discovered that FlexItemHighlighter is not implemented / landed ([Bug 1477614](https://bugzilla.mozilla.org/show_bug.cgi?id=1477614)).
To ease clean-up and review of incoming changes, I am removing this orphaned code. It will be available with this revision if we need to revert it later.
Differential Revision: https://phabricator.services.mozilla.com/D79517
This patch does the following:
1. Adds a semantic document role to the computed styles pane. This causes screen readers to treat it as something they can use their reading commands on for better navigation and efficiency.
2. Gives the expansion twisties a button role and a label. I am reusing the labels introduced in an earlier patch.
3. Turns the name portion of each property into a heading so screen reader users can quickly skip between them, regardless of their expanded status or not.
4. Explicitly displays the status for each rule match with visually hidden text because screen readers do not pick up text from titles on simple span elements.
Differential Revision: https://phabricator.services.mozilla.com/D79673
There's no good reason for the message to be duplicated, and it turns out that
this test was actually asserting a bug that occured with CSP violation messages
(see Bug 1645745).
We change the test so it only waits for a single message, which should fix the
intermittent on windows7 (the message wasn't "repeated" but duplicated).
Differential Revision: https://phabricator.services.mozilla.com/D79651
The 'asyncStack' flag on JS execution contexts is used as a general switch
to enable async stack capture across all locations in SpiderMonkey, but
this causes problems because it can at times be too much of a performance
burden to general and track all of these stacks.
Since the introduction of this option, we have only enabled it on Nightly
and DevEdition for non-mobile builds, which has left a lot of users unable
to take advantage of this data while debugging.
This patch enables async stack traces across all of Firefox, but introduces
a new pref to toggle the scope of the actual expensive part of async stacks,
which is _capturing_ them and keeping them alive in memory. The new pref
limits the capturing of async stack traces to only debuggees, unless an
explicit pref is flipped to capture async traces for all cases.
This means that while async stacks are technically enabled, and code could
manually capture a stack and pass it back to SpiderMonkey and see that stack
reflected in later captured stacks, SpiderMonkey itself and related async
DOM APIs, among others, will not capture stacks or pass them to SpiderMonkey,
so there should be no general change in performance by enabling the broader
feature itself, unless the user is actively debugging the page.
One effect of this patch is that if you have the debugger open and then close
it, objects that have async stacks associated with them will retain those
stacks and they will continue to show up in stack traces, no _new_ stacks
will be captured. jorendorff and I have decided that this is okay because
the expectation that the debugger fully revert every possible effect that it
could have on a page is a nice goal but not a strict requirement.
Differential Revision: https://phabricator.services.mozilla.com/D68503
This patch does the following:
1. Both the flex-direction and flex-wrap badges are being treated as illustrations, not generic containers, so screen readers immediately pick up the full meaning from the title.
2. Turns the flex item list sub heading into an actual heading for screen readers. It is level 3 because the accordeon headings are all level 2.
Differential Revision: https://phabricator.services.mozilla.com/D79129
It used to take an object with only 1 property, a function. The way it was
called in the webconsole actor made it harder to follow than it actually need.
We take that as an opportunity to convert the function to a class.
Differential Revision: https://phabricator.services.mozilla.com/D79294
It used to take an object with only 1 property, a function. The way it was
called in the webconsole actor made it harder to follow than it actually need.
We take that as an opportunity to convert the function to a class.
Differential Revision: https://phabricator.services.mozilla.com/D79252
It used to take an object with only 1 property, a function. The way it was
called in the webconsole actor made it harder to follow than it actually need.
We take that as an opportunity to convert the function to a class.
Differential Revision: https://phabricator.services.mozilla.com/D79249
This patch adds IDs to all the box divs so they can be referenced by ARIA attributes. The actual legend spans also act as region landmarks with an associated level so the nesting is relayed.
In addition, each of those boxes gets the buttons for its dimensions rendered in-place so for assistive technologies, this all follows a logical flow. aria-owns changes the accessibility tree so the nesting and associated properties are grouped together.
The actual buttons also receive a localizable aria-label that is a combination of the button text and title, so screen reader users not only hear "0 button" without knowing immediately what that button actually belongs to. Title is secondary information.
Differential Revision: https://phabricator.services.mozilla.com/D78953
This patch turns the info that holds the dimensions and position info into a region. Because the visual representation is without explanatory text, an aria-label is constructed for that region to hold a more explicit version of the displayed information.
Differential Revision: https://phabricator.services.mozilla.com/D78952
1. Fix the twisty so it has a role and name that reflects the action the button will take when clicked (show or hide).
2. Give the section itself a heading so it can easily be found. Make it a level 3 so it is clear that this is a sub section of the box model view.
3. Order the properties themselves in a table with rows for each property, and cells for the name and value.
4. Make the property names and values, which are not editable, not clickable.
Differential Revision: https://phabricator.services.mozilla.com/D78951
The 'asyncStack' flag on JS execution contexts is used as a general switch
to enable async stack capture across all locations in SpiderMonkey, but
this causes problems because it can at times be too much of a performance
burden to general and track all of these stacks.
Since the introduction of this option, we have only enabled it on Nightly
and DevEdition for non-mobile builds, which has left a lot of users unable
to take advantage of this data while debugging.
This patch enables async stack traces across all of Firefox, but introduces
a new pref to toggle the scope of the actual expensive part of async stacks,
which is _capturing_ them and keeping them alive in memory. The new pref
limits the capturing of async stack traces to only debuggees, unless an
explicit pref is flipped to capture async traces for all cases.
This means that while async stacks are technically enabled, and code could
manually capture a stack and pass it back to SpiderMonkey and see that stack
reflected in later captured stacks, SpiderMonkey itself and related async
DOM APIs, among others, will not capture stacks or pass them to SpiderMonkey,
so there should be no general change in performance by enabling the broader
feature itself, unless the user is actively debugging the page.
One affect of this patch is that if you have the debugger open and then close
it, objects that have async stacks associated with them will retain those
stacks and they will continue to show up in stack traces, no _new_ stacks
will be captured. jorendorff and I have decided that this is okay because
the expectation that the debugger fully revert every possible effect that it
could have on a page is a nice goal but not a strict requirement.
Differential Revision: https://phabricator.services.mozilla.com/D68503
Moved info icon from after text to before text.
Matched the spacing between the icon and text to the spacing between the icon and text in the Console.
Updated relevant WhyPaused snapshot tests.
Differential Revision: https://phabricator.services.mozilla.com/D78601
Removes the instance of `WhyPaused` in `debugger/src/components/App.js` as the mark up that it returns does not contain useful information and is never visible to the user.
Differential Revision: https://phabricator.services.mozilla.com/D79144