diff options
Diffstat (limited to 'Source/WebCore/bindings/js/DOMWrapperWorld.h')
-rw-r--r-- | Source/WebCore/bindings/js/DOMWrapperWorld.h | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/Source/WebCore/bindings/js/DOMWrapperWorld.h b/Source/WebCore/bindings/js/DOMWrapperWorld.h index ac770129a..6eaec1000 100644 --- a/Source/WebCore/bindings/js/DOMWrapperWorld.h +++ b/Source/WebCore/bindings/js/DOMWrapperWorld.h @@ -19,56 +19,55 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef DOMWrapperWorld_h -#define DOMWrapperWorld_h +#pragma once #include "JSDOMGlobalObject.h" -#include <runtime/WeakGCMap.h> #include <wtf/Forward.h> namespace WebCore { -class CSSValue; -class JSDOMWrapper; +class DeprecatedCSSOMValue; class ScriptController; typedef HashMap<void*, JSC::Weak<JSC::JSObject>> DOMObjectWrapperMap; -typedef JSC::WeakGCMap<StringImpl*, JSC::JSString, PtrHash<StringImpl*>> JSStringCache; class DOMWrapperWorld : public RefCounted<DOMWrapperWorld> { public: - static PassRefPtr<DOMWrapperWorld> create(JSC::VM* vm, bool isNormal = false) + static Ref<DOMWrapperWorld> create(JSC::VM& vm, bool isNormal = false) { - return adoptRef(new DOMWrapperWorld(vm, isNormal)); + return adoptRef(*new DOMWrapperWorld(vm, isNormal)); } - ~DOMWrapperWorld(); + WEBCORE_EXPORT ~DOMWrapperWorld(); // Free as much memory held onto by this world as possible. - void clearWrappers(); + WEBCORE_EXPORT void clearWrappers(); void didCreateWindowShell(ScriptController* scriptController) { m_scriptControllersWithWindowShells.add(scriptController); } void didDestroyWindowShell(ScriptController* scriptController) { m_scriptControllersWithWindowShells.remove(scriptController); } + void setShadowRootIsAlwaysOpen() { m_shadowRootIsAlwaysOpen = true; } + bool shadowRootIsAlwaysOpen() const { return m_shadowRootIsAlwaysOpen; } + // FIXME: can we make this private? DOMObjectWrapperMap m_wrappers; - JSStringCache m_stringCache; - HashMap<CSSValue*, void*> m_cssValueRoots; + HashMap<DeprecatedCSSOMValue*, void*> m_deprecatedCSSOMValueRoots; bool isNormal() const { return m_isNormal; } - JSC::VM* vm() const { return m_vm; } + JSC::VM& vm() const { return m_vm; } protected: - DOMWrapperWorld(JSC::VM*, bool isNormal); + DOMWrapperWorld(JSC::VM&, bool isNormal); private: - JSC::VM* m_vm; + JSC::VM& m_vm; HashSet<ScriptController*> m_scriptControllersWithWindowShells; bool m_isNormal; + bool m_shadowRootIsAlwaysOpen { false }; }; DOMWrapperWorld& normalWorld(JSC::VM&); -DOMWrapperWorld& mainThreadNormalWorld(); +WEBCORE_EXPORT DOMWrapperWorld& mainThreadNormalWorld(); inline DOMWrapperWorld& debuggerWorld() { return mainThreadNormalWorld(); } inline DOMWrapperWorld& pluginWorld() { return mainThreadNormalWorld(); } @@ -77,6 +76,9 @@ inline DOMWrapperWorld& currentWorld(JSC::ExecState* exec) return JSC::jsCast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->world(); } +inline DOMWrapperWorld& worldForDOMObject(JSC::JSObject* object) +{ + return JSC::jsCast<JSDOMGlobalObject*>(object->globalObject())->world(); +} + } // namespace WebCore - -#endif // DOMWrapperWorld_h |