diff --git a/devtools/client/inspector/shared/highlighters-overlay.js b/devtools/client/inspector/shared/highlighters-overlay.js index 7177e1426f0d..b6a064e6f010 100644 --- a/devtools/client/inspector/shared/highlighters-overlay.js +++ b/devtools/client/inspector/shared/highlighters-overlay.js @@ -533,7 +533,7 @@ class HighlightersOverlay { if (node.displayType === "subgrid" && await this.canGetParentGridNode()) { // Show a translucent highlight of the parent grid container if the given node is - // a subgrid. + // a subgrid and the parent grid container is not highlighted. const parentGridNode = await this.walker.getParentGridNode(node); this.subgridToParentMap.set(node, parentGridNode); await this.showParentGridHighlighter(parentGridNode); @@ -588,6 +588,11 @@ class HighlightersOverlay { * The NodeFront of the parent grid container element to highlight. */ async showParentGridHighlighter(node) { + if (this.gridHighlighters.has(node)) { + // Parent grid container already highlighted. + return; + } + const highlighter = await this._getGridHighlighter(node, true); if (!highlighter) { return; @@ -624,12 +629,25 @@ class HighlightersOverlay { this.extraGridHighlighterPool.push(highlighter); this.state.grids.delete(node); + // Given node was a subgrid, remove its entry from the subgridToParentMap and + // hide its parent grid container highlight. if (this.subgridToParentMap.has(node)) { const parentGridNode = this.subgridToParentMap.get(node); this.subgridToParentMap.delete(node); await this.hideParentGridHighlighter(parentGridNode); } + // Check if the given node matches any of the subgrid's parent grid container. + // Since the subgrid and its parent grid container were previously both highlighted + // and the parent grid container (the given node) has just been hidden, show a + // translucent highlight of the parent grid container. + for (const parentGridNode of this.subgridToParentMap.values()) { + if (parentGridNode === node) { + await this.showParentGridHighlighter(parentGridNode); + break; + } + } + this._toggleRuleViewIcon(node, false, ".ruleview-grid"); if (this.isGridHighlighterTimerActive && !this.gridHighlighters.size) { diff --git a/testing/web-platform/meta/media-capabilities/decodingInfo.any.js.ini b/testing/web-platform/meta/media-capabilities/decodingInfo.any.js.ini index 4221abaa8dca..d0e545874ad7 100644 --- a/testing/web-platform/meta/media-capabilities/decodingInfo.any.js.ini +++ b/testing/web-platform/meta/media-capabilities/decodingInfo.any.js.ini @@ -11,6 +11,7 @@ [decodingInfo.any.worker.html] expected: + if release_or_beta and (os == "android") and not debug: OK if not debug and (os == "android"): CRASH if debug: CRASH [Test that decodingInfo returns a valid MediaCapabilitiesInfo objects] diff --git a/testing/web-platform/meta/media-source/mediasource-seek-beyond-duration.html.ini b/testing/web-platform/meta/media-source/mediasource-seek-beyond-duration.html.ini index b0007b6b17d3..e2dfe586d810 100644 --- a/testing/web-platform/meta/media-source/mediasource-seek-beyond-duration.html.ini +++ b/testing/web-platform/meta/media-source/mediasource-seek-beyond-duration.html.ini @@ -1,9 +1,6 @@ [mediasource-seek-beyond-duration.html] disabled: if (os == "android") and not e10s: https://bugzilla.mozilla.org/show_bug.cgi?id=1499003 - if (os == "android") and not e10s: bug 1550895 (frequently fails on geckoview) + if (os == "android") and e10s: bug 1550895 (frequently fails on geckoview) expected: ERROR - [Test seeking beyond updated media duration.] - expected: - if (os == "android") and debug: FAIL