Copy outerHTML of the currently selected node of the inspector.
Works for ELEMENT, DOCUMENT_TYPE and COMMENT node types.
- bound "copy" event in markup-view to copy outerHTML
- added doctypeString property to NodeFront in actors/inspector.js
- markup-view.js is also using this property now
- added mochitest with dedicated html
Introduced a new highlighter option that makes each region <path> element in the highlighter only
cover the actual area of the corresponding region, excluding the area of nested regions.
This is useful when used with the existing showOnly region because it lets users see exactly where
a given region is.
This patch makes the layout-view use this new option, so that when users hover over the various
regions in the layout-view, only the corresponding regions are highlighted.
The only user of the l10s inspector strings bundle is a string that this
change removes.
The "Siblings" string is supposed to tell users that the section of the
menu that follows contains sibling nodes, but it's disabled (and looks like
an item you should normally be able to click on), and it's separated from
the list of siblings by a horizontal separator (making it look like even
less related to the next section).
Also fixed the fact that the inspector context menu was regenerated for
every sibling found on the current node.
Also fixed the fact that the inspector context menu would not appear when
right clicking on the documentElement breadcrumb node.
Adds a global .eslintrc file for all source files in /browser/devtools.
This file defines a set of global variables that are commonly used in
/browser/devtools code.
The files that import modules with Cu.import will need to define their
own globals as /* globals ... */ comments.
This file also defines the configuration for all the rules we want to
use.
This also adds a set of .eslintrc files, one per test directory in
/browser/devtools. Each of these files extend from one of 2 parent config
files: .eslintrc.xpcshell or .eslintrc.mochitest.
The parent config define the set of globals these types of tests have
access to (test runner functions, assertion functions, etc.).
Finally, this also adds .eslintrc files in /toolkit/devtools for code and
tests, which just extend from their counterparts in /browser/devtools.
The node-attribute-parser now marks uris to css and js files as cssresource and jsresource.
Thanks to this, the inspector can open the corresponding files in the style-editor and
debugger rather than just opening a new tab with the source.
This makes use of 2 new toolbox methods: viewSourceInStyleEditor and viewSourceInDebugger.
This part adds contextual menu items that become enabled when
the user right clicks on an attribute that has a link.
Depending on the nature of the link, a new tab will be opened or a node
selected.
The user can also choose to copy the link in the clipboard.
This prevents the WalkerActor from failing at handling various requests when
those requests are about DeaedNodes. Indeed, the async nature of the devtools
protocol means that the client could be asking for information about a node that
doesn't exist anymore because it was part of a page that was navigated away from.
The WalkerActor should know how to deal with such cases, so the patch adds a
number of early returns and a new test for them.
This helps avoiding the inspector-panel from going blank in some edge cases.
This fixes 2 problems related to the split console not opening when it should.
1 - After the inspector selection mode (pick mode) was canceled with ESC, pressing ESC once
again did not open the split console, because the toolbox did not have the focus.
2 - The markup-view tooltip (used to preview images) was eating the first ESC keypress when
the markup-view was focused, even though the tooltip was hidden. This was forcing users to
press ESC twice to open the split console.
Whenever something changed on the selected element (pseudo, attribute), the
breadcrumbs widget used to loop over all breadcrumbs buttons and re-create the
markup for each.
Now, we cache a string version of the text displayed in a button and compare
the new value to that in the loop, to skip DOM updates.
Additionally, the breadcrumbs widget used to update itself after all markup mutations
in the DOM tree displayed in the inspector. The update method now looks at the mutations
array and early return if none of them actually impact the displayed breadcrumbs.
This makes the inspector search input show suggestions for nodes in all documents in
the content page. Selecting a suggestion also now selects the corresponding nodes
even when they are inside nested frames.
This adds a new icon, next to the searchbox (like in the debugger) to expand
or collapse the sidebar panel in the inspector.
The state is *not* persisted yet when the toolbox is closed.
The button is hidden when the toolbox host switches to 'side'.
LayoutHelpers.getAdjustedBoxQuads now returns all quads that el.getBoxQuads returns.
The BoxModelHighlighter calculates an outer rect based on these to draw the guides.
And if the element has more than 1 quad (inline element that spans line breaks), then all quads are
highlighted.
Also all related tests were modified and a couple of new tests were added.