Title: [114006] trunk/Source/WebCore
Revision
114006
Author
[email protected]
Date
2012-04-12 11:28:55 -0700 (Thu, 12 Apr 2012)

Log Message

Remove style sheet argument from StyleRuleImport constructor 
https://bugs.webkit.org/show_bug.cgi?id=83740

Reviewed by Andreas Kling.

The style sheet is set when the rule is added to one. The parser does not need to know about it.

* css/CSSImportRule.cpp:
(WebCore::StyleRuleImport::StyleRuleImport):
* css/CSSImportRule.h:
(StyleRuleImport):
(WebCore::StyleRuleImport::setParentStyleSheet):
* css/CSSParser.cpp:
(WebCore::CSSParser::createImportRule):
* css/CSSStyleSheet.cpp:
(WebCore::StyleSheetInternal::parserAppendRule):
(WebCore::StyleSheetInternal::wrapperInsertRule):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (114005 => 114006)


--- trunk/Source/WebCore/ChangeLog	2012-04-12 18:24:52 UTC (rev 114005)
+++ trunk/Source/WebCore/ChangeLog	2012-04-12 18:28:55 UTC (rev 114006)
@@ -1,3 +1,23 @@
+2012-04-12  Antti Koivisto  <[email protected]>
+
+        Remove style sheet argument from StyleRuleImport constructor 
+        https://bugs.webkit.org/show_bug.cgi?id=83740
+
+        Reviewed by Andreas Kling.
+
+        The style sheet is set when the rule is added to one. The parser does not need to know about it.
+
+        * css/CSSImportRule.cpp:
+        (WebCore::StyleRuleImport::StyleRuleImport):
+        * css/CSSImportRule.h:
+        (StyleRuleImport):
+        (WebCore::StyleRuleImport::setParentStyleSheet):
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::createImportRule):
+        * css/CSSStyleSheet.cpp:
+        (WebCore::StyleSheetInternal::parserAppendRule):
+        (WebCore::StyleSheetInternal::wrapperInsertRule):
+
 2012-04-12  Alexey Proskuryakov  <[email protected]>
 
         REGRESSION (r113900): In nightly builds, Safari Webpage Preview Fetcher crashes in Settings::initializeDefaultFontFamilies() due to uncaught exception (sandbox preventing access to fonts plist)

Modified: trunk/Source/WebCore/css/CSSImportRule.cpp (114005 => 114006)


--- trunk/Source/WebCore/css/CSSImportRule.cpp	2012-04-12 18:24:52 UTC (rev 114005)
+++ trunk/Source/WebCore/css/CSSImportRule.cpp	2012-04-12 18:28:55 UTC (rev 114006)
@@ -33,21 +33,20 @@
 
 namespace WebCore {
 
-PassRefPtr<StyleRuleImport> StyleRuleImport::create(StyleSheetInternal* parent, const String& href, PassRefPtr<MediaQuerySet> media)
+PassRefPtr<StyleRuleImport> StyleRuleImport::create(const String& href, PassRefPtr<MediaQuerySet> media)
 {
-    return adoptRef(new StyleRuleImport(parent, href, media));
+    return adoptRef(new StyleRuleImport(href, media));
 }
 
-StyleRuleImport::StyleRuleImport(StyleSheetInternal* parent, const String& href, PassRefPtr<MediaQuerySet> media)
+StyleRuleImport::StyleRuleImport(const String& href, PassRefPtr<MediaQuerySet> media)
     : StyleRuleBase(Import, 0)
-    , m_parentStyleSheet(parent)
+    , m_parentStyleSheet(0)
     , m_styleSheetClient(this)
     , m_strHref(href)
     , m_mediaQueries(media)
     , m_cachedSheet(0)
     , m_loading(false)
 {
-    ASSERT(parent);
     if (!m_mediaQueries)
         m_mediaQueries = MediaQuerySet::create(String());
 }

Modified: trunk/Source/WebCore/css/CSSImportRule.h (114005 => 114006)


--- trunk/Source/WebCore/css/CSSImportRule.h	2012-04-12 18:24:52 UTC (rev 114005)
+++ trunk/Source/WebCore/css/CSSImportRule.h	2012-04-12 18:28:55 UTC (rev 114006)
@@ -37,11 +37,12 @@
 
 class StyleRuleImport : public StyleRuleBase {
 public:
-    static PassRefPtr<StyleRuleImport> create(StyleSheetInternal* parent, const String& href, PassRefPtr<MediaQuerySet>);
+    static PassRefPtr<StyleRuleImport> create(const String& href, PassRefPtr<MediaQuerySet>);
 
     ~StyleRuleImport();
     
     StyleSheetInternal* parentStyleSheet() const { return m_parentStyleSheet; }
+    void setParentStyleSheet(StyleSheetInternal* sheet) { ASSERT(sheet); m_parentStyleSheet = sheet; }
     void clearParentStyleSheet() { m_parentStyleSheet = 0; }
 
     String href() const { return m_strHref; }
@@ -71,7 +72,7 @@
     void setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CachedCSSStyleSheet*);
     friend class ImportedStyleSheetClient;
 
-    StyleRuleImport(StyleSheetInternal* parent, const String& href, PassRefPtr<MediaQuerySet>);
+    StyleRuleImport(const String& href, PassRefPtr<MediaQuerySet>);
 
     StyleSheetInternal* m_parentStyleSheet;
 

Modified: trunk/Source/WebCore/css/CSSParser.cpp (114005 => 114006)


--- trunk/Source/WebCore/css/CSSParser.cpp	2012-04-12 18:24:52 UTC (rev 114005)
+++ trunk/Source/WebCore/css/CSSParser.cpp	2012-04-12 18:28:55 UTC (rev 114006)
@@ -9002,9 +9002,9 @@
 
 StyleRuleBase* CSSParser::createImportRule(const CSSParserString& url, MediaQuerySet* media)
 {
-    if (!media || !m_styleSheet || !m_allowImportRules)
+    if (!media || !m_allowImportRules)
         return 0;
-    RefPtr<StyleRuleImport> rule = StyleRuleImport::create(m_styleSheet, url, media);
+    RefPtr<StyleRuleImport> rule = StyleRuleImport::create(url, media);
     StyleRuleImport* result = rule.get();
     m_parsedRules.append(rule.release());
     return result;

Modified: trunk/Source/WebCore/css/CSSStyleSheet.cpp (114005 => 114006)


--- trunk/Source/WebCore/css/CSSStyleSheet.cpp	2012-04-12 18:24:52 UTC (rev 114005)
+++ trunk/Source/WebCore/css/CSSStyleSheet.cpp	2012-04-12 18:28:55 UTC (rev 114006)
@@ -116,6 +116,7 @@
         // Parser enforces that @import rules come before anything else except @charset.
         ASSERT(m_childRules.isEmpty());
         m_importRules.append(static_cast<StyleRuleImport*>(rule.get()));
+        m_importRules.last()->setParentStyleSheet(this);
         m_importRules.last()->requestStyleSheet();
         return;
     }
@@ -192,6 +193,7 @@
         if (!rule->isImportRule())
             return false;
         m_importRules.insert(childVectorIndex, static_cast<StyleRuleImport*>(rule.get()));
+        m_importRules[childVectorIndex]->setParentStyleSheet(this);
         m_importRules[childVectorIndex]->requestStyleSheet();
         // FIXME: Stylesheet doesn't actually change meaningfully before the imported sheets are loaded.
         styleSheetChanged();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to