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

Side by Side Diff: third_party/WebKit/Source/core/fetch/CSSStyleSheetResource.h

Issue 2290983003: CSSStyleSheetResource should cache decoded text instead of raw bytes (Closed)
Patch Set: Created 4 years, 3 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 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
5 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 6
7 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public 8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either 9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version. 10 version 2 of the License, or (at your option) any later version.
(...skipping 30 matching lines...) Expand all
41 class CORE_EXPORT CSSStyleSheetResource final : public StyleSheetResource { 41 class CORE_EXPORT CSSStyleSheetResource final : public StyleSheetResource {
42 public: 42 public:
43 enum class MIMETypeCheck { Strict, Lax }; 43 enum class MIMETypeCheck { Strict, Lax };
44 44
45 static CSSStyleSheetResource* fetch(FetchRequest&, ResourceFetcher*); 45 static CSSStyleSheetResource* fetch(FetchRequest&, ResourceFetcher*);
46 static CSSStyleSheetResource* createForTest(const ResourceRequest&, const St ring& charset); 46 static CSSStyleSheetResource* createForTest(const ResourceRequest&, const St ring& charset);
47 47
48 ~CSSStyleSheetResource() override; 48 ~CSSStyleSheetResource() override;
49 DECLARE_VIRTUAL_TRACE(); 49 DECLARE_VIRTUAL_TRACE();
50 50
51 const String sheetText(MIMETypeCheck = MIMETypeCheck::Strict) const; 51 const String sheetText(MIMETypeCheck = MIMETypeCheck::Strict);
52 52
53 void didAddClient(ResourceClient*) override; 53 void didAddClient(ResourceClient*) override;
54 54
55 StyleSheetContents* restoreParsedStyleSheet(const CSSParserContext&); 55 StyleSheetContents* restoreParsedStyleSheet(const CSSParserContext&);
56 void saveParsedStyleSheet(StyleSheetContents*); 56 void saveParsedStyleSheet(StyleSheetContents*);
57 57
58 void appendData(const char* data, size_t length) override; 58 void appendData(const char* data, size_t length) override;
59 59
60 private: 60 private:
61 class CSSStyleSheetResourceFactory : public ResourceFactory { 61 class CSSStyleSheetResourceFactory : public ResourceFactory {
62 public: 62 public:
63 CSSStyleSheetResourceFactory() 63 CSSStyleSheetResourceFactory()
64 : ResourceFactory(Resource::CSSStyleSheet) { } 64 : ResourceFactory(Resource::CSSStyleSheet) { }
65 65
66 Resource* create(const ResourceRequest& request, const ResourceLoaderOpt ions& options, const String& charset) const override 66 Resource* create(const ResourceRequest& request, const ResourceLoaderOpt ions& options, const String& charset) const override
67 { 67 {
68 return new CSSStyleSheetResource(request, options, charset); 68 return new CSSStyleSheetResource(request, options, charset);
69 } 69 }
70 }; 70 };
71 CSSStyleSheetResource(const ResourceRequest&, const ResourceLoaderOptions&, const String& charset); 71 CSSStyleSheetResource(const ResourceRequest&, const ResourceLoaderOptions&, const String& charset);
72 72
73 bool canUseSheet(MIMETypeCheck) const;
74 void checkNotify() override; 73 void checkNotify() override;
75 74
75 bool canUseSheet(MIMETypeCheck) const;
76 void setParsedStyleSheetCache(StyleSheetContents*); 76 void setParsedStyleSheetCache(StyleSheetContents*);
77 77
78 void destroyDecodedDataIfPossible() override; 78 void destroyDecodedDataIfPossible() override;
79 void destroyDecodedDataForFailedRevalidation() override { destroyDecodedData IfPossible(); } 79 void destroyDecodedDataForFailedRevalidation() override { destroyDecodedData IfPossible(); }
hiroshige 2016/08/31 07:30:25 We must clear |m_decodedSheetText| in destroyDecod
kouhei (in TOK) 2016/08/31 10:27:43 Done. Tests seems to be failing as expected.
80 80
81 String m_decodedSheetText; 81 String m_decodedSheetText;
82 82
83 Member<StyleSheetContents> m_parsedStyleSheetCache; 83 Member<StyleSheetContents> m_parsedStyleSheetCache;
84 84
85 bool m_didNotifyFirstData; 85 bool m_didNotifyFirstData;
86 }; 86 };
87 87
88 DEFINE_RESOURCE_TYPE_CASTS(CSSStyleSheet); 88 DEFINE_RESOURCE_TYPE_CASTS(CSSStyleSheet);
89 89
90 } // namespace blink 90 } // namespace blink
91 91
92 #endif 92 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698