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

Side by Side Diff: Source/core/css/resolver/ScopedStyleResolver.cpp

Issue 325663003: Remove scoped styles (retry) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix layout test (and expectation) Created 6 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2012 Google Inc. All rights reserved. 4 * Copyright (C) 2012 Google Inc. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 namespace WebCore { 43 namespace WebCore {
44 44
45 ContainerNode* ScopedStyleResolver::scopingNodeFor(Document& document, const CSS StyleSheet* sheet) 45 ContainerNode* ScopedStyleResolver::scopingNodeFor(Document& document, const CSS StyleSheet* sheet)
46 { 46 {
47 ASSERT(sheet); 47 ASSERT(sheet);
48 48
49 Document* sheetDocument = sheet->ownerDocument(); 49 Document* sheetDocument = sheet->ownerDocument();
50 if (!sheetDocument) 50 if (!sheetDocument)
51 return 0; 51 return 0;
52
52 Node* ownerNode = sheet->ownerNode(); 53 Node* ownerNode = sheet->ownerNode();
53 if (!isHTMLStyleElement(ownerNode)) 54 if (!isHTMLStyleElement(ownerNode))
54 return &document; 55 return &document;
55 56
56 HTMLStyleElement& styleElement = toHTMLStyleElement(*ownerNode); 57 HTMLStyleElement& styleElement = toHTMLStyleElement(*ownerNode);
57 if (!styleElement.scoped()) { 58 if (styleElement.isInShadowTree())
58 if (styleElement.isInShadowTree()) 59 return styleElement.containingShadowRoot();
59 return styleElement.containingShadowRoot(); 60 return &document;
60 return &document;
61 }
62
63 ContainerNode* parent = styleElement.parentNode();
64 if (!parent)
65 return 0;
66
67 return (parent->isElementNode() || parent->isShadowRoot()) ? parent : 0;
68 } 61 }
69 62
70 void ScopedStyleResolver::addRulesFromSheet(CSSStyleSheet* cssSheet, const Media QueryEvaluator& medium, StyleResolver* resolver) 63 void ScopedStyleResolver::addRulesFromSheet(CSSStyleSheet* cssSheet, const Media QueryEvaluator& medium, StyleResolver* resolver)
71 { 64 {
72 m_authorStyleSheets.append(cssSheet); 65 m_authorStyleSheets.append(cssSheet);
73 StyleSheetContents* sheet = cssSheet->contents(); 66 StyleSheetContents* sheet = cssSheet->contents();
74 67
75 AddRuleFlags addRuleFlags = resolver->document().securityOrigin()->canReques t(sheet->baseURL()) ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState; 68 AddRuleFlags addRuleFlags = resolver->document().securityOrigin()->canReques t(sheet->baseURL()) ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState;
76 const RuleSet& ruleSet = sheet->ensureRuleSet(medium, addRuleFlags); 69 const RuleSet& ruleSet = sheet->ensureRuleSet(medium, addRuleFlags);
77 resolver->addMediaQueryResults(ruleSet.viewportDependentMediaQueryResults()) ; 70 resolver->addMediaQueryResults(ruleSet.viewportDependentMediaQueryResults()) ;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 142
150 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const 143 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const
151 { 144 {
152 if (!m_scopingNode.isDocumentNode()) 145 if (!m_scopingNode.isDocumentNode())
153 return; 146 return;
154 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) 147 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i)
155 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin); 148 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin);
156 } 149 }
157 150
158 } // namespace WebCore 151 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/css/invalidation/StyleSheetInvalidationAnalysis.cpp ('k') | Source/core/css/resolver/ScopedStyleTree.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698