Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 121 // recompute the associated resources for a LayoutObject. | 121 // recompute the associated resources for a LayoutObject. |
| 122 // TODO(fs): Avoid passing in a useless StyleDifference, but instead compare | 122 // TODO(fs): Avoid passing in a useless StyleDifference, but instead compare |
| 123 // oldStyle/newStyle to see which resources changed to be able to selectively | 123 // oldStyle/newStyle to see which resources changed to be able to selectively |
| 124 // rebuild individual resources, instead of all of them. | 124 // rebuild individual resources, instead of all of them. |
| 125 if (layoutObjectCanHaveResources(layoutObject)) { | 125 if (layoutObjectCanHaveResources(layoutObject)) { |
| 126 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); | 126 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); |
| 127 cache.removeResourcesFromLayoutObject(layoutObject); | 127 cache.removeResourcesFromLayoutObject(layoutObject); |
| 128 cache.addResourcesFromLayoutObject(layoutObject, newStyle); | 128 cache.addResourcesFromLayoutObject(layoutObject, newStyle); |
| 129 } | 129 } |
| 130 | 130 |
| 131 bool needLayout = false; | |
| 132 needLayout |= diff.needsPaintInvalidation(); | |
|
fs
2017/01/23 13:03:40
Now we'll trigger a lot more layout than we need t
| |
| 133 | |
| 131 LayoutSVGResourceContainer::markForLayoutAndParentResourceInvalidation( | 134 LayoutSVGResourceContainer::markForLayoutAndParentResourceInvalidation( |
| 132 layoutObject, false); | 135 layoutObject, needLayout); |
| 133 } | 136 } |
| 134 | 137 |
| 135 void SVGResourcesCache::clientWasAddedToTree(LayoutObject* layoutObject, | 138 void SVGResourcesCache::clientWasAddedToTree(LayoutObject* layoutObject, |
| 136 const ComputedStyle& newStyle) { | 139 const ComputedStyle& newStyle) { |
| 137 if (!layoutObject->node()) | 140 if (!layoutObject->node()) |
| 138 return; | 141 return; |
| 139 LayoutSVGResourceContainer::markForLayoutAndParentResourceInvalidation( | 142 LayoutSVGResourceContainer::markForLayoutAndParentResourceInvalidation( |
| 140 layoutObject, false); | 143 layoutObject, false); |
| 141 | 144 |
| 142 if (!layoutObjectCanHaveResources(layoutObject)) | 145 if (!layoutObjectCanHaveResources(layoutObject)) |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 162 ASSERT(layoutObject); | 165 ASSERT(layoutObject); |
| 163 | 166 |
| 164 SVGResources* resources = cachedResourcesForLayoutObject(layoutObject); | 167 SVGResources* resources = cachedResourcesForLayoutObject(layoutObject); |
| 165 if (resources) | 168 if (resources) |
| 166 resources->removeClientFromCache(layoutObject); | 169 resources->removeClientFromCache(layoutObject); |
| 167 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); | 170 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); |
| 168 cache.removeResourcesFromLayoutObject(layoutObject); | 171 cache.removeResourcesFromLayoutObject(layoutObject); |
| 169 } | 172 } |
| 170 | 173 |
| 171 } // namespace blink | 174 } // namespace blink |
| OLD | NEW |