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

Side by Side Diff: Source/core/layout/svg/SVGResources.cpp

Issue 1302713003: Don't register excessive pending SVG resources (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 months 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 | Annotate | Revision Log
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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 ASSERT(!m_fillStrokeData); 367 ASSERT(!m_fillStrokeData);
368 m_linkedResource->removeAllClientsFromCache(); 368 m_linkedResource->removeAllClientsFromCache();
369 m_linkedResource = nullptr; 369 m_linkedResource = nullptr;
370 return; 370 return;
371 } 371 }
372 372
373 switch (resource->resourceType()) { 373 switch (resource->resourceType()) {
374 case MaskerResourceType: 374 case MaskerResourceType:
375 if (!m_clipperFilterMaskerData) 375 if (!m_clipperFilterMaskerData)
376 break; 376 break;
377 if (m_clipperFilterMaskerData->masker == resource) { 377 if (m_clipperFilterMaskerData->masker == resource)
378 m_clipperFilterMaskerData->masker->removeAllClientsFromCache();
379 m_clipperFilterMaskerData->masker = nullptr; 378 m_clipperFilterMaskerData->masker = nullptr;
380 }
381 break; 379 break;
382 case MarkerResourceType: 380 case MarkerResourceType:
383 if (!m_markerData) 381 if (!m_markerData)
384 break; 382 break;
385 if (m_markerData->markerStart == resource) { 383 if (m_markerData->markerStart == resource)
386 m_markerData->markerStart->removeAllClientsFromCache();
387 m_markerData->markerStart = nullptr; 384 m_markerData->markerStart = nullptr;
388 } 385 if (m_markerData->markerMid == resource)
389 if (m_markerData->markerMid == resource) {
390 m_markerData->markerMid->removeAllClientsFromCache();
391 m_markerData->markerMid = nullptr; 386 m_markerData->markerMid = nullptr;
392 } 387 if (m_markerData->markerEnd == resource)
393 if (m_markerData->markerEnd == resource) {
394 m_markerData->markerEnd->removeAllClientsFromCache();
395 m_markerData->markerEnd = nullptr; 388 m_markerData->markerEnd = nullptr;
396 }
397 break; 389 break;
398 case PatternResourceType: 390 case PatternResourceType:
399 case LinearGradientResourceType: 391 case LinearGradientResourceType:
400 case RadialGradientResourceType: 392 case RadialGradientResourceType:
401 if (!m_fillStrokeData) 393 if (!m_fillStrokeData)
402 break; 394 break;
403 if (m_fillStrokeData->fill == resource) { 395 if (m_fillStrokeData->fill == resource)
404 m_fillStrokeData->fill->removeAllClientsFromCache();
405 m_fillStrokeData->fill = nullptr; 396 m_fillStrokeData->fill = nullptr;
406 } 397 if (m_fillStrokeData->stroke == resource)
407 if (m_fillStrokeData->stroke == resource) {
408 m_fillStrokeData->stroke->removeAllClientsFromCache();
409 m_fillStrokeData->stroke = nullptr; 398 m_fillStrokeData->stroke = nullptr;
410 }
411 break; 399 break;
412 case FilterResourceType: 400 case FilterResourceType:
413 if (!m_clipperFilterMaskerData) 401 if (!m_clipperFilterMaskerData)
414 break; 402 break;
415 if (m_clipperFilterMaskerData->filter == resource) { 403 if (m_clipperFilterMaskerData->filter == resource)
416 m_clipperFilterMaskerData->filter->removeAllClientsFromCache();
417 m_clipperFilterMaskerData->filter = nullptr; 404 m_clipperFilterMaskerData->filter = nullptr;
418 }
419 break; 405 break;
420 case ClipperResourceType: 406 case ClipperResourceType:
421 if (!m_clipperFilterMaskerData) 407 if (!m_clipperFilterMaskerData)
422 break; 408 break;
423 if (m_clipperFilterMaskerData->clipper == resource) { 409 if (m_clipperFilterMaskerData->clipper == resource)
424 m_clipperFilterMaskerData->clipper->removeAllClientsFromCache();
425 m_clipperFilterMaskerData->clipper = nullptr; 410 m_clipperFilterMaskerData->clipper = nullptr;
426 }
427 break; 411 break;
428 default: 412 default:
429 ASSERT_NOT_REACHED(); 413 ASSERT_NOT_REACHED();
430 } 414 }
431 } 415 }
432 416
433 void SVGResources::buildSetOfResources(HashSet<LayoutSVGResourceContainer*>& set ) 417 void SVGResources::buildSetOfResources(HashSet<LayoutSVGResourceContainer*>& set )
434 { 418 {
435 if (!hasResourceData()) 419 if (!hasResourceData())
436 return; 420 return;
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 if (LayoutSVGResourcePaintServer* stroke = m_fillStrokeData->stroke) 667 if (LayoutSVGResourcePaintServer* stroke = m_fillStrokeData->stroke)
684 fprintf(stderr, " |-> Stroke : %p (node=%p)\n", stroke, stroke-> element()); 668 fprintf(stderr, " |-> Stroke : %p (node=%p)\n", stroke, stroke-> element());
685 } 669 }
686 670
687 if (m_linkedResource) 671 if (m_linkedResource)
688 fprintf(stderr, " |-> xlink:href : %p (node=%p)\n", m_linkedResource, m_ linkedResource->element()); 672 fprintf(stderr, " |-> xlink:href : %p (node=%p)\n", m_linkedResource, m_ linkedResource->element());
689 } 673 }
690 #endif 674 #endif
691 675
692 } 676 }
OLDNEW
« no previous file with comments | « Source/core/layout/svg/LayoutSVGResourceContainer.cpp ('k') | Source/core/layout/svg/SVGResourcesCache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698