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

Side by Side Diff: Source/core/css/StyleRuleImport.cpp

Issue 170283019: Change various helper classes to transition types to get CSSValue entirely onto the gc heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase and revert member to persistent in StorageEvent Created 6 years, 9 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 * (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, 2005, 2006, 2008, 2009, 2010, 2012 Apple Inc. All rights reserved. 4 * Copyright (C) 2002, 2005, 2006, 2008, 2009, 2010, 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 13 matching lines...) Expand all
24 24
25 #include "FetchInitiatorTypeNames.h" 25 #include "FetchInitiatorTypeNames.h"
26 #include "core/css/StyleSheetContents.h" 26 #include "core/css/StyleSheetContents.h"
27 #include "core/dom/Document.h" 27 #include "core/dom/Document.h"
28 #include "core/fetch/CSSStyleSheetResource.h" 28 #include "core/fetch/CSSStyleSheetResource.h"
29 #include "core/fetch/FetchRequest.h" 29 #include "core/fetch/FetchRequest.h"
30 #include "core/fetch/ResourceFetcher.h" 30 #include "core/fetch/ResourceFetcher.h"
31 31
32 namespace WebCore { 32 namespace WebCore {
33 33
34 PassRefPtrWillBeRawPtr<StyleRuleImport> StyleRuleImport::create(const String& hr ef, PassRefPtr<MediaQuerySet> media) 34 PassRefPtrWillBeRawPtr<StyleRuleImport> StyleRuleImport::create(const String& hr ef, PassRefPtrWillBeRawPtr<MediaQuerySet> media)
35 { 35 {
36 return adoptRefWillBeNoop(new StyleRuleImport(href, media)); 36 return adoptRefWillBeNoop(new StyleRuleImport(href, media));
37 } 37 }
38 38
39 StyleRuleImport::StyleRuleImport(const String& href, PassRefPtr<MediaQuerySet> m edia) 39 StyleRuleImport::StyleRuleImport(const String& href, PassRefPtrWillBeRawPtr<Medi aQuerySet> media)
40 : StyleRuleBase(Import) 40 : StyleRuleBase(Import)
41 , m_parentStyleSheet(nullptr) 41 , m_parentStyleSheet(nullptr)
42 , m_styleSheetClient(this) 42 , m_styleSheetClient(this)
43 , m_strHref(href) 43 , m_strHref(href)
44 , m_mediaQueries(media) 44 , m_mediaQueries(media)
45 , m_resource(0) 45 , m_resource(0)
46 , m_loading(false) 46 , m_loading(false)
47 { 47 {
48 if (!m_mediaQueries) 48 if (!m_mediaQueries)
49 m_mediaQueries = MediaQuerySet::create(String()); 49 m_mediaQueries = MediaQuerySet::create(String());
50 } 50 }
51 51
52 StyleRuleImport::~StyleRuleImport() 52 StyleRuleImport::~StyleRuleImport()
53 { 53 {
54 #if !ENABLE(OILPAN) 54 #if !ENABLE(OILPAN)
55 if (m_styleSheet) 55 if (m_styleSheet)
56 m_styleSheet->clearOwnerRule(); 56 m_styleSheet->clearOwnerRule();
57 #endif 57 #endif
58 if (m_resource) 58 if (m_resource)
59 m_resource->removeClient(&m_styleSheetClient); 59 m_resource->removeClient(&m_styleSheetClient);
60 } 60 }
61 61
62 void StyleRuleImport::traceAfterDispatch(Visitor* visitor) 62 void StyleRuleImport::traceAfterDispatch(Visitor* visitor)
63 { 63 {
64 visitor->trace(m_parentStyleSheet); 64 visitor->trace(m_parentStyleSheet);
65 visitor->trace(m_mediaQueries);
65 visitor->trace(m_styleSheet); 66 visitor->trace(m_styleSheet);
66 StyleRuleBase::traceAfterDispatch(visitor); 67 StyleRuleBase::traceAfterDispatch(visitor);
67 } 68 }
68 69
69 void StyleRuleImport::setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource* cachedStyleSheet) 70 void StyleRuleImport::setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource* cachedStyleSheet)
70 { 71 {
71 if (m_styleSheet) 72 if (m_styleSheet)
72 m_styleSheet->clearOwnerRule(); 73 m_styleSheet->clearOwnerRule();
73 74
74 CSSParserContext context = m_parentStyleSheet ? m_parentStyleSheet->parserCo ntext() : strictCSSParserContext(); 75 CSSParserContext context = m_parentStyleSheet ? m_parentStyleSheet->parserCo ntext() : strictCSSParserContext();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 // removed from the pending sheet count, so let the doc know 131 // removed from the pending sheet count, so let the doc know
131 // the sheet being imported is pending. 132 // the sheet being imported is pending.
132 if (m_parentStyleSheet && m_parentStyleSheet->loadCompleted() && rootShe et == m_parentStyleSheet) 133 if (m_parentStyleSheet && m_parentStyleSheet->loadCompleted() && rootShe et == m_parentStyleSheet)
133 m_parentStyleSheet->startLoadingDynamicSheet(); 134 m_parentStyleSheet->startLoadingDynamicSheet();
134 m_loading = true; 135 m_loading = true;
135 m_resource->addClient(&m_styleSheetClient); 136 m_resource->addClient(&m_styleSheetClient);
136 } 137 }
137 } 138 }
138 139
139 } // namespace WebCore 140 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698