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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 1362693004: When style changes, set the LayoutObject as a client for all StyleImage loads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1805 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 1816
1817 RefPtr<ComputedStyle> oldStyle = m_style.release(); 1817 RefPtr<ComputedStyle> oldStyle = m_style.release();
1818 setStyleInternal(style); 1818 setStyleInternal(style);
1819 1819
1820 updateFillImages(oldStyle ? &oldStyle->backgroundLayers() : 0, m_style->back groundLayers()); 1820 updateFillImages(oldStyle ? &oldStyle->backgroundLayers() : 0, m_style->back groundLayers());
1821 updateFillImages(oldStyle ? &oldStyle->maskLayers() : 0, m_style->maskLayers ()); 1821 updateFillImages(oldStyle ? &oldStyle->maskLayers() : 0, m_style->maskLayers ());
1822 1822
1823 updateImage(oldStyle ? oldStyle->borderImage().image() : 0, m_style->borderI mage().image()); 1823 updateImage(oldStyle ? oldStyle->borderImage().image() : 0, m_style->borderI mage().image());
1824 updateImage(oldStyle ? oldStyle->maskBoxImage().image() : 0, m_style->maskBo xImage().image()); 1824 updateImage(oldStyle ? oldStyle->maskBoxImage().image() : 0, m_style->maskBo xImage().image());
1825 1825
1826 StyleImage* newContentImage = m_style->contentData() && m_style->contentData ()->isImage() ?
1827 toImageContentData(m_style->contentData())->image() : nullptr;
1828 StyleImage* oldContentImage = oldStyle && oldStyle->contentData() && oldStyl e->contentData()->isImage() ?
1829 toImageContentData(oldStyle->contentData())->image() : nullptr;
1830 updateImage(oldContentImage, newContentImage);
1831
1832 StyleImage* newBoxReflectMaskImage = m_style->boxReflect() ? m_style->boxRef lect()->mask().image() : nullptr;
1833 StyleImage* oldBoxReflectMaskImage = oldStyle && oldStyle->boxReflect() ? ol dStyle->boxReflect()->mask().image() : nullptr;
1834 updateImage(oldBoxReflectMaskImage, newBoxReflectMaskImage);
1835
1826 updateShapeImage(oldStyle ? oldStyle->shapeOutside() : 0, m_style->shapeOuts ide()); 1836 updateShapeImage(oldStyle ? oldStyle->shapeOutside() : 0, m_style->shapeOuts ide());
1827 1837
1828 bool doesNotNeedLayoutOrPaintInvalidation = !m_parent; 1838 bool doesNotNeedLayoutOrPaintInvalidation = !m_parent;
1829 1839
1830 styleDidChange(diff, oldStyle.get()); 1840 styleDidChange(diff, oldStyle.get());
1831 1841
1832 // FIXME: |this| might be destroyed here. This can currently happen for a La youtTextFragment when 1842 // FIXME: |this| might be destroyed here. This can currently happen for a La youtTextFragment when
1833 // its first-letter block gets an update in LayoutTextFragment::styleDidChan ge. For LayoutTextFragment(s), 1843 // its first-letter block gets an update in LayoutTextFragment::styleDidChan ge. For LayoutTextFragment(s),
1834 // we will safely bail out with the doesNotNeedLayoutOrPaintInvalidation fla g. We might want to broaden 1844 // we will safely bail out with the doesNotNeedLayoutOrPaintInvalidation fla g. We might want to broaden
1835 // this condition in the future as we move layoutObject changes out of layou t and into style changes. 1845 // this condition in the future as we move layoutObject changes out of layou t and into style changes.
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
2452 if (StyleImage* maskImage = maskLayer->image()) 2462 if (StyleImage* maskImage = maskLayer->image())
2453 maskImage->removeClient(this); 2463 maskImage->removeClient(this);
2454 } 2464 }
2455 2465
2456 if (StyleImage* borderImage = m_style->borderImage().image()) 2466 if (StyleImage* borderImage = m_style->borderImage().image())
2457 borderImage->removeClient(this); 2467 borderImage->removeClient(this);
2458 2468
2459 if (StyleImage* maskBoxImage = m_style->maskBoxImage().image()) 2469 if (StyleImage* maskBoxImage = m_style->maskBoxImage().image())
2460 maskBoxImage->removeClient(this); 2470 maskBoxImage->removeClient(this);
2461 2471
2472 if (m_style->contentData() && m_style->contentData()->isImage())
2473 toImageContentData(m_style->contentData())->image()->removeClient(th is);
2474
2475 if (m_style->boxReflect() && m_style->boxReflect()->mask().image())
2476 m_style->boxReflect()->mask().image()->removeClient(this);
2477
2462 removeShapeImageClient(m_style->shapeOutside()); 2478 removeShapeImageClient(m_style->shapeOutside());
2463 } 2479 }
2464 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->removeLayout Object(this); 2480 ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->removeLayout Object(this);
2465 2481
2466 if (frameView()) 2482 if (frameView())
2467 setIsSlowRepaintObject(false); 2483 setIsSlowRepaintObject(false);
2468 } 2484 }
2469 2485
2470 void LayoutObject::insertedIntoTree() 2486 void LayoutObject::insertedIntoTree()
2471 { 2487 {
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after
3391 const blink::LayoutObject* root = object1; 3407 const blink::LayoutObject* root = object1;
3392 while (root->parent()) 3408 while (root->parent())
3393 root = root->parent(); 3409 root = root->parent();
3394 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3410 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3395 } else { 3411 } else {
3396 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3412 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3397 } 3413 }
3398 } 3414 }
3399 3415
3400 #endif 3416 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutListItem.cpp ('k') | third_party/WebKit/Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698