Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Side by Side Diff: Source/core/rendering/svg/RenderSVGResourceContainer.cpp

Issue 787563003: Fix RenderSVGResourceContainer task re-ordering bug (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove unwanted change Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 216
217 // Update cached resources of pending clients. 217 // Update cached resources of pending clients.
218 const SVGDocumentExtensions::SVGPendingElements::const_iterator end = client s->end(); 218 const SVGDocumentExtensions::SVGPendingElements::const_iterator end = client s->end();
219 for (SVGDocumentExtensions::SVGPendingElements::const_iterator it = clients- >begin(); it != end; ++it) { 219 for (SVGDocumentExtensions::SVGPendingElements::const_iterator it = clients- >begin(); it != end; ++it) {
220 ASSERT((*it)->hasPendingResources()); 220 ASSERT((*it)->hasPendingResources());
221 extensions.clearHasPendingResourcesIfPossible(*it); 221 extensions.clearHasPendingResourcesIfPossible(*it);
222 RenderObject* renderer = (*it)->renderer(); 222 RenderObject* renderer = (*it)->renderer();
223 if (!renderer) 223 if (!renderer)
224 continue; 224 continue;
225 225
226 StyleDifference diff; 226 StyleDifference diff;
Sami 2014/12/08 11:27:34 Looks like these two lines could go inside the if
alex clarke (OOO till 29th) 2015/01/28 16:09:58 Acknowledged.
227 diff.setNeedsFullLayout(); 227 diff.setNeedsFullLayout();
228 SVGResourcesCache::clientStyleChanged(renderer, diff, renderer->style()) ; 228 if (renderer->node() && renderer->node()->isSVGElement()) {
kouhei (in TOK) 2014/12/08 11:11:17 Please add a comment above this line that SVGPendi
alex clarke (OOO till 29th) 2015/01/28 16:09:58 Acknowledged.
229 SVGResourcesCache::clientStyleChanged(renderer, diff, renderer->styl e());
230 }
229 renderer->setNeedsLayoutAndFullPaintInvalidation(); 231 renderer->setNeedsLayoutAndFullPaintInvalidation();
230 } 232 }
231 } 233 }
232 234
233 static inline void removeFromCacheAndInvalidateDependencies(RenderObject* object , bool needsLayout) 235 static inline void removeFromCacheAndInvalidateDependencies(RenderObject* object , bool needsLayout)
234 { 236 {
235 ASSERT(object); 237 ASSERT(object);
236 if (SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObj ect(object)) { 238 if (SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObj ect(object)) {
237 if (RenderSVGResourceFilter* filter = resources->filter()) 239 if (RenderSVGResourceFilter* filter = resources->filter())
238 filter->removeClientFromCache(object); 240 filter->removeClientFromCache(object);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 // This will process the rest of the ancestors. 292 // This will process the rest of the ancestors.
291 toRenderSVGResourceContainer(current)->removeAllClientsFromCache(); 293 toRenderSVGResourceContainer(current)->removeAllClientsFromCache();
292 break; 294 break;
293 } 295 }
294 296
295 current = current->parent(); 297 current = current->parent();
296 } 298 }
297 } 299 }
298 300
299 } 301 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698