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

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

Issue 1555993002: Reduce risk of MediaQueryEvaluator-induced leaks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * CSS Media Query Evaluator 2 * CSS Media Query Evaluator
3 * 3 *
4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. 4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>.
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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 // CSS3 Module "Media Queries" (http://www.w3.org/TR/css3-mediaqueries/) 46 // CSS3 Module "Media Queries" (http://www.w3.org/TR/css3-mediaqueries/)
47 // Special constructors are needed, if simple media queries are to be 47 // Special constructors are needed, if simple media queries are to be
48 // evaluated without knowledge of the medium features. This can happen 48 // evaluated without knowledge of the medium features. This can happen
49 // for example when parsing UA stylesheets, if evaluation is done 49 // for example when parsing UA stylesheets, if evaluation is done
50 // right after parsing. 50 // right after parsing.
51 // 51 //
52 // the boolean parameter is used to approximate results of evaluation, if 52 // the boolean parameter is used to approximate results of evaluation, if
53 // the device characteristics are not known. This can be used to prune the loadi ng 53 // the device characteristics are not known. This can be used to prune the loadi ng
54 // of stylesheets to only those which are probable to match. 54 // of stylesheets to only those which are probable to match.
55 55
56 class CORE_EXPORT MediaQueryEvaluator { 56 class CORE_EXPORT MediaQueryEvaluator final : public NoBaseWillBeGarbageCollecte dFinalized<MediaQueryEvaluator> {
57 WTF_MAKE_NONCOPYABLE(MediaQueryEvaluator); USING_FAST_MALLOC(MediaQueryEvalu ator); 57 WTF_MAKE_NONCOPYABLE(MediaQueryEvaluator);
58 USING_FAST_MALLOC_WILL_BE_REMOVED(MediaQueryEvaluator);
58 public: 59 public:
59 // Creates evaluator which evaluates only simple media queries 60 // Creates evaluator which evaluates only simple media queries
60 // Evaluator returns true for "all", and returns value of \mediaFeatureResul t 61 // Evaluator returns true for "all", and returns value of \mediaFeatureResul t
61 // for any media features. 62 // for any media features.
62 63
63 explicit MediaQueryEvaluator(bool mediaFeatureResult = false); 64 explicit MediaQueryEvaluator(bool mediaFeatureResult = false);
64 65
65 // Creates evaluator which evaluates only simple media queries 66 // Creates evaluator which evaluates only simple media queries
66 // Evaluator returns true for acceptedMediaType and returns value of \media featureResult 67 // Evaluator returns true for acceptedMediaType and returns value of \media featureResult
67 // for any media features. 68 // for any media features.
(...skipping 12 matching lines...) Expand all
80 81
81 // Evaluates a list of media queries. 82 // Evaluates a list of media queries.
82 bool eval(const MediaQuerySet*, MediaQueryResultList* = 0) const; 83 bool eval(const MediaQuerySet*, MediaQueryResultList* = 0) const;
83 84
84 // Evaluates media query. 85 // Evaluates media query.
85 bool eval(const MediaQuery*, MediaQueryResultList*) const; 86 bool eval(const MediaQuery*, MediaQueryResultList*) const;
86 87
87 // Evaluates media query subexpression, ie "and (media-feature: value)" part . 88 // Evaluates media query subexpression, ie "and (media-feature: value)" part .
88 bool eval(const MediaQueryExp*) const; 89 bool eval(const MediaQueryExp*) const;
89 90
91 DECLARE_TRACE();
92
90 private: 93 private:
91 const String mediaType() const; 94 const String mediaType() const;
92 95
93 String m_mediaType; 96 String m_mediaType;
94 bool m_expectedResult; 97 bool m_expectedResult;
95 RefPtrWillBePersistent<MediaValues> m_mediaValues; 98 RefPtrWillBeMember<MediaValues> m_mediaValues;
96 }; 99 };
97 100
98 } // namespace 101 } // namespace
99 #endif 102 #endif
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/css/MediaQueryEvaluator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698