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

Side by Side Diff: third_party/WebKit/Source/core/dom/StyleEngine.cpp

Issue 2450353002: Clear m_treeBoundaryCrossingScopes when reconstructing StyleResolver. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/css/boundary-crossing-scopes-null-resolver-crash.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All
7 * rights reserved. 7 * rights reserved.
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
9 * (http://www.torchmobile.com/) 9 * (http://www.torchmobile.com/)
10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 // StyleEngine::shadowRootRemovedFromDocument removes not-in-document 448 // StyleEngine::shadowRootRemovedFromDocument removes not-in-document
449 // treescopes from activeTreeScopes. StyleEngine::didRemoveShadowRoot 449 // treescopes from activeTreeScopes. StyleEngine::didRemoveShadowRoot
450 // removes treescopes which are being destroyed from activeTreeScopes. 450 // removes treescopes which are being destroyed from activeTreeScopes.
451 // So we need to clearScopedStyleResolver for treescopes which have been 451 // So we need to clearScopedStyleResolver for treescopes which have been
452 // just removed from document. If document is destroyed before invoking 452 // just removed from document. If document is destroyed before invoking
453 // updateActiveStyleSheets, the treescope has a scopedStyleResolver which 453 // updateActiveStyleSheets, the treescope has a scopedStyleResolver which
454 // has destroyed StyleSheetContents. 454 // has destroyed StyleSheetContents.
455 for (TreeScope* treeScope : m_activeTreeScopes) 455 for (TreeScope* treeScope : m_activeTreeScopes)
456 treeScope->clearScopedStyleResolver(); 456 treeScope->clearScopedStyleResolver();
457 457
458 m_treeBoundaryCrossingScopes.clear();
459
458 if (m_resolver) { 460 if (m_resolver) {
459 TRACE_EVENT1("blink", "StyleEngine::clearResolver", "frame", 461 TRACE_EVENT1("blink", "StyleEngine::clearResolver", "frame",
460 document().frame()); 462 document().frame());
461 m_resolver->dispose(); 463 m_resolver->dispose();
462 m_resolver.clear(); 464 m_resolver.clear();
463 } 465 }
464 } 466 }
465 467
466 void StyleEngine::clearMasterResolver() { 468 void StyleEngine::clearMasterResolver() {
467 if (Document* master = this->master()) 469 if (Document* master = this->master())
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 } 1020 }
1019 1021
1020 DEFINE_TRACE_WRAPPERS(StyleEngine) { 1022 DEFINE_TRACE_WRAPPERS(StyleEngine) {
1021 for (auto sheet : m_injectedAuthorStyleSheets) { 1023 for (auto sheet : m_injectedAuthorStyleSheets) {
1022 visitor->traceWrappers(sheet); 1024 visitor->traceWrappers(sheet);
1023 } 1025 }
1024 visitor->traceWrappers(m_documentStyleSheetCollection); 1026 visitor->traceWrappers(m_documentStyleSheetCollection);
1025 } 1027 }
1026 1028
1027 } // namespace blink 1029 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/css/boundary-crossing-scopes-null-resolver-crash.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698