Changeset 243611 in webkit
- Timestamp:
- Mar 28, 2019, 11:08:03 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
html/CanvasBase.cpp (modified) (4 diffs)
-
inspector/agents/InspectorCanvasAgent.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243610 r243611 1 2019-03-28 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: Canvas: unbinding a canvas should always remove the agent as an observer 4 https://bugs.webkit.org/show_bug.cgi?id=196324 5 <rdar://problem/49357109> 6 7 Reviewed by Matt Baker. 8 9 No change in functionality. 10 11 * html/CanvasBase.cpp: 12 (WebCore::CanvasBase::notifyObserversCanvasChanged): 13 (WebCore::CanvasBase::notifyObserversCanvasResized): 14 (WebCore::CanvasBase::notifyObserversCanvasDestroyed): 15 16 * inspector/agents/InspectorCanvasAgent.cpp: 17 (WebCore::InspectorCanvasAgent::frameNavigated): 18 (WebCore::InspectorCanvasAgent::bindCanvas): 19 (WebCore::InspectorCanvasAgent::unbindCanvas): 20 1 21 2019-03-28 Alicia Boya García <aboya@igalia.com> 2 22 -
trunk/Source/WebCore/html/CanvasBase.cpp
r237777 r243611 32 32 #include "FloatRect.h" 33 33 #include "InspectorInstrumentation.h" 34 #include <wtf/Vector.h> 34 35 35 36 namespace WebCore { … … 70 71 void CanvasBase::notifyObserversCanvasChanged(const FloatRect& rect) 71 72 { 72 for (auto& observer : m_observers)73 for (auto& observer : copyToVector(m_observers)) 73 74 observer->canvasChanged(*this, rect); 74 75 } … … 76 77 void CanvasBase::notifyObserversCanvasResized() 77 78 { 78 for (auto& observer : m_observers)79 for (auto& observer : copyToVector(m_observers)) 79 80 observer->canvasResized(*this); 80 81 } … … 84 85 ASSERT(!m_didNotifyObserversCanvasDestroyed); 85 86 86 for (auto& observer : m_observers)87 for (auto& observer : copyToVector(m_observers)) 87 88 observer->canvasDestroyed(*this); 88 89 -
trunk/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp
r243400 r243611 379 379 380 380 for (auto* inspectorCanvas : inspectorCanvases) { 381 inspectorCanvas->context().canvasBase().removeObserver(*this);382 383 381 String identifier = unbindCanvas(*inspectorCanvas); 384 382 m_frontendDispatcher->canvasRemoved(identifier); … … 648 646 InspectorCanvas& InspectorCanvasAgent::bindCanvas(CanvasRenderingContext& context, bool captureBacktrace) 649 647 { 650 context.canvasBase().addObserver(*this);651 652 648 auto inspectorCanvas = InspectorCanvas::create(context); 653 649 m_identifierToInspectorCanvas.set(inspectorCanvas->identifier(), inspectorCanvas.copyRef()); 650 651 inspectorCanvas->context().canvasBase().addObserver(*this); 654 652 655 653 m_frontendDispatcher->canvasAdded(inspectorCanvas->buildObjectForCanvas(captureBacktrace)); … … 683 681 #endif 684 682 683 inspectorCanvas.context().canvasBase().removeObserver(*this); 684 685 685 String identifier = inspectorCanvas.identifier(); 686 686 m_identifierToInspectorCanvas.remove(identifier);
Note:
See TracChangeset
for help on using the changeset viewer.