diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h')
-rw-r--r-- | Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h b/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h index e2e93e14e..b0b36f9be 100644 --- a/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h +++ b/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h @@ -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,15 +24,14 @@ * */ -#ifndef JSWorkerGlobalScopeBase_h -#define JSWorkerGlobalScopeBase_h +#pragma once #include "JSDOMGlobalObject.h" +#include "JSDOMWrapper.h" namespace WebCore { class JSDedicatedWorkerGlobalScope; - class JSSharedWorkerGlobalScope; class JSWorkerGlobalScope; class WorkerGlobalScope; @@ -43,7 +42,8 @@ namespace WebCore { DECLARE_INFO; - WorkerGlobalScope& impl() const { return *m_impl; } + WorkerGlobalScope& wrapped() const { return *m_wrapped; } + JSC::JSProxy* proxy() const { ASSERT(m_proxy); return m_proxy.get(); } ScriptExecutionContext* scriptExecutionContext() const; static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) @@ -53,34 +53,31 @@ namespace WebCore { static const JSC::GlobalObjectMethodTable s_globalObjectMethodTable; - static bool allowsAccessFrom(const JSC::JSGlobalObject*, JSC::ExecState*); - static bool supportsProfiling(const JSC::JSGlobalObject*); static bool supportsRichSourceInfo(const JSC::JSGlobalObject*); static bool shouldInterruptScript(const JSC::JSGlobalObject*); static bool shouldInterruptScriptBeforeTimeout(const JSC::JSGlobalObject*); - static bool javaScriptExperimentsEnabled(const JSC::JSGlobalObject*); - static void queueTaskToEventLoop(const JSC::JSGlobalObject*, PassRefPtr<JSC::Microtask>); + static JSC::RuntimeFlags javaScriptRuntimeFlags(const JSC::JSGlobalObject*); + static void queueTaskToEventLoop(const JSC::JSGlobalObject*, Ref<JSC::Microtask>&&); protected: - JSWorkerGlobalScopeBase(JSC::VM&, JSC::Structure*, PassRefPtr<WorkerGlobalScope>); - void finishCreation(JSC::VM&); + JSWorkerGlobalScopeBase(JSC::VM&, JSC::Structure*, RefPtr<WorkerGlobalScope>&&); + void finishCreation(JSC::VM&, JSC::JSProxy*); + + static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&); private: - RefPtr<WorkerGlobalScope> m_impl; + RefPtr<WorkerGlobalScope> m_wrapped; + JSC::WriteBarrier<JSC::JSProxy> m_proxy; }; // Returns a JSWorkerGlobalScope or jsNull() // Always ignores the execState and passed globalObject, WorkerGlobalScope is itself a globalObject and will always use its own prototype chain. - JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, WorkerGlobalScope*); - JSC::JSValue toJS(JSC::ExecState*, WorkerGlobalScope*); - - JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSC::JSValue); - JSWorkerGlobalScope* toJSWorkerGlobalScope(JSC::JSValue); + JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, WorkerGlobalScope&); + inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, WorkerGlobalScope* scope) { return scope ? toJS(exec, globalObject, *scope) : JSC::jsNull(); } + JSC::JSValue toJS(JSC::ExecState*, WorkerGlobalScope&); + inline JSC::JSValue toJS(JSC::ExecState* exec, WorkerGlobalScope* scope) { return scope ? toJS(exec, *scope) : JSC::jsNull(); } -#if ENABLE(SHARED_WORKERS) - JSSharedWorkerGlobalScope* toJSSharedWorkerGlobalScope(JSC::JSValue); -#endif + JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSC::VM&, JSC::JSValue); + JSWorkerGlobalScope* toJSWorkerGlobalScope(JSC::VM&, JSC::JSValue); } // namespace WebCore - -#endif // JSWorkerGlobalScopeBase_h |