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

Side by Side Diff: Source/core/dom/shadow/InsertionPoint.cpp

Issue 15680005: Element::recalcStyle() overly reattach()-es InsertionPoints. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Updated test and test expectations Created 7 years, 6 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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 return selectorList; 199 return selectorList;
200 } 200 }
201 201
202 InsertionPoint* resolveReprojection(const Node* projectedNode) 202 InsertionPoint* resolveReprojection(const Node* projectedNode)
203 { 203 {
204 InsertionPoint* insertionPoint = 0; 204 InsertionPoint* insertionPoint = 0;
205 const Node* current = projectedNode; 205 const Node* current = projectedNode;
206 206
207 while (current) { 207 while (current) {
208 if (ElementShadow* shadow = shadowOfParentForDistribution(current)) { 208 if (ElementShadow* shadow = shadowOfParentForDistribution(current)) {
209 ContentDistributor::ensureDistribution(shadow);
209 if (ShadowRoot* root = current->containingShadowRoot()) 210 if (ShadowRoot* root = current->containingShadowRoot())
210 ContentDistributor::ensureDistribution(root); 211 ContentDistributor::ensureDistribution(root);
211 if (InsertionPoint* insertedTo = shadow->distributor().findInsertion PointFor(projectedNode)) { 212 if (InsertionPoint* insertedTo = shadow->distributor().findInsertion PointFor(projectedNode)) {
212 current = insertedTo; 213 current = insertedTo;
213 insertionPoint = insertedTo; 214 insertionPoint = insertedTo;
214 continue; 215 continue;
215 } 216 }
216 } 217 }
217 218
218 if (Node* parent = parentNodeForDistribution(current)) { 219 if (Node* parent = parentNodeForDistribution(current)) {
(...skipping 28 matching lines...) Expand all
247 current = insertedTo; 248 current = insertedTo;
248 results.append(insertedTo); 249 results.append(insertedTo);
249 continue; 250 continue;
250 } 251 }
251 } 252 }
252 return; 253 return;
253 } 254 }
254 } 255 }
255 256
256 } // namespace WebCore 257 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698