- Various telemetry methods now need an object to be passed in in order to keep them seperate e.g. if the inspector is opened in tab 1 a timer is started. If an inspector is opened in tab 2 the same timer is restarted. Closing tab 2 would then erase the timing event invalidating the timer in tab 1.
- We no longer need to preface telemetry calls with category "devtools.main" because this is the only category we will be using.
- There are some changes to `devtools/client/debugger/new/dist/vendors.js` and `devtools/client/debugger/new/src/utils/telemetry.js` that need to be ported to the debugger at the same time as landing this.
Differential Revision: https://phabricator.services.mozilla.com/D6137
--HG--
extra : moz-landing-system : lando
TabTarget.attach is being called from the toolbox, before opening the tools,
so we do not have to call it from panel's open functions, nor code that is opening
a toolbox right after.
MozReview-Commit-ID: 77TZFbvOaFt
Differential Revision: https://phabricator.services.mozilla.com/D6668
--HG--
extra : moz-landing-system : lando
This patch will remove setContest(), and change the following things instead of this:
* Use HTMLTooltip.panel.appendChild() instead of HTMLTooltip.setContent().
* Add HTMLTooltip.setContetnSize() to specify the panel size if need this.
Differential Revision: https://phabricator.services.mozilla.com/D7044
--HG--
extra : moz-landing-system : lando
SwatchBaseEditorTooltip specify the "topcentor bototmleft" to second parameter
of HTMLTooltip.show(). However, this parameter will ignore since show() function
require the second parameter as the object, not the string.
Bug 1307481 comment 42 has pointed out this parameter.
Differential Revision: https://phabricator.services.mozilla.com/D7043
--HG--
extra : moz-landing-system : lando
This patch adds the ability to open the autocomplete popup when
typing an opening bracket (i.e. `[`]) in the console input.
This impacts a significant amount of function where we assumed
that the only way to get a completion was to use a dot.
We uses the rename `anylyzeInputString` function to get the
completion part from an input, as well as if the user is performing
an element access (i.e., using the bracket).
We then send that information to the webconsole actor, which send
it to the client.
This allows us to rely on a single parse of the input and gives us
access to this information everywhere we need to, be it on the client
or on the server.
We allow the user to type property name without quotes, and we add
them when the user accept an autocompletion.
We also automatically add a closing bracket (i.e. `]`), when it's needed.
Some test are added. On the server side to make sure the actor's autocomplete
function returns what's expected.
We take that as an opportunity to add test for commands.
On the client side, tests are added to ensure the different behavior works
as expected (check the completion text and the input after accepting
the completion when the user entered some letters, or not, with or without
quotes, with different quotes, hitting the autocomplete cache, …).
A test which accesses the autocomplete cache was modified since the shape
of the cache changed to include the last matchProp as well as the
isElementAccess boolean.
Differential Revision: https://phabricator.services.mozilla.com/D6128
--HG--
extra : moz-landing-system : lando
- Refactor the highlighter shown/hidden event handlers from MarkupElementContainer in ElementEditor.
We do this because we want to be a bit more lazy when we set these on/off highlighters to only when
there is only a display badge and appropriate display type.
- This fixes a flickering bug cause by the event handlers when you click on the display badges in the markup view.
STR:
1. Have 2 grids shown on the markup view.
2. Toggle on one of them
3. Toggle the other one.
4. See that the active state toggles on, off and on.
We want to toggle the active state manually instead of waiting for the highlighter event handler
to toggle its active state when we click on the display badge. This is because waiting for
the highlight event handler to toggle the active state will cause a brief delay from showing
the active state when the user clicked on the display badge. To fix this, we added a way
to start/stop the highlighter event handlers.
Summary:
This method isn't specific to tabs. It can attach to any "target" actor that inherits from BrowsingContextActor.
Depends On D6161
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6162
MozReview-Commit-ID: Exz5fWyWyfN
Summary:
Now that all the "remoting" of this method has been moved to TargetFactory.createTargetForTab,
we should rename this method to what it does now. It mostly call attach requests
of the target actor and its child console actor.
It also "connect" the webextension target actor, but I would like to eventually move that
outside of TabTarget.attach, like makeRemote.
Depends On D4078
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6161
MozReview-Commit-ID: KmFi1LIUBga
Summary:
When switching to async, it is important to catch exception or register a rejection handler
so that errors keep being logged.
So in this patch I'm catching exception in a couple of important codepath.
Depends On D4541
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4542
MozReview-Commit-ID: IDPJVkAPbTs
Summary:
Fetching any target is now asynchronous. But RDM setup/destroy codepath is very fragile
and introduce many low level exception when trying to restore the original browser element
if any timing changes.
So this patch prevents trying to fetch the target object if a toolbox isn't already opened.
The target object is being used only for Telemetry purpose for now.
Depends On D4538
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4540
MozReview-Commit-ID: 2QDUNqentMP
Summary:
We are not passing a tab here. It only works by chance!
Depends On D4535
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4536
MozReview-Commit-ID: K0ztxPM2N6A
Summary:
This method isn't specific to tabs. It can attach to any "target" actor that inherits from BrowsingContextActor.
Depends On D6161
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6162
MozReview-Commit-ID: Exz5fWyWyfN
Summary:
Now that all the "remoting" of this method has been moved to TargetFactory.createTargetForTab,
we should rename this method to what it does now. It mostly call attach requests
of the target actor and its child console actor.
It also "connect" the webextension target actor, but I would like to eventually move that
outside of TabTarget.attach, like makeRemote.
Depends On D4078
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6161
MozReview-Commit-ID: KmFi1LIUBga
Summary:
When switching to async, it is important to catch exception or register a rejection handler
so that errors keep being logged.
So in this patch I'm catching exception in a couple of important codepath.
Depends On D4541
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4542
MozReview-Commit-ID: IDPJVkAPbTs
Summary:
Fetching any target is now asynchronous. But RDM setup/destroy codepath is very fragile
and introduce many low level exception when trying to restore the original browser element
if any timing changes.
So this patch prevents trying to fetch the target object if a toolbox isn't already opened.
The target object is being used only for Telemetry purpose for now.
Depends On D4538
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4540
MozReview-Commit-ID: 2QDUNqentMP
Summary:
We are not passing a tab here. It only works by chance!
Depends On D4535
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4536
MozReview-Commit-ID: K0ztxPM2N6A
This patch makes the parser-worker available at the toolbox level.
This way, the console does not have to rely on the debugger being
open to map top-level await expression.
In order to make the worker works in the toolbox, some changes
are required (passing a window object, checking inToolbox differently).
We take this as an opportunity to *not* display the async iife result,
a promise, in the console. This is made by checking if the input was
mapped, and if so, ignoring the result we get from the server.
A couple tests are added to ensure the basic usage works as expected.
This patch should be considered as a v0 for top-level await evaluation
as there are things that are not perfect here. Since we rely on console.log
the result are treated differently from other evaluation results:
- the style is different
- the result gets added to the log cache (when restarting the console,
the results will still be displayed, but not the commands).
- the results can be filtered, although evaluation results should not
- `$_` after a top-level await evaluation returns the Promise created
by the async iife, not the result that was displayed in the console.
All those should be addressed in Bug 1410820.
Differential Revision: https://phabricator.services.mozilla.com/D6038
--HG--
extra : moz-landing-system : lando
We will eventually call showEmpty() when an element is selected if there are no rules.
This improves the perceive performance of the rules view because it doesn't have
a flicker of the empty text to the css rules.
Summary:
This method isn't specific to tabs. It can attach to any "target" actor that inherits from BrowsingContextActor.
Depends On D6161
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6162
MozReview-Commit-ID: Exz5fWyWyfN
Summary:
Now that all the "remoting" of this method has been moved to TargetFactory.createTargetForTab,
we should rename this method to what it does now. It mostly call attach requests
of the target actor and its child console actor.
It also "connect" the webextension target actor, but I would like to eventually move that
outside of TabTarget.attach, like makeRemote.
Depends On D4078
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D6161
MozReview-Commit-ID: KmFi1LIUBga
Summary:
When switching to async, it is important to catch exception or register a rejection handler
so that errors keep being logged.
So in this patch I'm catching exception in a couple of important codepath.
Depends On D4541
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4542
MozReview-Commit-ID: IDPJVkAPbTs
Summary:
Fetching any target is now asynchronous. But RDM setup/destroy codepath is very fragile
and introduce many low level exception when trying to restore the original browser element
if any timing changes.
So this patch prevents trying to fetch the target object if a toolbox isn't already opened.
The target object is being used only for Telemetry purpose for now.
Depends On D4538
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4540
MozReview-Commit-ID: 2QDUNqentMP
Summary:
We are not passing a tab here. It only works by chance!
Depends On D4535
Reviewers: yulia!
Tags: #secure-revision
Bug #: 1485676
Differential Revision: https://phabricator.services.mozilla.com/D4536
MozReview-Commit-ID: K0ztxPM2N6A
And remove the ADBScanner once the extension is uninstalled.
When RuntimeScanners.add is called for ADBScanner, RuntimeScanner calls
ADBScanner.enable(), thus ADB.start() is called. Meanwhile WebIDE installs the
devtools adb extension if the extension hasn't installed yet. So if the
ADB.start() is called before the installation finishes, ADB.start() fails.
Differential Revision: https://phabricator.services.mozilla.com/D6466
--HG--
extra : moz-landing-system : lando
This method isn't specific to tabs. It can attach to any "target" actor that inherits from BrowsingContextActor.
Depends On D6161
Differential Revision: https://phabricator.services.mozilla.com/D6162
--HG--
extra : moz-landing-system : lando
Now that all the "remoting" of this method has been moved to TargetFactory.createTargetForTab,
we should rename this method to what it does now. It mostly call attach requests
of the target actor and its child console actor.
It also "connect" the webextension target actor, but I would like to eventually move that
outside of TabTarget.attach, like makeRemote.
Depends On D4078
Differential Revision: https://phabricator.services.mozilla.com/D6161
--HG--
extra : moz-landing-system : lando
When switching to async, it is important to catch exception or register a rejection handler
so that errors keep being logged.
So in this patch I'm catching exception in a couple of important codepath.
Depends On D4541
Differential Revision: https://phabricator.services.mozilla.com/D4542
--HG--
extra : moz-landing-system : lando
Fetching any target is now asynchronous. But RDM setup/destroy codepath is very fragile
and introduce many low level exception when trying to restore the original browser element
if any timing changes.
So this patch prevents trying to fetch the target object if a toolbox isn't already opened.
The target object is being used only for Telemetry purpose for now.
Depends On D4538
Differential Revision: https://phabricator.services.mozilla.com/D4540
--HG--
extra : moz-landing-system : lando
We are not passing a tab here. It only works by chance!
Depends On D4535
Differential Revision: https://phabricator.services.mozilla.com/D4536
--HG--
extra : moz-landing-system : lando
This patch will:
- Call the children as function when rendering if MenuButton's children property is the function.
- Add the callback which is called when the focused item changed.
Differential Revision: https://phabricator.services.mozilla.com/D6352
--HG--
extra : moz-landing-system : lando
This patch will move the global functions of ToolboxToolbar to its local
function. As a result of this changes, each function can refer 'props' from
'this' scope.
Differential Revision: https://phabricator.services.mozilla.com/D4631
--HG--
extra : moz-landing-system : lando
The assumption is that there aren't many webpages that are currently using web
components yet so we may want to take advantage of lazily loading the
SlottedNodeContainer.
Because firefox can be closed with the toolbox in a half initialized state telemetry can throw if it expects a tool to be closing when no tools are fully initialized although this is completely expected. Here we simply choose not to report those errors because this is expected behaviour.
Differential Revision: https://phabricator.services.mozilla.com/D4869
--HG--
extra : moz-landing-system : lando
This fixes a performance issue when a page has media-queries based
on the width of the viewport, and the user resizes the window.
If you have N media-queries impacted by a size change:
- each MediaRule will fire "matches-change" (so N events)
- for each "matches-change" the StyleSheetEditor.jsm responsible
for it will fire "media-rules-changed" (still N events)
- for each "media-rules-changed" StyleEditorUI.jsm will call
_updateMediaList to redraw the media queries sidebar for this editor
- for each rule in the editor _updateMediaList will call
getOriginalLocation using the sourcemap service (so N * N calls)
which will spawn an async task, a worker etc...
This is the "good" scenario if only one original file contains all
the N media queries. But if they are split amongst M original files,
each StyleSheetEditor will have and watch all the mediaRules of the
original file, even if it only displays its own part. They are
filtered later on in _updateMediaList (by calling getOriginalLocation).
Which means that in the end you get M * N * N calls to getOriginalLocation.
Throttling calls to media-rules-changed is an easy way to reduce the number
of actual calls to getOriginalLocation.
Differential Revision: https://phabricator.services.mozilla.com/D5347
--HG--
extra : moz-landing-system : lando
This makes long strings without spaces wrap in the console output.
Also fixes object with long string properties.
Differential Revision: https://phabricator.services.mozilla.com/D6040
--HG--
extra : moz-landing-system : lando
This is done in all the tests that don't need an explicit
reference to the toolbox.
Differential Revision: https://phabricator.services.mozilla.com/D6037
--HG--
extra : moz-landing-system : lando
The toolbox specified the min-width to the own xul attribtue. However,
the coordinate system differ from inner and outer frame if we zoom in/out the
devtool panel.
This patch will multiply the min-width of toolbox and zoom value to prevent
this coordinate problem.
Differential Revision: https://phabricator.services.mozilla.com/D4895
--HG--
extra : moz-landing-system : lando
The overflow we are applying was impacting the layout of the
panel which is visible when a request is expanded.
Differential Revision: https://phabricator.services.mozilla.com/D5434
--HG--
extra : moz-landing-system : lando
Summary:
Depends on D5384. Straightforward extraction of networks list and form as
dedicated components. Related CSS extracted as well.
Reviewers: daisuke, ladybenko
Reviewed By: daisuke, ladybenko
Bug #: 1489872
Differential Revision: https://phabricator.services.mozilla.com/D5385
--HG--
extra : rebase_source : 20faf1cb920005374427af7e159a163bfff7bf7f
Summary:
Depends on D5383. Section markup was duplicated for USB, WiFi and Network sections.
Steps markup was duplicated for USB and WiFi sections. Extracted both as components,
using props.children to pass their content. Extracted associated CSS.
Reviewers: daisuke, ladybenko!
Reviewed By: daisuke
Bug #: 1489872
Differential Revision: https://phabricator.services.mozilla.com/D5384
--HG--
extra : rebase_source : 9ff87cd91d5dcdb4e1a78d226d0d7bdd440f7f64