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

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

Issue 315173002: Revert of Remove scoped styles. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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
53 Node* ownerNode = sheet->ownerNode(); 52 Node* ownerNode = sheet->ownerNode();
54 if (!isHTMLStyleElement(ownerNode)) 53 if (!isHTMLStyleElement(ownerNode))
55 return &document; 54 return &document;
56 55
57 HTMLStyleElement& styleElement = toHTMLStyleElement(*ownerNode); 56 HTMLStyleElement& styleElement = toHTMLStyleElement(*ownerNode);
58 if (styleElement.isInShadowTree()) 57 if (!styleElement.scoped()) {
59 return styleElement.containingShadowRoot(); 58 if (styleElement.isInShadowTree())
60 return &document; 59 return styleElement.containingShadowRoot();
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;
61 } 68 }
62 69
63 void ScopedStyleResolver::addRulesFromSheet(CSSStyleSheet* cssSheet, const Media QueryEvaluator& medium, StyleResolver* resolver) 70 void ScopedStyleResolver::addRulesFromSheet(CSSStyleSheet* cssSheet, const Media QueryEvaluator& medium, StyleResolver* resolver)
64 { 71 {
65 m_authorStyleSheets.append(cssSheet); 72 m_authorStyleSheets.append(cssSheet);
66 StyleSheetContents* sheet = cssSheet->contents(); 73 StyleSheetContents* sheet = cssSheet->contents();
67 74
68 AddRuleFlags addRuleFlags = resolver->document().securityOrigin()->canReques t(sheet->baseURL()) ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState; 75 AddRuleFlags addRuleFlags = resolver->document().securityOrigin()->canReques t(sheet->baseURL()) ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState;
69 const RuleSet& ruleSet = sheet->ensureRuleSet(medium, addRuleFlags); 76 const RuleSet& ruleSet = sheet->ensureRuleSet(medium, addRuleFlags);
70 resolver->addMediaQueryResults(ruleSet.viewportDependentMediaQueryResults()) ; 77 resolver->addMediaQueryResults(ruleSet.viewportDependentMediaQueryResults()) ;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 149
143 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const 150 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const
144 { 151 {
145 if (!m_scopingNode.isDocumentNode()) 152 if (!m_scopingNode.isDocumentNode())
146 return; 153 return;
147 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) 154 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i)
148 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin); 155 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin);
149 } 156 }
150 157
151 } // namespace WebCore 158 } // 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