diff options
Diffstat (limited to 'Source/WebCore/bindings/js/JSCSSValueCustom.cpp')
-rw-r--r-- | Source/WebCore/bindings/js/JSCSSValueCustom.cpp | 88 |
1 files changed, 24 insertions, 64 deletions
diff --git a/Source/WebCore/bindings/js/JSCSSValueCustom.cpp b/Source/WebCore/bindings/js/JSCSSValueCustom.cpp index 050e4b8e3..13e23701d 100644 --- a/Source/WebCore/bindings/js/JSCSSValueCustom.cpp +++ b/Source/WebCore/bindings/js/JSCSSValueCustom.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 @@ -24,90 +24,50 @@ */ #include "config.h" -#include "JSCSSValue.h" -#include "CSSPrimitiveValue.h" -#include "CSSValueList.h" -#include "JSCSSPrimitiveValue.h" -#include "JSCSSValueList.h" +#include "DeprecatedCSSOMPrimitiveValue.h" +#include "DeprecatedCSSOMValueList.h" +#include "JSDeprecatedCSSOMPrimitiveValue.h" +#include "JSDeprecatedCSSOMValue.h" +#include "JSDeprecatedCSSOMValueList.h" #include "JSNode.h" -#include "JSWebKitCSSTransformValue.h" -#include "WebKitCSSTransformValue.h" - -#if ENABLE(CSS_FILTERS) -#include "JSWebKitCSSFilterValue.h" -#include "WebKitCSSFilterValue.h" -#endif - -#if ENABLE(SVG) -#include "JSSVGColor.h" -#include "JSSVGPaint.h" -#include "SVGColor.h" -#include "SVGPaint.h" -#endif using namespace JSC; namespace WebCore { -bool JSCSSValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void* context, SlotVisitor& visitor) +bool JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void* context, SlotVisitor& visitor) { - JSCSSValue* jsCSSValue = jsCast<JSCSSValue*>(handle.get().asCell()); + JSDeprecatedCSSOMValue* jsCSSValue = jsCast<JSDeprecatedCSSOMValue*>(handle.slot()->asCell()); if (!jsCSSValue->hasCustomProperties()) return false; DOMWrapperWorld* world = static_cast<DOMWrapperWorld*>(context); - void* root = world->m_cssValueRoots.get(&jsCSSValue->impl()); + void* root = world->m_deprecatedCSSOMValueRoots.get(&jsCSSValue->wrapped()); if (!root) return false; return visitor.containsOpaqueRoot(root); } -void JSCSSValueOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* context) +void JSDeprecatedCSSOMValueOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* context) { - JSCSSValue* jsCSSValue = jsCast<JSCSSValue*>(handle.get().asCell()); + JSDeprecatedCSSOMValue* jsCSSValue = static_cast<JSDeprecatedCSSOMValue*>(handle.slot()->asCell()); DOMWrapperWorld& world = *static_cast<DOMWrapperWorld*>(context); - world.m_cssValueRoots.remove(&jsCSSValue->impl()); - uncacheWrapper(world, &jsCSSValue->impl(), jsCSSValue); - jsCSSValue->releaseImpl(); + world.m_deprecatedCSSOMValueRoots.remove(&jsCSSValue->wrapped()); + uncacheWrapper(world, &jsCSSValue->wrapped(), jsCSSValue); } -JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, CSSValue* value) +JSValue toJSNewlyCreated(ExecState*, JSDOMGlobalObject* globalObject, Ref<DeprecatedCSSOMValue>&& value) { - if (!value) - return jsNull(); - - // Scripts should only ever see cloned CSSValues, never the internal ones. - ASSERT(value->isCSSOMSafe()); - - // If we're here under erroneous circumstances, prefer returning null over a potentially insecure value. - if (!value->isCSSOMSafe()) - return jsNull(); - - JSObject* wrapper = getCachedWrapper(currentWorld(exec), value); - - if (wrapper) - return wrapper; - - if (value->isWebKitCSSTransformValue()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSTransformValue, value); -#if ENABLE(CSS_FILTERS) - else if (value->isWebKitCSSFilterValue()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, WebKitCSSFilterValue, value); -#endif - else if (value->isValueList()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSValueList, value); -#if ENABLE(SVG) - else if (value->isSVGPaint()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, SVGPaint, value); - else if (value->isSVGColor()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, SVGColor, value); -#endif - else if (value->isPrimitiveValue()) - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSPrimitiveValue, value); - else - wrapper = CREATE_DOM_WRAPPER(exec, globalObject, CSSValue, value); + if (value->isValueList()) + return createWrapper<DeprecatedCSSOMValueList>(globalObject, WTFMove(value)); + if (value->isPrimitiveValue()) + return createWrapper<DeprecatedCSSOMPrimitiveValue>(globalObject, WTFMove(value)); + return createWrapper<DeprecatedCSSOMValue>(globalObject, WTFMove(value)); +} - return wrapper; +JSValue toJS(ExecState* state, JSDOMGlobalObject* globalObject, DeprecatedCSSOMValue& value) +{ + return wrap(state, globalObject, value); } } // namespace WebCore |