Changeset 249447 in webkit


Ignore:
Timestamp:
Sep 3, 2019 5:35:12 PM (5 years ago)
Author:
Devin Rousso
Message:

REGRESSION (r249132): [macOS WK2] Layout Test inspector/layers/layerTreeDidChange.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=201435

Reviewed by Joseph Pecoraro.

r249132 changed the InspectorLayerTreeAgent to reset the flag that controls whether the
frontend should be notified about layer changes when disable is called, which happens when
Web Inspector disconnects.

Sometimes, a layer change event can be "in flight" when this happens, meaning that the Web
Inspector frontend can receive a layer change event before it requests the new layer data.

This is normally handled by the Web Inspector UI, as the associated DOM node would no longer
exist, so the UI paths would early return.

  • inspector/layers/layerTreeDidChange.html:

Only listen for layer change events once we've triggered a guaranteed layer update, as any
"in flight" events from previous tests could be incorrectly logged as part of this test.

Location:
trunk/LayoutTests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r249445 r249447  
     12019-09-03  Devin Rousso  <drousso@apple.com>
     2
     3        REGRESSION (r249132): [macOS WK2] Layout Test inspector/layers/layerTreeDidChange.html is a flaky failure
     4        https://bugs.webkit.org/show_bug.cgi?id=201435
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        r249132 changed the `InspectorLayerTreeAgent` to reset the flag that controls whether the
     9        frontend should be notified about layer changes when `disable` is called, which happens when
     10        Web Inspector disconnects.
     11
     12        Sometimes, a layer change event can be "in flight" when this happens, meaning that the Web
     13        Inspector frontend can receive a layer change event before it requests the new layer data.
     14
     15        This is normally handled by the Web Inspector UI, as the associated DOM node would no longer
     16        exist, so the UI paths would early return.
     17
     18        * inspector/layers/layerTreeDidChange.html:
     19        Only listen for layer change events once we've triggered a guaranteed layer update, as any
     20        "in flight" events from previous tests could be incorrectly logged as part of this test.
     21
    1222019-09-03  Devin Rousso  <drousso@apple.com>
    223
  • trunk/LayoutTests/inspector/layers/layerTreeDidChange.html

    r236884 r249447  
    3131        test(resolve, reject) {
    3232            let layerTreeDidChangeCount = 0;
    33             let handleLayerTreeDidChange = WI.layerTreeManager.addEventListener(WI.LayerTreeManager.Event.LayerTreeDidChange, (event) => {
    34                 ++layerTreeDidChangeCount;
     33            let testPageDidAppendChildCount = 0;
    3534
    36                 InspectorTest.log("Layer tree changed");
    37 
    38                 if (layerTreeDidChangeCount === 1) {
    39                     WI.layerTreeManager.layersForNode(documentNode, (layers) => {
    40                         InspectorTest.log("Creating layer...");
    41                         InspectorTest.evaluateInPage(`addCompositedLayer()`);
    42                     });
    43                 }
    44             });
    45 
    46             let testPageDidAppendChildCount = 0;
     35            let handleLayerTreeDidChange = null;
    4736            let handleTestPageDidAppendChild = InspectorTest.addEventListener("TestPageDidAppendChild", (event) => {
    4837                ++testPageDidAppendChildCount;
     
    5948
    6049            WI.layerTreeManager.layersForNode(documentNode, (layers) => {
     50                handleLayerTreeDidChange = WI.layerTreeManager.addEventListener(WI.LayerTreeManager.Event.LayerTreeDidChange, (event) => {
     51                    ++layerTreeDidChangeCount;
     52
     53                    InspectorTest.log("Layer tree changed");
     54
     55                    if (layerTreeDidChangeCount === 1) {
     56                        WI.layerTreeManager.layersForNode(documentNode, (layers) => {
     57                            InspectorTest.log("Creating layer...");
     58                            InspectorTest.evaluateInPage(`addCompositedLayer()`);
     59                        });
     60                    }
     61                });
     62
    6163                InspectorTest.log("Creating layer...");
    6264                InspectorTest.evaluateInPage(`addCompositedLayer()`);
Note: See TracChangeset for help on using the changeset viewer.