| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 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 * * Neither the name of Google Inc. nor the names of its | 10 * * Neither the name of Google Inc. nor the names of its |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 return false; | 156 return false; |
| 157 } | 157 } |
| 158 } | 158 } |
| 159 | 159 |
| 160 void ShadowRoot::recalcStyle(StyleChange change) | 160 void ShadowRoot::recalcStyle(StyleChange change) |
| 161 { | 161 { |
| 162 // ShadowRoot doesn't support custom callbacks. | 162 // ShadowRoot doesn't support custom callbacks. |
| 163 ASSERT(!hasCustomStyleCallbacks()); | 163 ASSERT(!hasCustomStyleCallbacks()); |
| 164 | 164 |
| 165 StyleResolver* styleResolver = document().styleResolver(); | 165 StyleResolver* styleResolver = document().styleResolver(); |
| 166 styleResolver->pushParentShadowRoot(this); | 166 styleResolver->pushParentShadowRoot(*this); |
| 167 | 167 |
| 168 if (!attached()) { | 168 if (!attached()) { |
| 169 attach(); | 169 attach(); |
| 170 return; | 170 return; |
| 171 } | 171 } |
| 172 | 172 |
| 173 // When we're set to lazyAttach we'll have a SubtreeStyleChange and we'll ne
ed | 173 // When we're set to lazyAttach we'll have a SubtreeStyleChange and we'll ne
ed |
| 174 // to promote the change to a Force for all our descendants so they get a | 174 // to promote the change to a Force for all our descendants so they get a |
| 175 // recalc and will attach. | 175 // recalc and will attach. |
| 176 if (styleChangeType() >= SubtreeStyleChange) | 176 if (styleChangeType() >= SubtreeStyleChange) |
| (...skipping 12 matching lines...) Expand all Loading... |
| 189 child->reattach(); | 189 child->reattach(); |
| 190 else | 190 else |
| 191 didReattach = toText(child)->recalcTextStyle(change); | 191 didReattach = toText(child)->recalcTextStyle(change); |
| 192 } else if (child->isElementNode() && shouldRecalcStyle(change, child)) { | 192 } else if (child->isElementNode() && shouldRecalcStyle(change, child)) { |
| 193 didReattach = toElement(child)->recalcStyle(change); | 193 didReattach = toElement(child)->recalcStyle(change); |
| 194 } | 194 } |
| 195 | 195 |
| 196 forceReattachOfAnyWhitespaceSibling = didReattach || forceReattachOfAnyW
hitespaceSibling; | 196 forceReattachOfAnyWhitespaceSibling = didReattach || forceReattachOfAnyW
hitespaceSibling; |
| 197 } | 197 } |
| 198 | 198 |
| 199 styleResolver->popParentShadowRoot(this); | 199 styleResolver->popParentShadowRoot(*this); |
| 200 clearNeedsStyleRecalc(); | 200 clearNeedsStyleRecalc(); |
| 201 clearChildNeedsStyleRecalc(); | 201 clearChildNeedsStyleRecalc(); |
| 202 } | 202 } |
| 203 | 203 |
| 204 bool ShadowRoot::isActive() const | 204 bool ShadowRoot::isActive() const |
| 205 { | 205 { |
| 206 for (ShadowRoot* shadowRoot = youngerShadowRoot(); shadowRoot; shadowRoot =
shadowRoot->youngerShadowRoot()) | 206 for (ShadowRoot* shadowRoot = youngerShadowRoot(); shadowRoot; shadowRoot =
shadowRoot->youngerShadowRoot()) |
| 207 if (!shadowRoot->containsShadowElements()) | 207 if (!shadowRoot->containsShadowElements()) |
| 208 return false; | 208 return false; |
| 209 return true; | 209 return true; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 m_resetStyleInheritance = value; | 246 m_resetStyleInheritance = value; |
| 247 if (!isActive()) | 247 if (!isActive()) |
| 248 return; | 248 return; |
| 249 | 249 |
| 250 setNeedsStyleRecalc(); | 250 setNeedsStyleRecalc(); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void ShadowRoot::attach(const AttachContext& context) | 253 void ShadowRoot::attach(const AttachContext& context) |
| 254 { | 254 { |
| 255 StyleResolver* styleResolver = document().styleResolver(); | 255 StyleResolver* styleResolver = document().styleResolver(); |
| 256 styleResolver->pushParentShadowRoot(this); | 256 styleResolver->pushParentShadowRoot(*this); |
| 257 DocumentFragment::attach(context); | 257 DocumentFragment::attach(context); |
| 258 styleResolver->popParentShadowRoot(this); | 258 styleResolver->popParentShadowRoot(*this); |
| 259 } | 259 } |
| 260 | 260 |
| 261 Node::InsertionNotificationRequest ShadowRoot::insertedInto(ContainerNode* inser
tionPoint) | 261 Node::InsertionNotificationRequest ShadowRoot::insertedInto(ContainerNode* inser
tionPoint) |
| 262 { | 262 { |
| 263 DocumentFragment::insertedInto(insertionPoint); | 263 DocumentFragment::insertedInto(insertionPoint); |
| 264 | 264 |
| 265 if (!insertionPoint->inDocument() || !isOldest()) | 265 if (!insertionPoint->inDocument() || !isOldest()) |
| 266 return InsertionDone; | 266 return InsertionDone; |
| 267 | 267 |
| 268 // FIXME: When parsing <video controls>, insertedInto() is called many times
without invoking removedFrom. | 268 // FIXME: When parsing <video controls>, insertedInto() is called many times
without invoking removedFrom. |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 if (element->isInsertionPoint()) | 404 if (element->isInsertionPoint()) |
| 405 insertionPoints.append(toInsertionPoint(element)); | 405 insertionPoints.append(toInsertionPoint(element)); |
| 406 } | 406 } |
| 407 | 407 |
| 408 ensureShadowRootRareData()->setChildInsertionPoints(insertionPoints); | 408 ensureShadowRootRareData()->setChildInsertionPoints(insertionPoints); |
| 409 | 409 |
| 410 return m_shadowRootRareData->childInsertionPoints(); | 410 return m_shadowRootRareData->childInsertionPoints(); |
| 411 } | 411 } |
| 412 | 412 |
| 413 } | 413 } |
| OLD | NEW |