1926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/* 2926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 3926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) 4926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) 5926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 6926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 7926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> 8926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) 9926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (c) 2011, Code Aurora Forum. All rights reserved. 10926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) Research In Motion Limited 2011. All rights reserved. 11926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Copyright (C) 2012 Google Inc. All rights reserved. 12926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 13926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * This library is free software; you can redistribute it and/or 14926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * modify it under the terms of the GNU Library General Public 15926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * License as published by the Free Software Foundation; either 16926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * version 2 of the License, or (at your option) any later version. 17926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 18926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * This library is distributed in the hope that it will be useful, 19926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 20926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Library General Public License for more details. 22926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * 23926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * You should have received a copy of the GNU Library General Public License 24926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 25926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 26926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Boston, MA 02110-1301, USA. 27926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 28926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 29926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "config.h" 3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/CSSDefaultStyleSheets.h" 3153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 32926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#include "UserAgentStyleSheets.h" 3353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/MediaQueryEvaluator.h" 3453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/RuleSet.h" 3553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/StyleSheetContents.h" 36f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)#include "core/dom/FullscreenElementStack.h" 37e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "core/html/HTMLAnchorElement.h" 38e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "core/html/HTMLHtmlElement.h" 39e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "core/html/HTMLVideoElement.h" 4053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/RenderTheme.h" 41926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 42926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)namespace WebCore { 43926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 44926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)using namespace HTMLNames; 45926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 46926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)RuleSet* CSSDefaultStyleSheets::defaultStyle; 47926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)RuleSet* CSSDefaultStyleSheets::defaultQuirksStyle; 48926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)RuleSet* CSSDefaultStyleSheets::defaultPrintStyle; 49926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)RuleSet* CSSDefaultStyleSheets::defaultViewSourceStyle; 50926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 51926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::simpleDefaultStyleSheet; 52926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::defaultStyleSheet; 53926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::quirksStyleSheet; 54926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::svgStyleSheet; 55926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::mathMLStyleSheet; 56926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::mediaControlsStyleSheet; 57926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)StyleSheetContents* CSSDefaultStyleSheets::fullscreenStyleSheet; 58926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 59926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)// FIXME: It would be nice to use some mechanism that guarantees this is in sync with the real UA stylesheet. 60304f76f9712bb8bf182649e3408252f91dbb8d53Torne (Richard Coles)static const char* simpleUserAgentStyleSheet = "html,body,div{display:block}head{display:none}body{margin:8px}div:focus,span:focus{outline:auto 5px -webkit-focus-ring-color}a:-webkit-any-link{color:-webkit-link;text-decoration:underline}a:-webkit-any-link:active{color:-webkit-activelink}body:-webkit-seamless-document{margin:0}body:-webkit-full-page-media{background-color:black}"; 61926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 62926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static inline bool elementCanUseSimpleDefaultStyle(Element* e) 63926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 64e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch return isHTMLHtmlElement(e) || e->hasTagName(headTag) || e->hasTagName(bodyTag) || e->hasTagName(divTag) || e->hasTagName(spanTag) || e->hasTagName(brTag) || isHTMLAnchorElement(e); 65926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 66926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 67926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static const MediaQueryEvaluator& screenEval() 68926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 69926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) DEFINE_STATIC_LOCAL(const MediaQueryEvaluator, staticScreenEval, ("screen")); 70926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return staticScreenEval; 71926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 72926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 73926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static const MediaQueryEvaluator& printEval() 74926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 75926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) DEFINE_STATIC_LOCAL(const MediaQueryEvaluator, staticPrintEval, ("print")); 76926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return staticPrintEval; 77926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 78926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 79926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static StyleSheetContents* parseUASheet(const String& str) 80926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 815267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) StyleSheetContents* sheet = StyleSheetContents::create(CSSParserContext(UASheetMode)).leakRef(); // leak the sheet on purpose 82926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) sheet->parseString(str); 83926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return sheet; 84926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 86926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)static StyleSheetContents* parseUASheet(const char* characters, unsigned size) 87926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 88926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return parseUASheet(String(characters, size)); 89926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 90926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 91926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void CSSDefaultStyleSheets::initDefaultStyle(Element* root) 92926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 93926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (!defaultStyle) { 94926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (!root || elementCanUseSimpleDefaultStyle(root)) 95926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) loadSimpleDefaultStyle(); 96926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) else 97926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) loadFullDefaultStyle(); 98926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 99926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 100926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 101926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void CSSDefaultStyleSheets::loadFullDefaultStyle() 102926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 103926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (simpleDefaultStyleSheet) { 104926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(defaultStyle); 105926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(defaultPrintStyle == defaultStyle); 106926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) delete defaultStyle; 107926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) simpleDefaultStyleSheet->deref(); 108926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle = RuleSet::create().leakPtr(); 109926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle = RuleSet::create().leakPtr(); 110926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) simpleDefaultStyleSheet = 0; 111926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } else { 112926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(!defaultStyle); 113926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle = RuleSet::create().leakPtr(); 114926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle = RuleSet::create().leakPtr(); 115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultQuirksStyle = RuleSet::create().leakPtr(); 116926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 117926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 118926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // Strict-mode rules. 119926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) String defaultRules = String(htmlUserAgentStyleSheet, sizeof(htmlUserAgentStyleSheet)) + RenderTheme::defaultTheme()->extraDefaultStyleSheet(); 120926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyleSheet = parseUASheet(defaultRules); 121926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle->addRulesFromSheet(defaultStyleSheet, screenEval()); 122926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle->addRulesFromSheet(defaultStyleSheet, printEval()); 123926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 124926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // Quirks-mode rules. 125926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) String quirksRules = String(quirksUserAgentStyleSheet, sizeof(quirksUserAgentStyleSheet)) + RenderTheme::defaultTheme()->extraQuirksStyleSheet(); 126926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) quirksStyleSheet = parseUASheet(quirksRules); 127926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultQuirksStyle->addRulesFromSheet(quirksStyleSheet, screenEval()); 128926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 129926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 130926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void CSSDefaultStyleSheets::loadSimpleDefaultStyle() 131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 132926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(!defaultStyle); 133926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(!simpleDefaultStyleSheet); 134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 135926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle = RuleSet::create().leakPtr(); 136926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // There are no media-specific rules in the simple default style. 137926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle = defaultStyle; 138926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultQuirksStyle = RuleSet::create().leakPtr(); 139926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 140926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) simpleDefaultStyleSheet = parseUASheet(simpleUserAgentStyleSheet, strlen(simpleUserAgentStyleSheet)); 141926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle->addRulesFromSheet(simpleDefaultStyleSheet, screenEval()); 142926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 143926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // No need to initialize quirks sheet yet as there are no quirk rules for elements allowed in simple default style. 144926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 145926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 146926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)RuleSet* CSSDefaultStyleSheets::viewSourceStyle() 147926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 148926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (!defaultViewSourceStyle) { 149926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultViewSourceStyle = RuleSet::create().leakPtr(); 150926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultViewSourceStyle->addRulesFromSheet(parseUASheet(sourceUserAgentStyleSheet, sizeof(sourceUserAgentStyleSheet)), screenEval()); 151926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 152926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) return defaultViewSourceStyle; 153926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 154926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 155926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 156926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)void CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement(Element* element, bool& changedDefaultStyle) 157926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (simpleDefaultStyleSheet && !elementCanUseSimpleDefaultStyle(element)) { 159926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) loadFullDefaultStyle(); 160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) changedDefaultStyle = true; 161926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 162926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 163304f76f9712bb8bf182649e3408252f91dbb8d53Torne (Richard Coles) // FIXME: We should assert that the sheet only styles SVG elements. 164926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (element->isSVGElement() && !svgStyleSheet) { 165926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) svgStyleSheet = parseUASheet(svgUserAgentStyleSheet, sizeof(svgUserAgentStyleSheet)); 166926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle->addRulesFromSheet(svgStyleSheet, screenEval()); 167926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle->addRulesFromSheet(svgStyleSheet, printEval()); 168926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) changedDefaultStyle = true; 169926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 170926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 171304f76f9712bb8bf182649e3408252f91dbb8d53Torne (Richard Coles) // FIXME: We should assert that this sheet only contains rules for <video> and <audio>. 172e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch if (!mediaControlsStyleSheet && (isHTMLVideoElement(element) || element->hasTagName(audioTag))) { 173926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) String mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element->document()->page())->extraMediaControlsStyleSheet(); 174926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) mediaControlsStyleSheet = parseUASheet(mediaRules); 175926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle->addRulesFromSheet(mediaControlsStyleSheet, screenEval()); 176926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultPrintStyle->addRulesFromSheet(mediaControlsStyleSheet, printEval()); 177926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) changedDefaultStyle = true; 178926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 179926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 180f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) if (!fullscreenStyleSheet && FullscreenElementStack::isFullScreen(element->document())) { 181926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) String fullscreenRules = String(fullscreenUserAgentStyleSheet, sizeof(fullscreenUserAgentStyleSheet)) + RenderTheme::defaultTheme()->extraFullScreenStyleSheet(); 182926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) fullscreenStyleSheet = parseUASheet(fullscreenRules); 183926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultStyle->addRulesFromSheet(fullscreenStyleSheet, screenEval()); 184926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) defaultQuirksStyle->addRulesFromSheet(fullscreenStyleSheet, screenEval()); 185926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) changedDefaultStyle = true; 186926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 187926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 188926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(defaultStyle->features().idsInRules.isEmpty()); 189926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT(mathMLStyleSheet || defaultStyle->features().siblingRules.isEmpty()); 190926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 191926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 192926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} // namespace WebCore 193