ShadowTree::recalcShadowTreeStyle only updates the youngest tree - shouldn't it update all?
Thanks for the report! I'll check it later.
Searching youngestShadowRoot(), it turns out some other functions like following is also need to be multiple-shadow-aware. - bool ShadowTree::needsStyleRecalc() - bool ShadowTree::childNeedsStyleRecalc() - bool ShadowTree::needsReattachHostChildrenAndShadow() - void ShadowTree::hostChildrenChanged() - void TreeScopeAdopter::moveTreeToNewScope(Node* root) - void TreeScopeAdopter::moveTreeToNewDocument(Node* root, Document* oldDocument, Document* newDocument) const
(In reply to comment #2) > Searching youngestShadowRoot(), it turns out some other functions > like following is also need to be multiple-shadow-aware. > > - bool ShadowTree::needsStyleRecalc() > - bool ShadowTree::childNeedsStyleRecalc() > - bool ShadowTree::needsReattachHostChildrenAndShadow() > - void ShadowTree::hostChildrenChanged() > - void TreeScopeAdopter::moveTreeToNewScope(Node* root) > - void TreeScopeAdopter::moveTreeToNewDocument(Node* root, Document* oldDocument, Document* newDocument) const I think we should consider multiple shadow subtrees for needsStyleRecalc() and childNeedsStyleRecalc(), but not for needsReattachHostChildrenAndShadow() and needsReattachHostChildrenAndShadow(), because the latter methods checks the existence of InsertionPoint of the youngest shadow roots. If there is no insertion point in the youngest shadow root, older shadow subtrees or light children won't be rendered al all. If this assumption is wrong, please let me know...
Created attachment 129407 [details] Patch
Created attachment 129408 [details] Patch
Attachment 129408 [details] did not pass style-queue: Failed to run "['Tools/Scripts/update-webkit']" exit_code: 9 Updating OpenSource Index mismatch: 45f1ddc97c26c8f168daebf1d8d25e32afde0c7a != d0c2d29a78e61f43d073201c516920e3103f993d rereading 21dd0231e92234ee59517801b9836dc9d53fe30a M Source/WebCore/dom/ShadowTree.h M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/ShadowTree.cpp M Source/WebCore/dom/ContainerNode.cpp M Source/WebCore/dom/ContainerNode.h M Source/WebCore/ChangeLog 109203 = f269c80d877021b19c2311e4e7c7a1dc9d95a3b8 already exists! Why are we refetching it? at /usr/lib/git-core/git-svn line 5210 Died at Tools/Scripts/update-webkit line 164. If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 129408 [details] Patch Rejecting attachment 129408 [details] from commit-queue. shinyak@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py. - If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags. - If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed). The commit-queue restarts itself every 2 hours. After restart the commit-queue will correctly respect your committer rights.
Created attachment 129435 [details] Wrong patch
(In reply to comment #8) > Created an attachment (id=129435) [details] > Patch Sorry, I mistook the place to upload...
Created attachment 129561 [details] Patch for landing
Created attachment 129563 [details] Patch for landing
Committed r109290: <http://trac.webkit.org/changeset/109290>