diff options
Diffstat (limited to 'Source/WebCore/bindings/js/JSCSSRuleCustom.cpp')
-rw-r--r-- | Source/WebCore/bindings/js/JSCSSRuleCustom.cpp | 106 |
1 files changed, 39 insertions, 67 deletions
diff --git a/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp b/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp index 3003a70eb..666757bf7 100644 --- a/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp +++ b/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp @@ -10,10 +10,10 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR @@ -26,29 +26,28 @@ #include "config.h" #include "JSCSSRule.h" -#include "CSSCharsetRule.h" #include "CSSFontFaceRule.h" #include "CSSImportRule.h" +#include "CSSKeyframeRule.h" +#include "CSSKeyframesRule.h" #include "CSSMediaRule.h" +#include "CSSNamespaceRule.h" #include "CSSPageRule.h" #include "CSSStyleRule.h" #include "CSSSupportsRule.h" -#include "JSCSSCharsetRule.h" #include "JSCSSFontFaceRule.h" -#include "JSCSSHostRule.h" #include "JSCSSImportRule.h" +#include "JSCSSKeyframeRule.h" +#include "JSCSSKeyframesRule.h" #include "JSCSSMediaRule.h" +#include "JSCSSNamespaceRule.h" #include "JSCSSPageRule.h" #include "JSCSSStyleRule.h" #include "JSCSSSupportsRule.h" #include "JSNode.h" #include "JSStyleSheetCustom.h" -#include "JSWebKitCSSKeyframeRule.h" -#include "JSWebKitCSSKeyframesRule.h" #include "JSWebKitCSSRegionRule.h" #include "JSWebKitCSSViewportRule.h" -#include "WebKitCSSKeyframeRule.h" -#include "WebKitCSSKeyframesRule.h" #include "WebKitCSSRegionRule.h" #include "WebKitCSSViewportRule.h" @@ -56,75 +55,48 @@ using namespace JSC; namespace WebCore { -void JSCSSRule::visitChildren(JSCell* cell, SlotVisitor& visitor) +void JSCSSRule::visitAdditionalChildren(SlotVisitor& visitor) { - JSCSSRule* thisObject = jsCast<JSCSSRule*>(cell); - ASSERT_GC_OBJECT_INHERITS(thisObject, info()); - COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); - ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); - Base::visitChildren(thisObject, visitor); - visitor.addOpaqueRoot(root(&thisObject->impl())); + visitor.addOpaqueRoot(root(&wrapped())); } -JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, CSSRule* rule) +JSValue toJSNewlyCreated(ExecState*, JSDOMGlobalObject* globalObject, Ref<CSSRule>&& rule) { - if (!rule) - return jsNull(); - - JSObject* wrapper = getCachedWrapper(currentWorld(exec), rule); - if (wrapper) - return wrapper; - switch (rule->type()) { - case CSSRule::STYLE_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSStyleRule, rule); - break; - case CSSRule::MEDIA_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSMediaRule, rule); - break; - case CSSRule::FONT_FACE_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSFontFaceRule, rule); - break; - case CSSRule::PAGE_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSPageRule, rule); - break; - case CSSRule::IMPORT_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSImportRule, rule); - break; - case CSSRule::CHARSET_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSCharsetRule, rule); - break; - case CSSRule::WEBKIT_KEYFRAME_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSKeyframeRule, rule); - break; - case CSSRule::WEBKIT_KEYFRAMES_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSKeyframesRule, rule); - break; -#if ENABLE(CSS3_CONDITIONAL_RULES) - case CSSRule::SUPPORTS_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSSupportsRule, rule); - break; -#endif + case CSSRule::STYLE_RULE: + return createWrapper<CSSStyleRule>(globalObject, WTFMove(rule)); + case CSSRule::MEDIA_RULE: + return createWrapper<CSSMediaRule>(globalObject, WTFMove(rule)); + case CSSRule::FONT_FACE_RULE: + return createWrapper<CSSFontFaceRule>(globalObject, WTFMove(rule)); + case CSSRule::PAGE_RULE: + return createWrapper<CSSPageRule>(globalObject, WTFMove(rule)); + case CSSRule::IMPORT_RULE: + return createWrapper<CSSImportRule>(globalObject, WTFMove(rule)); + case CSSRule::NAMESPACE_RULE: + return createWrapper<CSSNamespaceRule>(globalObject, WTFMove(rule)); + case CSSRule::KEYFRAME_RULE: + return createWrapper<CSSKeyframeRule>(globalObject, WTFMove(rule)); + case CSSRule::KEYFRAMES_RULE: + return createWrapper<CSSKeyframesRule>(globalObject, WTFMove(rule)); + case CSSRule::SUPPORTS_RULE: + return createWrapper<CSSSupportsRule>(globalObject, WTFMove(rule)); #if ENABLE(CSS_DEVICE_ADAPTATION) - case CSSRule::WEBKIT_VIEWPORT_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSViewportRule, rule); - break; + case CSSRule::WEBKIT_VIEWPORT_RULE: + return createWrapper<WebKitCSSViewportRule>(globalObject, WTFMove(rule)); #endif #if ENABLE(CSS_REGIONS) - case CSSRule::WEBKIT_REGION_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSRegionRule, rule); - break; + case CSSRule::WEBKIT_REGION_RULE: + return createWrapper<WebKitCSSRegionRule>(globalObject, WTFMove(rule)); #endif -#if ENABLE(SHADOW_DOM) - case CSSRule::HOST_RULE: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSHostRule, rule); - break; -#endif - default: - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSRule, rule); + default: + return createWrapper<CSSRule>(globalObject, WTFMove(rule)); } +} - return wrapper; +JSValue toJS(ExecState* state, JSDOMGlobalObject* globalObject, CSSRule& object) +{ + return wrap(state, globalObject, object); } } // namespace WebCore |