There is no guarantee that any RDP request will be completed when the toolbox
closes, so that we should do the cleanup from the actor side if anything
needs to be stopped or removed.
Differential Revision: https://phabricator.services.mozilla.com/D38371
--HG--
extra : moz-landing-system : lando
This was kept to support old xul addons. All mozilla-central usages
have been removed and now uses Loader.jsm to get access to this module.
Differential Revision: https://phabricator.services.mozilla.com/D38321
--HG--
extra : moz-landing-system : lando
We used to have another provider which would load module via file:// URI,
directly from the disk. But the progress on artifact builds and ./mach build faster
made this obsolete and has been removed a long time ago.
We still have a lot of abstraction to support this non-existent feature.
Differential Revision: https://phabricator.services.mozilla.com/D38284
--HG--
extra : moz-landing-system : lando
The rest was legacy code to support old xul add-ons.
All mozilla-central code used to be refactored, but a few places
were still using the old codepaths.
Differential Revision: https://phabricator.services.mozilla.com/D38283
--HG--
extra : moz-landing-system : lando
A test is added to ensure this is fixed properly.
We also fix the Array previewer to properly return
undefined for unknown array properties, rather than null.
Differential Revision: https://phabricator.services.mozilla.com/D38467
--HG--
extra : moz-landing-system : lando
The file was included in the index.html and was used
to create the WebConsoleWrapper.
We can directly create it from webconsole-ui.js and
not have this unusual mechanism.
Differential Revision: https://phabricator.services.mozilla.com/D38456
--HG--
extra : moz-landing-system : lando
If user clicks gutter to add a breakpoint in tab of a blackboxed file, the file should be un-blackboxed.
Differential Revision: https://phabricator.services.mozilla.com/D38198
--HG--
extra : moz-landing-system : lando
This shouldn't be JSTerm's responsability to call
this function. Furthermore, the function clear
some references in the WebConsoleFront, which are
going to be destroyed anyway.
Differential Revision: https://phabricator.services.mozilla.com/D38614
--HG--
extra : moz-landing-system : lando
The function is only called from the context-menu,
where we already have all the references we need.
So we can move the function code directly in the
menu item callback.
Differential Revision: https://phabricator.services.mozilla.com/D38613
--HG--
extra : moz-landing-system : lando
Moved network monitor actor files:
network-monitor.js
network-event.js
into devtools/server/actors/network-monitor directory.
And updated moz.build files presented in related directories.
Differential Revision: https://phabricator.services.mozilla.com/D38219
--HG--
rename : devtools/server/actors/network-event.js => devtools/server/actors/network-monitor/network-event.js
rename : devtools/server/actors/network-monitor.js => devtools/server/actors/network-monitor/network-monitor.js
extra : moz-landing-system : lando
We add a GridElementWidthResizer to handle the editor width.
The width is then persisted in a pref.
A test is added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D37687
--HG--
extra : moz-landing-system : lando
We need this in the console to put the borders on the
right position, depending on the NotificationBox place.
Differential Revision: https://phabricator.services.mozilla.com/D38039
--HG--
extra : moz-landing-system : lando
Since we now have a GridElementWidthResizer element, we can
get rid of the SplitBox wrapping the SideBar, and have all
major elements as child of the App element, controlled by
a CSS Grid.
This makes it easy to change the console layout when toggling
the editor mode (re-ordering element in JS, changing the CSS
grid templates, and placing the element in different areas).
This also means we can take advantage of subgrid to align
the sidebar toolbar with the filter bar for example.
As the part of the stylesheet dedicated to layout grew, it
made sense to have it all in a separate stylesheet, App.css,
that lives next to the App component.
Differential Revision: https://phabricator.services.mozilla.com/D38038
--HG--
rename : devtools/client/themes/webconsole.css => devtools/client/webconsole/components/App.css
extra : moz-landing-system : lando
Adding a new opcional property to Frame.js, messageSource, which will allows us to know the source of the Message. We will be using this property to display the correct tooltip message.
Differential Revision: https://phabricator.services.mozilla.com/D38139
--HG--
extra : moz-landing-system : lando
My preference was to annotate most of the failing tests with `fail-if` so that
if they start passing, the `fail-if` needs to be removed and they need to keep
passing. That doesn't work for tests that timeout, or which trigger failures
from their cleanup functions, however, so those tests need skip-if. And tests
with fail in their cleanup functions likely leave the browser in an
inconsistent state for subsequent tests, anyway, so really should be skipped
regardless.
There are some remaining tests which still fail because of crashes. I chose
not to skip them here, but to fix the crashes in separate bugs instead.
Differential Revision: https://phabricator.services.mozilla.com/D38247
--HG--
extra : rebase_source : 39ba8fec2e882cfe577c5f2b58ab7e4b461f1178
We can speed up the getType function by changing the dataType into an object from an array.
That way we avoid looping looking for the matching tagName and namespaceURI and access the typeData directly by their tagName.
Differential Revision: https://phabricator.services.mozilla.com/D38196
The button display the same icon that will be used
in the console input when in inline-mode to toggle
the editor mode, active.
A test is added to ensure the button works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D38622
--HG--
rename : browser/themes/shared/icons/sidebars.svg => devtools/client/themes/images/webconsole/editor.svg
extra : moz-landing-system : lando
When clicking and selecting source text on a collapsible message, the message expansion is toggled after releasing the mouse
Differential Revision: https://phabricator.services.mozilla.com/D37607
--HG--
extra : moz-landing-system : lando
MANUAL PUSH: Lando gives me strange errors and no one is around in #lando to help diagnose the problem.
--HG--
extra : rebase_source : 3701625298b2647d8cef671d75fdda4340fb43b1
extra : histedit_source : c2ea99a43942a6dcf7bd5b527b87387b03d38151
Moved network monitor actor files:
network-monitor.js
network-event.js
into devtools/server/actors/network-monitor directory.
And updated moz.build files presented in related directories.
Differential Revision: https://phabricator.services.mozilla.com/D38219
--HG--
rename : devtools/server/actors/network-event.js => devtools/server/actors/network-monitor/network-event.js
rename : devtools/server/actors/network-monitor.js => devtools/server/actors/network-monitor/network-monitor.js
extra : moz-landing-system : lando
- Remove WebSocket Type column
- Move the frame type information to the Data column as an arrow icon
- Add L10N strings for frame types and time format
- Reorder columns
- Set percentage widths for columns to give more room to data and time
Differential Revision: https://phabricator.services.mozilla.com/D37064
--HG--
extra : moz-landing-system : lando
As originally implemented, nsISiteSecurityService.removeState allowed direct
access to remove HSTS state. It also provided the implementation for when the
browser encountered an HSTS header with "max-age=0". In bug 775370, it was
updated to store an entry that would override preloaded information when
processing such headers. However, this meant that the semantics of the direct
access API had changed. Preloaded information could be overridden if a user
invoked the "forget about this site" feature. This change fixes the public API
(and renames it to "resetState") so it actually behaves as its consumers expect.
Reviewers: jcj!, KevinJacobs!
Tags: #secure-revision
Bug #: 1564481
Differential Revision: https://phabricator.services.mozilla.com/D38108
--HG--
extra : rebase_source : 8dd5460d3fd3c0ce92746cc83fae220d6e2a83cf
extra : amend_source : 171ebb015e9f9ae775f0caa22e161d41970f3d51
Changes:
- temporarily disable the test on macosx1014 as per comments in the bug
Differential Revision: https://phabricator.services.mozilla.com/D37987
--HG--
extra : moz-landing-system : lando
This component is placed by the consumer on a grid, and act on
one of the grid element size.
The component can be placed at the inline start or the inline end
of the area it is in.
This component relies on the existing Draggable component.
A test is added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D37686
--HG--
extra : moz-landing-system : lando
Given that `CssProperties.isValidOnClient()` does only a client-side check for support of a CSS declaration, we can leverage the built-in `CSS.supports()` method and remove some of the inter-dependencies between the `CssProperties` object from the `CssPropertiesFront` and its consumers, `OutputParser` and `FilterWidget`.
Differential Revision: https://phabricator.services.mozilla.com/D37751
--HG--
extra : moz-landing-system : lando
Because ShouldIncludeEdge considers the |origin| node as well, it was possible for
the old code to 'miss' nodes and never write them to the core dump even though we
also wrote some edges with the node as referent.
Differential Revision: https://phabricator.services.mozilla.com/D37701
--HG--
extra : moz-landing-system : lando
Removed unnecessary code in GridItem.js file's onGridCheckboxClick function and updated the render function so that the onInspectIconClick call triggers the stopPropagation function.
Differential Revision: https://phabricator.services.mozilla.com/D37612
--HG--
extra : moz-landing-system : lando
This component is placed by the consumer on a grid, and act on
one of the grid element size.
The component can be placed at the inline start or the inline end
of the area it is in.
This component relies on the existing Draggable component.
A test is added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D37686
--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
Storage principal is the principal used for the storage area of a document,
as well as when trying to communicate to other same-origin document instances.
Right now the default is for the storage principal to be equal to the node
principal for all documents, but in the dynamic FPI feature (bug 1549587)
the storage principal for third-party documents will have a member of its
origin attributes set to the eTLD+1 of the domain of the top-level document
in order to 'partition' third-party data across top-level documents from
different sites.
This patch moves the devtools storage actor to use the storage principal
so that when dynamic FPI is enabled, devtools uses the correct principal.
Differential Revision: https://phabricator.services.mozilla.com/D37664
--HG--
extra : moz-landing-system : lando
`hasAttribute` and `getAttribute` were using for..of loop to
get what they wanted, which wasn't ideal.
Moreover, most of those operations were happening because we
didn't pass the attribute value to the parseAttribute function,
only an array of all the attributes. This is a bit unfortunate
there's only one place where we call the parseAttribute function,
and there, we have easy access to the attribute value.
This patch removes direct calls to hasAttribute and getAttribute.
hasAttribute is removed, but we need to keep getAttribute for the
isValid function in parsers.
We add an `attributeValue` parameter to the parseAttribute function.
The unit test for this function is also modified to pass the attribute
value.
perfherder reports a ~2.5% improvement on custom open and ~3% on
custom reload.
Differential Revision: https://phabricator.services.mozilla.com/D37551
--HG--
extra : moz-landing-system : lando
Since Firefox 67 tracked changes have unique identifiers as follows:
- ruleId => StyleRuleActor.actorID
- sourceId => StylesheetActor.actorID
Given that we're at Firefox 70 and beyond the window where we support connecting to servers older than 3 versions, this patch removes the backwards compatibility provided by methods to generate unique ids based on attributes of the rule and stylesheet for the tracked change.
Differential Revision: https://phabricator.services.mozilla.com/D37591
--HG--
extra : moz-landing-system : lando
We weren't handling comments at all, which means that having
any in the console would probably make the autocomplete not
working.
This patch handles both inline and multiline javascript comments,
and adds test cases to ensure we don't regress.
Depends on D36573
Differential Revision: https://phabricator.services.mozilla.com/D37196
--HG--
extra : moz-landing-system : lando
We'd like to enable the Origin header for all eligible reqeusts, which include POST.
The test should be adjusted.
Differential Revision: https://phabricator.services.mozilla.com/D33382
--HG--
extra : moz-landing-system : lando
We'd like to enable the Origin header for all eligible reqeusts, which include POST.
The test should be adjusted.
Differential Revision: https://phabricator.services.mozilla.com/D33382
--HG--
extra : moz-landing-system : lando
We use the openNetworkDetails prop which is already in use
in the netmonitor to collapse the message if the parameter
passed to the function is falsy (i.e. the panel is already
displayed)
Depends on D37388
Differential Revision: https://phabricator.services.mozilla.com/D37389
--HG--
extra : moz-landing-system : lando
This prop is only used when hideToggleButton isn't truthy.
In the case of the console, it won't ever be called, so
it's not mandatory.
Differential Revision: https://phabricator.services.mozilla.com/D37388
--HG--
extra : moz-landing-system : lando
Some people found that the ConfirmDialog was getting into their
way when typing into the console, as it was stealing the focus.
This patch fixes this by not focusing the ConfirmDialog when
we show it, so the user can still type.
This means that we now handle the dialog confirm and dismiss from
JSTerm, when the former is displayed.
Since it wasn't clear how you could close the popup, we add a close
button that makes it very obvious.
This means we can drop the key handler in the dialog as the jsterm
is always focused.
We also simply remove the feature to open the MDN link on `?` key
stroke as it's not discoverable and was the only part of the
panel where you could do such thing.
Existing tests are adapted and extended to cover the new behaviour.
Differential Revision: https://phabricator.services.mozilla.com/D36174
--HG--
extra : moz-landing-system : lando
Remove devtools.netmonitor.features.resizeColumns pref and any reference to it.
Differential Revision: https://phabricator.services.mozilla.com/D37159
--HG--
extra : moz-landing-system : lando
The console fails to connect to the server because
the getCachedMessages function throws on GMail.
This is because we try to access a property on a
cross-origin object, window.windowUtils, in
getInnerWindowId.
Wrapping the access to the property fixes the issue.
A test is added to make sure we don't regress.
// TODO: The test isn't failing without the fix,
so it should be re-written.
Differential Revision: https://phabricator.services.mozilla.com/D37069
--HG--
extra : moz-landing-system : lando
We were using Array.from to get an array of all the characters, and
be able to slice parts of the strings to run some checks.
This had the disadvantage of being quite slow on very large strings,
at a point where we introduced a bail out mechanism into the function
to not block the content page.
This patch switches to `String.prototype[Symbol.iterator]` to loop
over all the character, and removes lots of array and string manipulations.
On the same, super-large, string, the function cost went from 6700ms to
less than 200ms.
Differential Revision: https://phabricator.services.mozilla.com/D36572
--HG--
extra : moz-landing-system : lando
Already tested via toolbox menus in devtools/client/framework/test/browser_toolbox_zoom_popup.js
Could open a follow up to allow for other anchor points than bottom-left.
Differential Revision: https://phabricator.services.mozilla.com/D37044
--HG--
extra : moz-landing-system : lando
We were clearing the completion text all the time to prevent
a visual glitch while typing (See Bug 1491776). But since we
are now waiting for 75ms before calling the autocomplete
function (which triggers the autocompletion text update), we
have a flash of the completion text, which isn't ideal.
In this patch, we check if the typed letters match the begining
of the completion text, and if they do, we don't clear the
completion text.
In the same time, we set the completion text in absolute position
so it doesn't jump when the new letter is added in the CodeMirror
document.
Finally, we change how the Editor pipe events from CodeMirror to
include parameters, so we can use them in JsTerm.
Differential Revision: https://phabricator.services.mozilla.com/D36163
--HG--
extra : moz-landing-system : lando
Also changed the border radius to be consistent between doorhanger and arrow style tooltips.
There are still subtle differences between the XUL+arrow/HTML+arrow/XUL+doorhanger, but for now I would just like to fix this before we merge to 70.
Strictly using the photon shadow for doorhangers is too subtle and too inconsistent with our other tooltips, so I used shadow-20.
Differential Revision: https://phabricator.services.mozilla.com/D36767
--HG--
extra : moz-landing-system : lando
Ensure source links for selectors in the Rules view and warning links in Web Console for minified CSS go to the right location in the Style Editor after applying automatic prettification.
This only works for linked stylesheets. [Bug 1169770](https://bugzilla.mozilla.org/show_bug.cgi?id=1169770) needs to be fixed first before this can work correctly on inline minified stylesheets.
This patch augments the `prettifyCSS()` method to generate the mappings necessary to generate a sourcemap from the original to the prettified source. It uses these mappings to translate the cursor position when invoking the Style Editor to be opened at a specific location.
The mappings from the minified to the prettified source are used only until the stylesheet is changed in the Style Editor. Upon editing the source in the Style Editor, the associated mappings are cleared because it's likely they have been rendered invalid.
The updated stylesheet will already be prettified so it bypasses the `prettifyCSS()` method, thus avoiding the need to re-generate mappings. New CSS warnings will be listed in the Web Console which point to the right location in the edited stylesheet (the old warnings no longer point to the right place, but that's an acceptable side-effect). The Rules view in the Inspector also lists selectors with the new positions within the edited stylesheet.
Differential Revision: https://phabricator.services.mozilla.com/D36585
--HG--
extra : moz-landing-system : lando
Prevent toggling open Split Console with escape is pressed to toggle shortcutsModal closed.
Differential Revision: https://phabricator.services.mozilla.com/D36448
--HG--
extra : moz-landing-system : lando
This fixes 2 issues that we had when the subgrid and parent grid highlighter are shown:
1) When the subgrid and its parent grid container are both highlighted and the parent grid container
is unhighlighted, we need to still show a translucent parent grid container highlight.
2) Avoid showing a translucent parent grid container highlight for a subgrid, when the
parent grid container is already highlighted.
Differential Revision: https://phabricator.services.mozilla.com/D35725
This fixes an issue in the destroy function without having to guard for the
property existence.
Differential Revision: https://phabricator.services.mozilla.com/D36164
--HG--
extra : moz-landing-system : lando
Before this change, the accessibility icon was too close to the text beside it
on the RTL versions of Firefox.
Now a margin has been added to create sufficient space between the icon and
the text.
Differential Revision: https://phabricator.services.mozilla.com/D36014
--HG--
extra : moz-landing-system : lando
The bounds attribute has been deprecated and shown zero use, and thus this change removes it.
Differential Revision: https://phabricator.services.mozilla.com/D36005
--HG--
extra : moz-landing-system : lando
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
We use Cmd/Ctrl + B to switch between inline and editor mode. This
should be familiar for VSCode users as it toggles the file sidebar.
When changing the layout, we persist the choice into the editor pref
so the user keeps the same layout the next time they open the console.
Differential Revision: https://phabricator.services.mozilla.com/D34718
--HG--
extra : moz-landing-system : lando
When the editor preference is true, a CSS class is added to
the panel that allow us to shift the layout to a CSS Grid, where
the input panel is on the left and the output on the right.
A toolbar is added to be able to execute an expression when in
editor mode.
Differential Revision: https://phabricator.services.mozilla.com/D17096
--HG--
extra : moz-landing-system : lando
We take this as an opportunity to fix the alignment between the XHR
badge and the URL.
Differential Revision: https://phabricator.services.mozilla.com/D36297
--HG--
extra : moz-landing-system : lando
Add a context menu entry to export the console output to a file.
We group the 2 export entries into a submenu.
Differential Revision: https://phabricator.services.mozilla.com/D22158
--HG--
extra : moz-landing-system : lando
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
The Redux action/reducer setup for handling selecting and applying font variation instances is needlessly complex. The indirection is not necessary.
The flow is as follows:
- When a font variation instance (provided by some variable font files) is selected from the _Instances_ select menu, update all variation axes with the values associated with that instance.
- When the user makes any manual change to any of the axis values, save all axis values associated with a "Custom" variation instance. This enables the user to revert to them.
This patch removes the needless indirection about saving the axis values and applying the "Custom" variation instance. The logic is now moved to the UPDATE_AXIS_VALUE reducer.
Differential Revision: https://phabricator.services.mozilla.com/D36051
--HG--
extra : moz-landing-system : lando
The failure was happening on window7, which I guess is
pretty slow. Looking at the failure screenshot I was able
to see that the console output was empty.
The test is initially waiting for a 100 messages to be displayed
in the console output.
We are using the waitFor helper function for that. waitFor by default
call the function argument 500 times, at a 10ms interval, and then
fail.
Here, we bump the interval to 100ms, and set the max number of
tries to 500, in order to give extra time for the 100 messages
to be rendered in the output.
Pushed a TV job a re-ran it a few times without seeing the failure,
so the fix should be good.
Differential Revision: https://phabricator.services.mozilla.com/D36039
--HG--
extra : moz-landing-system : lando
Ctrl + A moves the cursor to the beginning of the line,
so we need to dismiss autocomplete.
A test case is added to make sure this behaves as
expected.
Differential Revision: https://phabricator.services.mozilla.com/D35573
--HG--
extra : moz-landing-system : lando
This was making browser_webconsole_scroll.js fail.
After some investigation, I found that the `isInWarningGroup`
prop, a function defined in `mapStateToProp` was causing a
re-rendering (because we were creating a new function each
time), impacting the shouldScrollToBottom behaviour.
To fix this, we no longer create a `isInWarningGroup` prop,
but directly use the `isMessageInWarningGroup` selector, which
was modified to take an array of visible messages instead of
the whole state.
Differential Revision: https://phabricator.services.mozilla.com/D35016
--HG--
extra : moz-landing-system : lando
If 2 messages are emitted during the same microsecond,
their timestamps are similar, and the sorting we do when
filtering for warning groups might be erroneous.
In such case, we now check the message id, to see which
one we handled first, which should be enough.
A test is added to ensure this works as expected. Basically,
we now render 2 logs one after the another, to increase the
chance they'll get the same timestamp.
The updated test was failing without the fix, and seems to
pass with it.
Differential Revision: https://phabricator.services.mozilla.com/D35015
--HG--
extra : moz-landing-system : lando
The Redux action/reducer setup for handling selecting and applying font variation instances is needlessly complex. The indirection is not necessary.
The flow is as follows:
- When a font variation instance (provided by some variable font files) is selected from the _Instances_ select menu, update all variation axes with the values associated with that instance.
- When the user makes any manual change to any of the axis values, save all axis values associated with a "Custom" variation instance. This enables the user to revert to them.
This patch removes the needless indirection about saving the axis values and applying the "Custom" variation instance. The logic is now moved to the UPDATE_AXIS_VALUE reducer.
Differential Revision: https://phabricator.services.mozilla.com/D36051
--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
This patch addresses bug 1548933. It adds/removes the preview highlight to related tokens (if necessary) as well as the target token. This happens when one token is broken into pieces due to a search query that only covers part of the token.
Differential Revision: https://phabricator.services.mozilla.com/D34749
--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