blob: 04c587eb6237044a23c446f37bb29716ede74c45 [file] [log] [blame]
Ben Murdoch02772c62013-07-26 10:21:05 +01001/*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2013 Google Inc. All rights reserved.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public License
17 * along with this library; see the file COPYING.LIB. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 *
21 */
22
23#ifndef MatchRequest_h
24#define MatchRequest_h
25
Torne (Richard Coles)09380292014-02-21 12:17:33 +000026#include "core/css/CSSStyleSheet.h"
Ben Murdoch02772c62013-07-26 10:21:05 +010027#include "core/css/RuleSet.h"
28
29namespace WebCore {
30
31class ContainerNode;
32
33class MatchRequest {
Torne (Richard Coles)43e75022014-03-21 14:26:12 +000034 STACK_ALLOCATED();
Ben Murdoch02772c62013-07-26 10:21:05 +010035public:
Ben Murdocha9984bf2014-04-10 11:22:39 +010036 MatchRequest(RuleSet* ruleSet, bool includeEmptyRules = false, const ContainerNode* scope = 0, const CSSStyleSheet* cssSheet = 0, bool elementApplyAuthorStyles = true, unsigned styleSheetIndex = 0)
Ben Murdoch02772c62013-07-26 10:21:05 +010037 : ruleSet(ruleSet)
38 , includeEmptyRules(includeEmptyRules)
39 , scope(scope)
Ben Murdocha9984bf2014-04-10 11:22:39 +010040 , styleSheet(cssSheet)
Ben Murdoch3c9e4ae2013-08-12 14:20:44 +010041 , elementApplyAuthorStyles(elementApplyAuthorStyles)
Torne (Richard Coles)51b29062013-11-28 11:56:03 +000042 , styleSheetIndex(styleSheetIndex)
Ben Murdoch02772c62013-07-26 10:21:05 +010043 {
44 // Now that we're about to read from the RuleSet, we're done adding more
45 // rules to the set and we should make sure it's compacted.
46 ruleSet->compactRulesIfNeeded();
47 }
48
Torne (Richard Coles)43e75022014-03-21 14:26:12 +000049 RawPtrWillBeMember<const RuleSet> ruleSet;
Ben Murdoch02772c62013-07-26 10:21:05 +010050 const bool includeEmptyRules;
Torne (Richard Coles)32348042014-05-14 12:12:57 +010051 RawPtrWillBeMember<const ContainerNode> scope;
Ben Murdocha9984bf2014-04-10 11:22:39 +010052 RawPtrWillBeMember<const CSSStyleSheet> styleSheet;
Ben Murdoch3c9e4ae2013-08-12 14:20:44 +010053 const bool elementApplyAuthorStyles;
Torne (Richard Coles)51b29062013-11-28 11:56:03 +000054 const unsigned styleSheetIndex;
Ben Murdoch02772c62013-07-26 10:21:05 +010055};
56
57} // namespace WebCore
58
59#endif // MatchRequest_h