Changeset 73927 in webkit
- Timestamp:
- Dec 13, 2010 10:21:38 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r73926 r73927 1 2010-12-13 Justin Schuh <jschuh@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 HTMLCanvasElement should handle multiple observers. 6 https://bugs.webkit.org/show_bug.cgi?id=50899 7 8 * fast/canvas/canvas-bg-multiple-removal-expected.txt: Added. 9 * fast/canvas/canvas-bg-multiple-removal.html: Added. 10 1 11 2010-12-13 Mihai Parparita <mihaip@chromium.org> 2 12 -
trunk/WebCore/ChangeLog
r73926 r73927 1 2010-12-13 Justin Schuh <jschuh@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 HTMLCanvasElement should handle multiple observers. 6 https://bugs.webkit.org/show_bug.cgi?id=50899 7 8 Test: fast/canvas/canvas-bg-multiple-removal.html 9 10 * css/CSSCanvasValue.cpp: 11 (WebCore::CSSCanvasValue::~CSSCanvasValue): 12 (WebCore::CSSCanvasValue::canvasDestroyed): 13 (WebCore::CSSCanvasValue::element): 14 * html/HTMLCanvasElement.cpp: 15 (WebCore::HTMLCanvasElement::HTMLCanvasElement): 16 (WebCore::HTMLCanvasElement::~HTMLCanvasElement): 17 (WebCore::HTMLCanvasElement::addObserver): 18 (WebCore::HTMLCanvasElement::removeObserver): 19 (WebCore::HTMLCanvasElement::didDraw): 20 (WebCore::HTMLCanvasElement::reset): 21 * html/HTMLCanvasElement.h: 22 1 23 2010-12-13 Mihai Parparita <mihaip@chromium.org> 2 24 -
trunk/WebCore/css/CSSCanvasValue.cpp
r65449 r73927 35 35 { 36 36 if (m_element) 37 m_element-> setObserver(0);37 m_element->removeObserver(this); 38 38 } 39 39 … … 63 63 { 64 64 ASSERT(element == m_element); 65 if (element == m_element) 66 m_element = 0; 65 m_element = 0; 67 66 } 68 67 … … 80 79 if (!m_element) 81 80 return 0; 82 m_element-> setObserver(this);81 m_element->addObserver(this); 83 82 } 84 83 return m_element; -
trunk/WebCore/html/HTMLCanvasElement.cpp
r73925 r73927 72 72 HTMLCanvasElement::HTMLCanvasElement(const QualifiedName& tagName, Document* document) 73 73 : HTMLElement(tagName, document) 74 , m_observer(0)75 74 , m_size(DefaultWidth, DefaultHeight) 76 75 , m_ignoreReset(false) … … 94 93 HTMLCanvasElement::~HTMLCanvasElement() 95 94 { 96 if (m_observer) 97 m_observer->canvasDestroyed(this); 95 HashSet<CanvasObserver*>::iterator end = m_observers.end(); 96 for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) 97 (*it)->canvasDestroyed(this); 98 98 } 99 99 … … 116 116 m_rendererIsCanvas = false; 117 117 return HTMLElement::createRenderer(arena, style); 118 } 119 120 void HTMLCanvasElement::addObserver(CanvasObserver* observer) 121 { 122 m_observers.add(observer); 123 } 124 125 void HTMLCanvasElement::removeObserver(CanvasObserver* observer) 126 { 127 m_observers.remove(observer); 118 128 } 119 129 … … 201 211 } 202 212 203 if (m_observer) 204 m_observer->canvasChanged(this, rect); 213 HashSet<CanvasObserver*>::iterator end = m_observers.end(); 214 for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) 215 (*it)->canvasChanged(this, rect); 205 216 } 206 217 … … 239 250 } 240 251 241 if (m_observer) 242 m_observer->canvasResized(this); 252 HashSet<CanvasObserver*>::iterator end = m_observers.end(); 253 for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) 254 (*it)->canvasResized(this); 243 255 } 244 256 -
trunk/WebCore/html/HTMLCanvasElement.h
r73744 r73927 66 66 virtual ~HTMLCanvasElement(); 67 67 68 void setObserver(CanvasObserver* observer) { m_observer = observer; } 68 void addObserver(CanvasObserver* observer); 69 void removeObserver(CanvasObserver* observer); 69 70 70 71 // Attributes and functions exposed to script … … 139 140 bool hasCreatedImageBuffer() const { return m_hasCreatedImageBuffer; } 140 141 141 CanvasObserver* m_observer;142 HashSet<CanvasObserver*> m_observers; 142 143 143 144 IntSize m_size;
Note: See TracChangeset
for help on using the changeset viewer.