1 /* 2 * Copyright (C) 1999 Lars Knoll (knoll (at) 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 CSSDefaultStyleSheets_h 24 #define CSSDefaultStyleSheets_h 25 26 #include "platform/heap/Handle.h" 27 28 namespace blink { 29 30 class Element; 31 class RuleSet; 32 class StyleSheetContents; 33 34 class CSSDefaultStyleSheets : public NoBaseWillBeGarbageCollected<CSSDefaultStyleSheets> { 35 public: 36 static CSSDefaultStyleSheets& instance(); 37 38 void ensureDefaultStyleSheetsForElement(Element*, bool& changedDefaultStyle); 39 40 RuleSet* defaultStyle() { return m_defaultStyle.get(); } 41 RuleSet* defaultViewportStyle() { return m_defaultViewportStyle.get(); } 42 RuleSet* defaultQuirksStyle() { return m_defaultQuirksStyle.get(); } 43 RuleSet* defaultPrintStyle() { return m_defaultPrintStyle.get(); } 44 RuleSet* defaultViewSourceStyle(); 45 RuleSet* defaultTransitionStyle(); 46 47 // FIXME: Remove WAP support. 48 RuleSet* defaultXHTMLMobileProfileStyle(); 49 50 StyleSheetContents* defaultStyleSheet() { return m_defaultStyleSheet.get(); } 51 StyleSheetContents* viewportStyleSheet() { return m_viewportStyleSheet.get(); } 52 StyleSheetContents* quirksStyleSheet() { return m_quirksStyleSheet.get(); } 53 StyleSheetContents* svgStyleSheet() { return m_svgStyleSheet.get(); } 54 StyleSheetContents* mathmlStyleSheet() { return m_mathmlStyleSheet.get(); } 55 StyleSheetContents* mediaControlsStyleSheet() { return m_mediaControlsStyleSheet.get(); } 56 StyleSheetContents* fullscreenStyleSheet() { return m_fullscreenStyleSheet.get(); } 57 58 void trace(Visitor*); 59 60 private: 61 CSSDefaultStyleSheets(); 62 63 OwnPtrWillBeMember<RuleSet> m_defaultStyle; 64 OwnPtrWillBeMember<RuleSet> m_defaultViewportStyle; 65 OwnPtrWillBeMember<RuleSet> m_defaultQuirksStyle; 66 OwnPtrWillBeMember<RuleSet> m_defaultPrintStyle; 67 OwnPtrWillBeMember<RuleSet> m_defaultViewSourceStyle; 68 OwnPtrWillBeMember<RuleSet> m_defaultXHTMLMobileProfileStyle; 69 OwnPtrWillBeMember<RuleSet> m_defaultTransitionStyle; 70 71 RefPtrWillBeMember<StyleSheetContents> m_defaultStyleSheet; 72 RefPtrWillBeMember<StyleSheetContents> m_viewportStyleSheet; 73 RefPtrWillBeMember<StyleSheetContents> m_quirksStyleSheet; 74 RefPtrWillBeMember<StyleSheetContents> m_svgStyleSheet; 75 RefPtrWillBeMember<StyleSheetContents> m_mathmlStyleSheet; 76 RefPtrWillBeMember<StyleSheetContents> m_mediaControlsStyleSheet; 77 RefPtrWillBeMember<StyleSheetContents> m_fullscreenStyleSheet; 78 }; 79 80 } // namespace blink 81 82 #endif // CSSDefaultStyleSheets_h 83