summaryrefslogtreecommitdiff
path: root/Source/WebCore/bindings/js/DOMWrapperWorld.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/bindings/js/DOMWrapperWorld.h')
-rw-r--r--Source/WebCore/bindings/js/DOMWrapperWorld.h38
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