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

Side by Side Diff: third_party/WebKit/Source/core/css/StyleRuleImport.h

Issue 1996293002: Make ImportedStyleSheetClient GarbageCollected (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org) 3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2002, 2006, 2008, 2012 Apple Inc. All rights reserved. 4 * Copyright (C) 2002, 2006, 2008, 2012 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 StyleSheetContents* styleSheet() const { return m_styleSheet.get(); } 47 StyleSheetContents* styleSheet() const { return m_styleSheet.get(); }
48 48
49 bool isLoading() const; 49 bool isLoading() const;
50 MediaQuerySet* mediaQueries() { return m_mediaQueries.get(); } 50 MediaQuerySet* mediaQueries() { return m_mediaQueries.get(); }
51 51
52 void requestStyleSheet(); 52 void requestStyleSheet();
53 53
54 DECLARE_TRACE_AFTER_DISPATCH(); 54 DECLARE_TRACE_AFTER_DISPATCH();
55 55
56 private: 56 private:
57 // FIXME: inherit from StyleSheetResourceClient directly to eliminate raw ba ck pointer, as there are no space savings in this. 57 // FIXME: inherit from StyleSheetResourceClient directly to eliminate back p ointer, as there are no space savings in this.
58 // NOTE: We put the StyleSheetResourceClient in a member instead of inheriti ng from it 58 // NOTE: We put the StyleSheetResourceClient in a member instead of inheriti ng from it
59 // to avoid adding a vptr to StyleRuleImport. 59 // to avoid adding a vptr to StyleRuleImport.
60 class ImportedStyleSheetClient final : public StyleSheetResourceClient { 60 class ImportedStyleSheetClient final : public GarbageCollectedFinalized<Impo rtedStyleSheetClient>, public StyleSheetResourceClient {
61 DISALLOW_NEW();
62 public: 61 public:
63 ImportedStyleSheetClient(StyleRuleImport* ownerRule) : m_ownerRule(owner Rule) { } 62 ImportedStyleSheetClient(StyleRuleImport* ownerRule) : m_ownerRule(owner Rule) { }
64 ~ImportedStyleSheetClient() override { } 63 ~ImportedStyleSheetClient() override { }
65 void setCSSStyleSheet(const String& href, const KURL& baseURL, const Str ing& charset, const CSSStyleSheetResource* sheet) override 64 void setCSSStyleSheet(const String& href, const KURL& baseURL, const Str ing& charset, const CSSStyleSheetResource* sheet) override
66 { 65 {
67 m_ownerRule->setCSSStyleSheet(href, baseURL, charset, sheet); 66 m_ownerRule->setCSSStyleSheet(href, baseURL, charset, sheet);
68 } 67 }
69 String debugName() const override { return "ImportedStyleSheetClient"; } 68 String debugName() const override { return "ImportedStyleSheetClient"; }
70 69
71 DEFINE_INLINE_TRACE() 70 DEFINE_INLINE_TRACE()
72 { 71 {
73 visitor->trace(m_ownerRule); 72 visitor->trace(m_ownerRule);
74 } 73 }
75 74
76 private: 75 private:
77 Member<StyleRuleImport> m_ownerRule; 76 Member<StyleRuleImport> m_ownerRule;
78 }; 77 };
79 78
80 void setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource*); 79 void setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource*);
81 friend class ImportedStyleSheetClient;
82 80
83 StyleRuleImport(const String& href, MediaQuerySet*); 81 StyleRuleImport(const String& href, MediaQuerySet*);
84 82
85 void dispose(); 83 void dispose();
86 84
87 Member<StyleSheetContents> m_parentStyleSheet; 85 Member<StyleSheetContents> m_parentStyleSheet;
88 86
89 ImportedStyleSheetClient m_styleSheetClient; 87 Member<ImportedStyleSheetClient> m_styleSheetClient;
90 String m_strHref; 88 String m_strHref;
91 Member<MediaQuerySet> m_mediaQueries; 89 Member<MediaQuerySet> m_mediaQueries;
92 Member<StyleSheetContents> m_styleSheet; 90 Member<StyleSheetContents> m_styleSheet;
93 Member<CSSStyleSheetResource> m_resource; 91 Member<CSSStyleSheetResource> m_resource;
94 bool m_loading; 92 bool m_loading;
95 }; 93 };
96 94
97 DEFINE_STYLE_RULE_TYPE_CASTS(Import); 95 DEFINE_STYLE_RULE_TYPE_CASTS(Import);
98 96
99 } // namespace blink 97 } // namespace blink
100 98
101 #endif 99 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698