Граф коммитов

3249 Коммитов

Автор SHA1 Сообщение Дата
Daisuke Akatsuka 223f75aa07 Bug 1589858: Guard from passing media rules to InspectorUtils.getSelectorCount(). r=pbro
Differential Revision: https://phabricator.services.mozilla.com/D50155

--HG--
extra : moz-landing-system : lando
2019-10-23 09:45:41 +00:00
Micah Tigley 6e39794906 Bug 1543234 - Only call stopPrintMediaSimulation in destroy() if print simulation is enabled r=gl
Differential Revision: https://phabricator.services.mozilla.com/D50122

--HG--
extra : moz-landing-system : lando
2019-10-22 19:40:24 +00:00
Nicolas Chevobbe 02cfc079ff Bug 1588999 - Rename ObjectClient to ObjectFront. r=ochameau.
The object-client.js file is now a proper protocol.js front,
but is still named after a client.
This is confusing, so we rename and move the file next to other
fronts, and update all consumers to the new terminology.

Differential Revision: https://phabricator.services.mozilla.com/D49878

--HG--
rename : devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/object-client.js => devtools/client/debugger/packages/devtools-reps/src/object-inspector/tests/__mocks__/object-front.js
rename : devtools/shared/client/object-client.js => devtools/shared/fronts/object.js
extra : moz-landing-system : lando
2019-10-21 12:07:10 +00:00
Jean-Yves Avenard e6d0e7dfda Bug 1588899 - P1. Move classification flags related method to nsIClassifiedChannel. r=Ehsan,baku
This is where it should have been in the first place. Those attributes belong there.

Differential Revision: https://phabricator.services.mozilla.com/D49577

--HG--
extra : moz-landing-system : lando
2019-10-19 04:30:24 +00:00
Jason Laster 2afc34bfe4 Bug 1581249 - The timeline should show breakpoint hits. r=bhackett
Differential Revision: https://phabricator.services.mozilla.com/D49804

--HG--
extra : moz-landing-system : lando
2019-10-18 22:20:09 +00:00
Gabriel Luong a92d6c2648 Bug 1568860 - Part 2: Make getAllFonts fission compatible. r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D49637

--HG--
extra : moz-landing-system : lando
2019-10-18 19:30:03 +00:00
Julian Descottes 4912a6f634 Bug 1496025 - Remove unused methods on ObjectClient related to promises r=ochameau
Depends on D49636

Differential Revision: https://phabricator.services.mozilla.com/D49638

--HG--
extra : moz-landing-system : lando
2019-10-18 15:31:49 +00:00
Alexandre Poirot 6bdf5b1a87 Bug 1496025 - Remove Promises actor r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D49636

--HG--
extra : moz-landing-system : lando
2019-10-18 15:31:32 +00:00
Nicolas Chevobbe 43250917b0 Bug 1586201 - Add a function to get a nodeFront from a ContentDomReference. r=pbro,jdescottes.
A function is added on the walker actor that creates a NodeFront
from a ContentDomReference, e.g. an object containing a browsingContextId
and a unique DOM element identifier.
A trait is added on the walker actor since the ContentDomReference API was
only added in Firefox 69.
We then add a function on the toolbox that can return a NodeFront from a
element grip.

Differential Revision: https://phabricator.services.mozilla.com/D48808

--HG--
extra : moz-landing-system : lando
2019-10-18 09:07:05 +00:00
Nicolas Chevobbe ac6ad6abfb Bug 1586201 - Include ContentDomReference in Node grips. r=pbro.
This will allow us to retrieve the appropriate inspector
(and thus walker, highlighter, ...) for a given element
later, potentially from a different DebuggerServer.

Differential Revision: https://phabricator.services.mozilla.com/D48807

--HG--
extra : moz-landing-system : lando
2019-10-18 09:06:27 +00:00
Nicolas Chevobbe d71aa730aa Bug 1586201 - Refactor of ObjectActor form function. r=ochameau.
The function was close to hit the complexity limit set by eslint,
so we break it up into smaller functions.
We also group assignments where we can.

Differential Revision: https://phabricator.services.mozilla.com/D48806

--HG--
extra : moz-landing-system : lando
2019-10-18 09:06:13 +00:00
jaril 696cf3b52a Bug 1588997 - Convert ObjectClient to protocol.js front. r=nchevobbe.
- Converted the ObjectClient into an protocoljs Front
- Converted the SymbolIteratorClient into a protocoljs Front and moved it to devtools/shared/fronts
- Converted the PropertyIteratorClient into a protocoljs Front and moved it to devtools/shared/fronts
- Converted the EnvironmentClient into a protocoljs Front and moved it to devtools/shared/fronts
- Modified calls to `DebuggerClient.release()` so that it tries to call the ObjectFront's release method first, and falls back on `DebuggerClient.release()` if there's no object front
- Changed reps so that it instantiates only one ObjectClient per grip
- Changed tests so that they expect what the Front's request method resolves to where applicable (i.e. ObjectFront.allocationStack resolves to allocationStack, not a packet object with an allocationStack property)
- Changed callbacks provided to ObjectClient methods to be chained to the ObjectFront methods (e.g. ObjectClient.getScope(callback) changed to ObjectFront.getScope().callback())
- Changed tests to use async/await (test_framebindings-x.js, test_functiongrips-x.js, test_objectgrips-x.js)
- Changed tests to expect protocoljs to throw an error string instead of an error object (test_objectgrips-fn-apply-03.js, test_threadlifetime-02.js, test_pauselifetime-03.js)

Differential Revision: https://phabricator.services.mozilla.com/D48182

--HG--
rename : devtools/shared/client/environment-client.js => devtools/shared/fronts/environment.js
rename : devtools/shared/client/property-iterator-client.js => devtools/shared/fronts/property-iterator.js
rename : devtools/shared/client/symbol-iterator-client.js => devtools/shared/fronts/symbol-iterator.js
extra : moz-landing-system : lando
2019-10-17 16:06:25 +00:00
Nicolas Chevobbe 7ef8a79951 Bug 1589001 - Rename (web)consoleClient variables and properties to webConsoleFront. r=Honza.
The webconsole actor now has an associated front for some
time, but the naming of variables and properties didn't
reflect that (most weren't updated and were still calling
it a client).
This patch tries to rename all those variables so it's more
obvious we're dealing with an actual front.

Differential Revision: https://phabricator.services.mozilla.com/D49401

--HG--
extra : moz-landing-system : lando
2019-10-17 10:16:46 +00:00
Bogdan Tara 7e9efc5de3 Backed out changeset 29bc3ebe8b4e (bug 1588997) for browser_ext_devtools_panels_elements_sidebar.js && browser_ext_find.js failures CLOSED TREE
--HG--
rename : devtools/shared/fronts/environment.js => devtools/shared/client/environment-client.js
rename : devtools/shared/fronts/property-iterator.js => devtools/shared/client/property-iterator-client.js
rename : devtools/shared/fronts/symbol-iterator.js => devtools/shared/client/symbol-iterator-client.js
2019-10-17 10:51:19 +03:00
jaril e1c2cd6db5 Bug 1588997 - Convert ObjectClient to protocol.js front. r=nchevobbe.
- Converted the ObjectClient into an protocoljs Front
- Converted the SymbolIteratorClient into a protocoljs Front and moved it to devtools/shared/fronts
- Converted the PropertyIteratorClient into a protocoljs Front and moved it to devtools/shared/fronts
- Converted the EnvironmentClient into a protocoljs Front and moved it to devtools/shared/fronts
- Modified calls to `DebuggerClient.release()` so that it tries to call the ObjectFront's release method first, and falls back on `DebuggerClient.release()` if there's no object front
- Changed reps so that it instantiates only one ObjectClient per grip
- Changed tests so that they expect what the Front's request method resolves to where applicable (i.e. ObjectFront.allocationStack resolves to allocationStack, not a packet object with an allocationStack property)
- Changed callbacks provided to ObjectClient methods to be chained to the ObjectFront methods (e.g. ObjectClient.getScope(callback) changed to ObjectFront.getScope().callback())
- Changed tests to use async/await (test_framebindings-x.js, test_functiongrips-x.js, test_objectgrips-x.js)
- Changed tests to expect protocoljs to throw an error string instead of an error object (test_objectgrips-fn-apply-03.js, test_threadlifetime-02.js, test_pauselifetime-03.js)

Differential Revision: https://phabricator.services.mozilla.com/D48182

--HG--
rename : devtools/shared/client/environment-client.js => devtools/shared/fronts/environment.js
rename : devtools/shared/client/property-iterator-client.js => devtools/shared/fronts/property-iterator.js
rename : devtools/shared/client/symbol-iterator-client.js => devtools/shared/fronts/symbol-iterator.js
extra : moz-landing-system : lando
2019-10-16 17:09:35 +00:00
David Walsh 34cd114993 Bug 1576145 - Show DOM nodes in for DOM Mutation Breakpoints in WhyPaused block r=davidwalsh
Differential Revision: https://phabricator.services.mozilla.com/D45248

--HG--
extra : moz-landing-system : lando
2019-10-17 02:04:45 +00:00
Miriam b43fd031d9 Bug 1582304: Ensure you can add a watchpoint to property within a bucket, prototype, or default properties.
Differential Revision: https://phabricator.services.mozilla.com/D49496

--HG--
extra : moz-landing-system : lando
2019-10-17 00:45:31 +00:00
Logan Smyth 6e3be305df Bug 1581530 - Re-apply usage of .enable/.disable accidentally reverted in Bug 997119. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D49382

--HG--
extra : moz-landing-system : lando
2019-10-16 18:13:41 +00:00
zhaogang bd399a64e2 Bug 1578752 - Pass event listener column to debugger for more accurate pretty print. r=davidwalsh
Now the event listener tooltip url in the inspector will have an additional column part for generated file, which will be parsed as location.column to debugger, and the debugger pretty print can correctly create and use source map. It's the same bug as [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1045237 | Bug 1045237]], [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1134798 | Bug 1134798 ]], and [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1175911 | Bug 1175911 ]]

Differential Revision: https://phabricator.services.mozilla.com/D48812

--HG--
extra : moz-landing-system : lando
2019-10-16 23:03:15 +00:00
Alexandre Poirot f5ed7d3556 Bug 1588730 - Ensure calling form() before calling notifying onFront listeners. r=jdescottes
You can listen for fronts creation via `parentFront.onFront(typeName, callback)`.
For now, we were calling `callback` before we pass the `form` to Front.
This leads to empty attributes as the Front doesn't have access to any data.

Differential Revision: https://phabricator.services.mozilla.com/D49261

--HG--
extra : moz-landing-system : lando
2019-10-15 15:56:18 +00:00
Alexandre Poirot dc833aabf2 Bug 1588730 - Convert test_protocol_simple to async/await. r=jdescottes
I thought I would contribute to this test.
As it doesn't involve any child actor, I'm not, but this cleanup is still valuable.

Differential Revision: https://phabricator.services.mozilla.com/D49260

--HG--
extra : moz-landing-system : lando
2019-10-15 15:55:57 +00:00
Nicolas Chevobbe c273de43c0 Bug 1580181 - Remove debuggee existence check in webconsole actor autocomplete. r=ochameau.
We always have a debugee for the eval window, so we can
remove the now unnecessary check.
We also take this as an opportunity to always attach the
thread when attaching the console in devtools/shared/webconsole/test/common.js
as it's what makes the evalWindow a debuggee.

Differential Revision: https://phabricator.services.mozilla.com/D49105

--HG--
extra : moz-landing-system : lando
2019-10-15 14:24:27 +00:00
Cosmin Sabou 5306157de7 Bug 1588486 - Fix eslint prettier failure. r=eslint-fix 2019-10-14 21:19:36 +03:00
Emilio Cobos Álvarez d2edb10ab6 Bug 1588486 - Fix whitespace skipping inside inlines to handle display: contents correctly. r=mats
This also unifies the code a bit more.

Differential Revision: https://phabricator.services.mozilla.com/D49139

--HG--
extra : moz-landing-system : lando
2019-10-14 17:38:43 +00:00
Michael Ratcliffe 785947850f Bug 1583117 - Markup view is blank if an error is thrown gathering event listeners r=pbro
Differential Revision: https://phabricator.services.mozilla.com/D49134

--HG--
extra : moz-landing-system : lando
2019-10-14 12:23:13 +00:00
Razvan Caliman 05bbb86d41 Bug 1572651 - (Part 3) Add option for highlighters to get node position without scroll offsets. r=pbro
Depends on D47092

Given that the highlighter rendering surface is sized to the viewport of the inspected page (as opposed to the whole document), we need a way to ignore scroll offsets when getting data about the node position so the highlighter doesn't get drawn off-screen.

Differential Revision: https://phabricator.services.mozilla.com/D47094

--HG--
extra : moz-landing-system : lando
2019-10-10 21:51:43 +00:00
Razvan Caliman 56cd72319f Bug 1572651 - (Part 2) Split BoxModelHighlighter into observer and renderer parts. r=pbro,jdescottes
NOTE: To use the new box model highlighter, flip this pref to true: `devtools.inspector.use-new-box-model-highlighter`

Adding Julian as reviewer to check the sanity of the communication system (see `BoxModelHiglighterObserver` constructor and `BoxModelHighlighterRenderer.setMessageManager()`, `BoxModelHighlighterRenderer.onMessage()`,  `BoxModelHighlighterRenderer.postMessage()`) and Patrick for the overall highlighter behavior which is mostly a clean split of the existing [`BoxModelHighlighter`](https://searchfox.org/mozilla-central/rev/f43ae7e1c43a4a940b658381157a6ea6c5a185c1/devtools/server/actors/highlighters/box-model.js)).

---

Depends on D47091

## Preamble

This patch looks more frightening than it actually is. Let me explain:

The vast majority of the code in `box-model-highlighter-observer.js` and `box-model-highlighter-renderer.js` is a clean split of the code existing in `box-model-highlighter.js` into distinct parts which handle the node measurement (observer) and the drawing the highlighter (renderer). I kept the method names identical to help in matching them up with their original sources.

There was no simple way chunk this without confusing the daylight out of you so I decided to co-locate all changes so it's easier to track and reference methods.

I will detail below the important differences.


## Overview:

The box model highlighter is split into two distinct parts:
- an observer which monitors the node's position
- a renderer which draws the highlighter on top of the node

The renderer always lives in the parent process (browser window) and overlays an iframe with the highlighter markup:
- either over the content if highlighting in the context of the content toolbox
- or over the whole browser UI if highlighting in the context of the browser toolbox

When in the context of the browser toolbox (i.e. highlighting the browser UI), both observer and renderer live in the parent process. Communication is done by direct calls.

When in the context of the content toolbox (i.e. highlighting the page content), the observer lives in content process (so it can measure the node) while the renderer lives in the parent process. Communication is done by message passing via `MessageManager` (soon to be deprecated and replaced with JSWindowActor API)

## Notable differences after the split

- the observer checks whether it is in the content process (aka child process) and sets up the highlighter in the parent process by using [`setupInParent()`](https://docs.firefox-dev.tools/backend/actor-e10s-handling.html) and establishes a communication system to it via message manager. If the observer is in the parent process (browser toolbox scenario), the renderer is setup directly via its constructor and no additional communication system is required.

- whenever the node quads change (as determined by the untouched existing base class `auto-refresh.js`), the observer gathers the data about the node position and sends it over to the renderer. This happens in the `BoxModelHighlighterObserver._update()` (corresponding to the [`_update()` from the existing highlighter](https://searchfox.org/mozilla-central/rev/45f30e1d19bde27bf07e47a0a5dd0962dd27ba18/devtools/server/actors/highlighters/box-model.js#361-383)).

- the renderer expects its `render()` method to be called with the necessary node position information whenever it should update the highlighter. It is the entry point which then calls all the DOM manipulation methods copied over from the existing box model highlighter.

- the only notable change in DOM manipulation methods is in `BoxModelHighlighterRenderer._updateBoxModel()` (corresponding to [`updateBoxModel()` from the existing highlighter](https://searchfox.org/mozilla-central/rev/45f30e1d19bde27bf07e47a0a5dd0962dd27ba18/devtools/server/actors/highlighters/box-model.js#504-560)) where the `_nodeNeedsHighlighting()` is kept on the observer part and the canvas zoom adjustment is removed  (`this.markup.scaleRootElement(this.currentNode, rootId)`) because the canvas is no longer influenced by the page zoom (the canvas lives in the browser window, not the content window)

Differential Revision: https://phabricator.services.mozilla.com/D47092

--HG--
rename : devtools/server/actors/highlighters/box-model.js => devtools/server/actors/highlighters/box-model-renderer.js
extra : moz-landing-system : lando
2019-10-11 12:39:42 +00:00
Razvan Caliman f73ec46600 Bug 1572651 - (Part 1) Add highlighter renderer base class r=jdescottes,pbro,bgrins
**Update October 8**
 To use the new box model highlighter, flip this pref to true:
`devtools.inspector.use-new-box-model-highlighter`

---

Adding Julian as reviewer to check the sanity of the communication system and Patrick for the overall highlighter behavior.

---

This patch adds a base class for the renderer part of highlighters which is set up on the parent process in the browser window.
This is used by the `BoxModelHighlighterRender` introduced by D47092

`HighlighterRenderer.init()` will create an HTML iframe and inject it to the appropriate position in the browser window in order to serve as a rendering surface for highlighters of the inspected page content (content toolbox) or the browser UI (browser toolbox). A host iframe is used until [Bug 1492582](https://bugzilla.mozilla.org/show_bug.cgi?id=1492582) is fixed because the browser window is XUL and does not support the anonymous canvas frame used by existing highlighters.

The primary use case of `HighlighterRenderer` is as a base class for renderers which live in a separate process than the observers. This happens with highlighters for the content toolbox. Therefore, it provides methods to setup a communication system (via MessageManager for now) whereby the observer can send messages to the renderer and vice-versa: `setMessageManager()`, `postMessage()` and `onMessage()`.

I used the existing code from [`AccessibilityParent`](https://searchfox.org/mozilla-central/source/devtools/server/actors/accessibility/accessibility-parent.js) as a reference for this.

Classes that extend HighlighterRenderer must implement:
 - a typeName representing the highlighter type; used to differentiate between other types of messages when the Message Manager is used;
 - a _buildMarkup() method to generate the highlighter markup;
 - a `render()` method to update the highlighter markup when given new information about the observed node.

NOTE: A temporary pink outline is set on the highlighter surface as a quick visual check to show its extent depending on context: browser toolbox or content toolbox. This will be removed before landing.

Differential Revision: https://phabricator.services.mozilla.com/D47091

--HG--
extra : moz-landing-system : lando
2019-10-10 21:51:42 +00:00
Brian Hackett 5be1c5612c Bug 1580104 - Wait for recording to initialize before loading URLs, r=jlast.
Differential Revision: https://phabricator.services.mozilla.com/D49090

--HG--
extra : moz-landing-system : lando
2019-10-13 19:10:14 +00:00
Daniel Varga 6a27b47313 Backed out 3 changesets (bug 1572651) for devtools failure at devtools/client/inspector/test/browser_inspector_highlighter-by-type.js. On a CLOSED TREE
Backed out changeset 71db1896c459 (bug 1572651)
Backed out changeset fb5863ee4d37 (bug 1572651)
Backed out changeset 5ef33867cacb (bug 1572651)
2019-10-10 18:51:17 +03:00
Razvan Caliman 77daa88970 Bug 1572651 - (Part 3) Add option for highlighters to get node position without scroll offsets. r=pbro
Depends on D47092

Given that the highlighter rendering surface is sized to the viewport of the inspected page (as opposed to the whole document), we need a way to ignore scroll offsets when getting data about the node position so the highlighter doesn't get drawn off-screen.

Differential Revision: https://phabricator.services.mozilla.com/D47094

--HG--
extra : moz-landing-system : lando
2019-10-10 14:15:03 +00:00
Razvan Caliman 780c3bc0b5 Bug 1572651 - (Part 2) Split BoxModelHighlighter into observer and renderer parts. r=pbro,jdescottes
NOTE: To use the new box model highlighter, flip this pref to true: `devtools.inspector.use-new-box-model-highlighter`

Adding Julian as reviewer to check the sanity of the communication system (see `BoxModelHiglighterObserver` constructor and `BoxModelHighlighterRenderer.setMessageManager()`, `BoxModelHighlighterRenderer.onMessage()`,  `BoxModelHighlighterRenderer.postMessage()`) and Patrick for the overall highlighter behavior which is mostly a clean split of the existing [`BoxModelHighlighter`](https://searchfox.org/mozilla-central/rev/f43ae7e1c43a4a940b658381157a6ea6c5a185c1/devtools/server/actors/highlighters/box-model.js)).

---

Depends on D47091

## Preamble

This patch looks more frightening than it actually is. Let me explain:

The vast majority of the code in `box-model-highlighter-observer.js` and `box-model-highlighter-renderer.js` is a clean split of the code existing in `box-model-highlighter.js` into distinct parts which handle the node measurement (observer) and the drawing the highlighter (renderer). I kept the method names identical to help in matching them up with their original sources.

There was no simple way chunk this without confusing the daylight out of you so I decided to co-locate all changes so it's easier to track and reference methods.

I will detail below the important differences.


## Overview:

The box model highlighter is split into two distinct parts:
- an observer which monitors the node's position
- a renderer which draws the highlighter on top of the node

The renderer always lives in the parent process (browser window) and overlays an iframe with the highlighter markup:
- either over the content if highlighting in the context of the content toolbox
- or over the whole browser UI if highlighting in the context of the browser toolbox

When in the context of the browser toolbox (i.e. highlighting the browser UI), both observer and renderer live in the parent process. Communication is done by direct calls.

When in the context of the content toolbox (i.e. highlighting the page content), the observer lives in content process (so it can measure the node) while the renderer lives in the parent process. Communication is done by message passing via `MessageManager` (soon to be deprecated and replaced with JSWindowActor API)

## Notable differences after the split

- the observer checks whether it is in the content process (aka child process) and sets up the highlighter in the parent process by using [`setupInParent()`](https://docs.firefox-dev.tools/backend/actor-e10s-handling.html) and establishes a communication system to it via message manager. If the observer is in the parent process (browser toolbox scenario), the renderer is setup directly via its constructor and no additional communication system is required.

- whenever the node quads change (as determined by the untouched existing base class `auto-refresh.js`), the observer gathers the data about the node position and sends it over to the renderer. This happens in the `BoxModelHighlighterObserver._update()` (corresponding to the [`_update()` from the existing highlighter](https://searchfox.org/mozilla-central/rev/45f30e1d19bde27bf07e47a0a5dd0962dd27ba18/devtools/server/actors/highlighters/box-model.js#361-383)).

- the renderer expects its `render()` method to be called with the necessary node position information whenever it should update the highlighter. It is the entry point which then calls all the DOM manipulation methods copied over from the existing box model highlighter.

- the only notable change in DOM manipulation methods is in `BoxModelHighlighterRenderer._updateBoxModel()` (corresponding to [`updateBoxModel()` from the existing highlighter](https://searchfox.org/mozilla-central/rev/45f30e1d19bde27bf07e47a0a5dd0962dd27ba18/devtools/server/actors/highlighters/box-model.js#504-560)) where the `_nodeNeedsHighlighting()` is kept on the observer part and the canvas zoom adjustment is removed  (`this.markup.scaleRootElement(this.currentNode, rootId)`) because the canvas is no longer influenced by the page zoom (the canvas lives in the browser window, not the content window)

Differential Revision: https://phabricator.services.mozilla.com/D47092

--HG--
rename : devtools/server/actors/highlighters/box-model.js => devtools/server/actors/highlighters/box-model-renderer.js
extra : moz-landing-system : lando
2019-10-10 14:15:22 +00:00
Razvan Caliman c34e4a24a6 Bug 1572651 - (Part 1) Add highlighter renderer base class r=jdescottes,pbro,bgrins
**Update October 8**
 To use the new box model highlighter, flip this pref to true:
`devtools.inspector.use-new-box-model-highlighter`

---

Adding Julian as reviewer to check the sanity of the communication system and Patrick for the overall highlighter behavior.

---

This patch adds a base class for the renderer part of highlighters which is set up on the parent process in the browser window.
This is used by the `BoxModelHighlighterRender` introduced by D47092

`HighlighterRenderer.init()` will create an HTML iframe and inject it to the appropriate position in the browser window in order to serve as a rendering surface for highlighters of the inspected page content (content toolbox) or the browser UI (browser toolbox). A host iframe is used until [Bug 1492582](https://bugzilla.mozilla.org/show_bug.cgi?id=1492582) is fixed because the browser window is XUL and does not support the anonymous canvas frame used by existing highlighters.

The primary use case of `HighlighterRenderer` is as a base class for renderers which live in a separate process than the observers. This happens with highlighters for the content toolbox. Therefore, it provides methods to setup a communication system (via MessageManager for now) whereby the observer can send messages to the renderer and vice-versa: `setMessageManager()`, `postMessage()` and `onMessage()`.

I used the existing code from [`AccessibilityParent`](https://searchfox.org/mozilla-central/source/devtools/server/actors/accessibility/accessibility-parent.js) as a reference for this.

Classes that extend HighlighterRenderer must implement:
 - a typeName representing the highlighter type; used to differentiate between other types of messages when the Message Manager is used;
 - a _buildMarkup() method to generate the highlighter markup;
 - a `render()` method to update the highlighter markup when given new information about the observed node.

NOTE: A temporary pink outline is set on the highlighter surface as a quick visual check to show its extent depending on context: browser toolbox or content toolbox. This will be removed before landing.

Differential Revision: https://phabricator.services.mozilla.com/D47091

--HG--
extra : moz-landing-system : lando
2019-10-10 14:13:23 +00:00
Brian Hackett 4d9930a53d Bug 1586468 Part 2 - Use observer service to listen for content process connects/disconnects, r=ochameau.
Depends on D48260

Differential Revision: https://phabricator.services.mozilla.com/D48262

--HG--
extra : moz-landing-system : lando
2019-10-09 21:17:44 +00:00
Brian Hackett 26c8bffa81 Bug 1580168 Part 2 - Use PID as ID of child process actors, r=ochameau.
Depends on D48084

Differential Revision: https://phabricator.services.mozilla.com/D48089

--HG--
extra : moz-landing-system : lando
2019-10-09 20:52:47 +00:00
Johann Hofmann d0da7de770 Bug 1475404 - Make EventUtils available to use in content task scopes. r=mconley,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D47588

--HG--
extra : moz-landing-system : lando
2019-10-09 18:03:35 +00:00
Miriam c44a06469a Bug 1587497 - Ensure debugger advances to next line when encountering breakpoint and watchpoint.
Differential Revision: https://phabricator.services.mozilla.com/D48721

--HG--
extra : moz-landing-system : lando
2019-10-09 18:22:41 +00:00
Logan Smyth 4470e56db4 Bug 1585902 - Use the protocoljs framework for emitting events. r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D48147

--HG--
extra : moz-landing-system : lando
2019-10-09 11:03:33 +00:00
jaril 61cb2a6ec1 Bug 1581245 - Added server support for frame timelines
Differential Revision: https://phabricator.services.mozilla.com/D48635

--HG--
extra : moz-landing-system : lando
2019-10-09 05:17:17 +00:00
Alexandre Poirot bd4fcbfbc8 Bug 1585829 - Ensure releasing Service workers when the connection drops. r=jdescottes
With fission, we most likely have a process switch and the existing worker
target isn't properly detached. We should ensure releasing the SW whenever
the connection to the server drops

Differential Revision: https://phabricator.services.mozilla.com/D48061

--HG--
extra : moz-landing-system : lando
2019-10-08 14:44:42 +00:00
Patrick Brosset e12f3faba1 Bug 1574401 - Multi-target node-picker in the browser toolbox r=rcaliman,gl,ochameau
The original plan for the node-picker to work with multiple targets was introduced in D41598 (in bug 1568825). The idea was that, because we can have multiple independent inspectable targets, and because the client is the one doing the orchestration between them, to let the client start the node picker in all targets at once.
At the time of this first change, the code was create with this in mind, but there was really just one target (the top-level one).

So, this revision introduces the real code for this. First of all, I removed the now obsolete `getAllInspectorFronts` in `node-picker.js` because we now have a similar function on the inspector front directly.

Then the main code changes to look for are on the actor side, in the `HighlighterActor`. This is where the picking actually happens.
You have to remember that several targets will be picking at the same time, and therefore several `HighlighterActor` instances will be in pick mode at the same time.
The way they allow users to pick is by listening to mouse events (mousemove and clicks essentially).
Because these actors can't see or talk to each other, one can't tell the others that the mouse is now over its content and the other pickers should pause somewhat.

So, when one of them sees that the mouse event is happening on a remote frame, then it bails out and lets events through without handling them. This is so that the embedded document (which also has a picker running) can get a chance to receive the mouse events too.

The other aspect is that each `HighlighterActor`, when picking, does its own highlighting. So if there are 3 remote frames, then there really are 3 highlighters.
So the trick is to make sure only one of them ever appears at any given time. Again, these actors can't talk to each other directly, so the client is responsible for doing this when receiving events that a node was hovered.

This is not perfect, but should normally get far better when the new fission-compatible highlighter is in place. Indeed, when that happens, we won't have to care about this anymore, there will be only one `HighlighterRenderer` for the entire tab. So even if there are multiple `HighlighterActor` instances picking, they will all be sending events to the same renderer.

The only exception is in the browser toolbox where you can inspect both the browser UI and the content UI. In this case, there will be 2 renderers: one over the entire browser window, and one over the <browser> area. So we'll still have to do the dance of hiding one when the other is shown.

Differential Revision: https://phabricator.services.mozilla.com/D42640

--HG--
extra : moz-landing-system : lando
2019-10-08 13:47:18 +00:00
Boris Chiou 089664a09e Bug 1506939 - Enable individual transform on nightly. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D48239

--HG--
extra : moz-landing-system : lando
2019-10-07 21:48:44 +00:00
wartmanm ada58cbb70 Bug 1433373 - Use source mapping for console jump to definition button r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D38096

--HG--
extra : moz-landing-system : lando
2019-10-07 08:40:04 +00:00
Miriam 63bd47c3e2 Bug 1582303 - Fix formatting in Scopes panel for array items with watchpoints. r=jlast
Differential Revision: https://phabricator.services.mozilla.com/D48083

--HG--
extra : moz-landing-system : lando
2019-10-07 20:40:32 +00:00
Dorel Luca 092ae9e4f7 Bug 1583151 - Follow up to jlaster's push. r=jlast. CLOSED TREE
--HG--
extra : amend_source : d49af95c86e5562e1540e9612863f7c750e05221
2019-10-07 23:50:54 +03:00
Jason Laster f8985ada98 Bug 1583151 - Log important errors to stdout (follow up). r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D46951

--HG--
extra : moz-landing-system : lando
2019-10-07 20:08:13 +00:00
Greg Tatum 4128a5f6ec Bug 1581975 - Factor out the getSymbolsTable browser code from client code; r=julienw
The popup's shortcuts use a different codepath than the popup's buttons.
When using the buttons, the profile was not being captured as a gzipped
profile, and it was using the DevTools' mechanism for getting the symbol
tables. This patch makes the getSymbolTables mechanism configuring in the
recording panel's client.

In addition, browser code made its way into the client. This patch moves
the browser code to all be in browser.js to match the original code
organization for the panel, which was trying to keep browser APIs
out of the React components and Redux store.

Differential Revision: https://phabricator.services.mozilla.com/D45529

--HG--
extra : source : 5a3661caf52faaf67b10fcef9e3121d639a17cc3
2019-10-04 18:17:43 +00:00
Daniel Varga 038d80fc3b Backed out 2 changesets (bug 1580469, bug 1581975) for devtools failure at browser/browser_aboutdebugging_serviceworker_timeout.js
Backed out changeset f44e632769d7 (bug 1580469)
Backed out changeset 5a3661caf52f (bug 1581975)

--HG--
extra : rebase_source : 4ab13ee495ce0709daaaed4e3cec53d11bd3042a
2019-10-05 01:17:45 +03:00
Greg Tatum 47016d67d0 Bug 1581975 - Factor out the getSymbolsTable browser code from client code; r=julienw
The popup's shortcuts use a different codepath than the popup's buttons.
When using the buttons, the profile was not being captured as a gzipped
profile, and it was using the DevTools' mechanism for getting the symbol
tables. This patch makes the getSymbolTables mechanism configuring in the
recording panel's client.

In addition, browser code made its way into the client. This patch moves
the browser code to all be in browser.js to match the original code
organization for the panel, which was trying to keep browser APIs
out of the React components and Redux store.

Differential Revision: https://phabricator.services.mozilla.com/D45529

--HG--
extra : moz-landing-system : lando
2019-10-04 18:17:43 +00:00
Alexandre Poirot 8981bc5d55 Bug 1585986 - Print method name when RDP can't be sent because the front is destroyed. r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D45667

--HG--
extra : moz-landing-system : lando
2019-10-03 14:09:38 +00:00