WebKit Bugzilla
Attachment 369758 Details for
Bug 174272
: LayoutTest inspector/canvas/css-canvas-clients.html is a flaky timeout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
[Patch] Extra Logging
174272.diff (text/plain), 10.84 KB, created by
Devin Rousso
on 2019-05-13 11:57:33 PDT
(
hide
)
Description:
[Patch] Extra Logging
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2019-05-13 11:57:33 PDT
Size:
10.84 KB
patch
obsolete
>diff --git a/LayoutTests/inspector/canvas/css-canvas-clients-expected.txt b/LayoutTests/inspector/canvas/css-canvas-clients-expected.txt >index 9aeb3fdc694..88828866f53 100644 >--- a/LayoutTests/inspector/canvas/css-canvas-clients-expected.txt >+++ b/LayoutTests/inspector/canvas/css-canvas-clients-expected.txt >@@ -10,7 +10,7 @@ PASS: There should be no client nodes. > -- Running test case: Canvas.CSSCanvasClients.Create > PASS: Canvas with created client should have CSS name "css-canvas". > PASS: There should be one client node. >-PASS: Client node "div" is valid. >+PASS: Client node "div.css-canvas-client" is valid. > > -- Running test case: Canvas.CSSCanvasClients.Destroy > PASS: Canvas with destroyed client should have CSS name "css-canvas". >diff --git a/LayoutTests/inspector/canvas/css-canvas-clients.html b/LayoutTests/inspector/canvas/css-canvas-clients.html >index 7fbaf6a2c20..f83d0d69a12 100644 >--- a/LayoutTests/inspector/canvas/css-canvas-clients.html >+++ b/LayoutTests/inspector/canvas/css-canvas-clients.html >@@ -4,7 +4,11 @@ > <script src="../../http/tests/inspector/resources/inspector-test.js"></script> > <script> > function load() { >- window.context2d = document.getCSSCanvasContext("2d", "css-canvas", 10, 10); >+ window.cssCanvasContext2d = document.getCSSCanvasContext("2d", "css-canvas", 10, 10); >+ if (!window.cssCanvasContext2d) >+ TestPage.addResult(`FAIL: unable to initialize cssCanvasContext2d.`) >+ else if (!(window.cssCanvasContext2d instanceof CanvasRenderingContext2D)) >+ TestPage.addResult(`FAIL: cssCanvasContext2d is a ${window.cssCanvasContext2d.constructor.name} instead of a CanvasRenderingContext2D.`) > > runTest(); > } >@@ -12,7 +16,9 @@ function load() { > let cssCanvasClients = []; > > function createCSSCanvasClient() { >- cssCanvasClients.push(document.body.appendChild(document.createElement("div"))); >+ let div = document.body.appendChild(document.createElement("div")); >+ div.classList.add("css-canvas-client"); >+ cssCanvasClients.push(div); > } > > function destroyCSSCanvasClients() { >@@ -25,6 +31,8 @@ function destroyCSSCanvasClients() { > } > > function test() { >+ InspectorTest.debug(); >+ > let suite = InspectorTest.createAsyncSuite("Canvas.CSSCanvasClients"); > > function logClientNodes(clientNodes) { >@@ -111,7 +119,7 @@ function test() { > } > </script> > <style> >- div { >+ .css-canvas-client { > width: 10px; > height: 10px; > background-image: -webkit-canvas(css-canvas); >diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations >index f273f6d3d8e..8c35987da17 100644 >--- a/LayoutTests/platform/mac/TestExpectations >+++ b/LayoutTests/platform/mac/TestExpectations >@@ -1031,7 +1031,6 @@ webkit.org/b/150978 fast/canvas/webgl/oes-texture-half-float-linear.html [ Pass > webkit.org/b/173931 inspector/canvas/context-attributes.html [ Pass Timeout ] > webkit.org/b/178028 inspector/canvas/create-context-2d.html [ Pass Timeout ] > webkit.org/b/174066 inspector/canvas/create-context-webgl2.html [ Pass Timeout ] >-webkit.org/b/174272 inspector/canvas/css-canvas-clients.html [ Pass Failure ] > webkit.org/b/174066 inspector/canvas/recording-webgl2.html [ Pass Failure Timeout ] > webkit.org/b/174066 inspector/canvas/recording-webgl2-snapshots.html [ Pass Failure Timeout ] > webkit.org/b/174066 inspector/canvas/shaderProgram-add-remove-webgl2.html [ Pass Failure Timeout ] >diff --git a/Source/WebCore/css/CSSCanvasValue.cpp b/Source/WebCore/css/CSSCanvasValue.cpp >index b880deeacd6..d82b95f1ddc 100644 >--- a/Source/WebCore/css/CSSCanvasValue.cpp >+++ b/Source/WebCore/css/CSSCanvasValue.cpp >@@ -69,8 +69,13 @@ FloatSize CSSCanvasValue::fixedSize(const RenderElement* renderer) > > HTMLCanvasElement* CSSCanvasValue::element(Document& document) > { >+ WTFLogAlways(">>> IN -> CSSCanvasValue::element"); >+ >+ WTFLogAlways(">>> CHECK -> !m_element"); > if (!m_element) { > m_element = document.getCSSCanvasElement(m_name); >+ >+ WTFLogAlways(">>> CHECK -> !m_element"); > if (!m_element) > return nullptr; > m_element->addObserver(m_canvasObserver); >diff --git a/Source/WebCore/css/CSSCanvasValue.h b/Source/WebCore/css/CSSCanvasValue.h >index 74f8762a387..def5f2bcff3 100644 >--- a/Source/WebCore/css/CSSCanvasValue.h >+++ b/Source/WebCore/css/CSSCanvasValue.h >@@ -46,6 +46,7 @@ public: > FloatSize fixedSize(const RenderElement*); > > HTMLCanvasElement* element() const { return m_element; } >+ HTMLCanvasElement* element(Document&); > > bool isPending() const { return false; } > void loadSubimages(CachedResourceLoader&, const ResourceLoaderOptions&) { } >@@ -97,8 +98,6 @@ private: > void canvasResized(HTMLCanvasElement&); > void canvasDestroyed(HTMLCanvasElement&); > >- HTMLCanvasElement* element(Document&); >- > CanvasObserverProxy m_canvasObserver; > > // The name of the canvas. >diff --git a/Source/WebCore/css/CSSImageGeneratorValue.cpp b/Source/WebCore/css/CSSImageGeneratorValue.cpp >index ffdd3d0aa65..f3f89e96865 100644 >--- a/Source/WebCore/css/CSSImageGeneratorValue.cpp >+++ b/Source/WebCore/css/CSSImageGeneratorValue.cpp >@@ -68,25 +68,33 @@ CSSImageGeneratorValue::~CSSImageGeneratorValue() = default; > > void CSSImageGeneratorValue::addClient(RenderElement& renderer) > { >+ WTFLogAlways(">>> IN -> CSSImageGeneratorValue::addClient"); >+ > if (m_clients.isEmpty()) > ref(); > > m_clients.add(&renderer); > >+ WTFLogAlways(">>> CHECK -> is<CSSCanvasValue>(this)"); > if (is<CSSCanvasValue>(this)) { >- if (HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element()) >+ WTFLogAlways(">>> CHECK -> HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element(renderer.document())"); >+ if (HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element(renderer.document())) > InspectorInstrumentation::didChangeCSSCanvasClientNodes(*canvasElement); > } > } > > void CSSImageGeneratorValue::removeClient(RenderElement& renderer) > { >+ WTFLogAlways(">>> IN -> CSSImageGeneratorValue::removeClient"); >+ > ASSERT(m_clients.contains(&renderer)); > if (!m_clients.remove(&renderer)) > return; > >+ WTFLogAlways(">>> CHECK -> is<CSSCanvasValue>(this)"); > if (is<CSSCanvasValue>(this)) { >- if (HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element()) >+ WTFLogAlways(">>> CHECK -> HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element(renderer.document())"); >+ if (HTMLCanvasElement* canvasElement = downcast<CSSCanvasValue>(this)->element(renderer.document())) > InspectorInstrumentation::didChangeCSSCanvasClientNodes(*canvasElement); > } > >diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp >index a2fbd8fdc8a..5402603288d 100644 >--- a/Source/WebCore/dom/Document.cpp >+++ b/Source/WebCore/dom/Document.cpp >@@ -5989,9 +5989,19 @@ Optional<RenderingContext> Document::getCSSCanvasContext(const String& type, con > > HTMLCanvasElement* Document::getCSSCanvasElement(const String& name) > { >+ WTFLogAlways(">>> IN -> Document::getCSSCanvasElement"); >+ > RefPtr<HTMLCanvasElement>& element = m_cssCanvasElements.add(name, nullptr).iterator->value; >+ >+ WTFLogAlways(">>> CHECK -> !element"); > if (!element) > element = HTMLCanvasElement::create(*this); >+ >+ if (element) >+ WTFLogAlways(">>> PASS -> element"); >+ else >+ WTFLogAlways(">>> FAIL -> element"); >+ > return element.get(); > } > >diff --git a/Source/WebCore/html/CanvasBase.cpp b/Source/WebCore/html/CanvasBase.cpp >index 9f166efdf09..6488f7c06c1 100644 >--- a/Source/WebCore/html/CanvasBase.cpp >+++ b/Source/WebCore/html/CanvasBase.cpp >@@ -53,16 +53,22 @@ CanvasRenderingContext* CanvasBase::renderingContext() const > > void CanvasBase::addObserver(CanvasObserver& observer) > { >+ WTFLogAlways(">>> IN -> CanvasBase::addObserver"); >+ > m_observers.add(&observer); > >+ WTFLogAlways(">>> CHECK -> is<CSSCanvasValue::CanvasObserverProxy>(observer)"); > if (is<CSSCanvasValue::CanvasObserverProxy>(observer)) > InspectorInstrumentation::didChangeCSSCanvasClientNodes(*this); > } > > void CanvasBase::removeObserver(CanvasObserver& observer) > { >+ WTFLogAlways(">>> IN -> CanvasBase::removeObserver"); >+ > m_observers.remove(&observer); > >+ WTFLogAlways(">>> CHECK -> is<CSSCanvasValue::CanvasObserverProxy>(observer)"); > if (is<CSSCanvasValue::CanvasObserverProxy>(observer)) > InspectorInstrumentation::didChangeCSSCanvasClientNodes(*this); > } >diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp >index a250948c98e..3b266497ef2 100644 >--- a/Source/WebCore/inspector/InspectorInstrumentation.cpp >+++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp >@@ -1007,6 +1007,9 @@ void InspectorInstrumentation::didSendWebSocketFrameImpl(InstrumentingAgents& in > > void InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl(InstrumentingAgents& instrumentingAgents, CanvasBase& canvasBase) > { >+ WTFLogAlways(">>> IN -> InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl"); >+ >+ WTFLogAlways(">>> CHECK -> InspectorCanvasAgent* canvasAgent = instrumentingAgents.inspectorCanvasAgent()"); > if (InspectorCanvasAgent* canvasAgent = instrumentingAgents.inspectorCanvasAgent()) > canvasAgent->didChangeCSSCanvasClientNodes(canvasBase); > } >diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h >index c86453f1425..eb0f6b0e483 100644 >--- a/Source/WebCore/inspector/InspectorInstrumentation.h >+++ b/Source/WebCore/inspector/InspectorInstrumentation.h >@@ -1285,7 +1285,11 @@ inline void InspectorInstrumentation::didHandleMemoryPressure(Page& page, Critic > > inline void InspectorInstrumentation::didChangeCSSCanvasClientNodes(CanvasBase& canvasBase) > { >+ WTFLogAlways(">>> IN -> InspectorInstrumentation::didChangeCSSCanvasClientNodes"); >+ > FAST_RETURN_IF_NO_FRONTENDS(void()); >+ >+ WTFLogAlways(">>> CHECK -> InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(canvasBase.scriptExecutionContext())"); > if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(canvasBase.scriptExecutionContext())) > didChangeCSSCanvasClientNodesImpl(*instrumentingAgents, canvasBase); > } >diff --git a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >index a33b6032b7f..d08615c74ae 100644 >--- a/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >+++ b/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp >@@ -377,6 +377,8 @@ void InspectorCanvasAgent::frameNavigated(Frame& frame) > > void InspectorCanvasAgent::didChangeCSSCanvasClientNodes(CanvasBase& canvasBase) > { >+ WTFLogAlways(">>> IN - InspectorCanvasAgent::didChangeCSSCanvasClientNodes"); >+ > auto* context = canvasBase.renderingContext(); > if (!context) { > ASSERT_NOT_REACHED();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 174272
:
369660
|
369661
|
369665
|
369666
|
369682
|
369689
|
369691
|
369693
|
369696
|
369697
|
369701
|
369703
|
369704
|
369705
|
369706
|
369713
|
369716
|
369720
|
369758
|
369775
|
369859
|
433685