⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 268700 in webkit


Ignore:
Timestamp:
Oct 19, 2020, 4:50:58 PM (6 years ago)
Author:
Chris Dumez
Message:

Replace execStateFrom*() functions with globalObject() overloads
https://bugs.webkit.org/show_bug.cgi?id=217912

Reviewed by Darin Adler.

Introduce globalObject() overloads to replace existing execStateFrom*() functions.
This is a first step to promote code sharing. Ideally, code would not have to
differentiate workers from worklets as much as possible.

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::scriptExecutionContext const):

  • bindings/js/ScriptState.cpp:

(WebCore::execStateFromWorkerOrWorkletGlobalScope):

  • bindings/js/ScriptState.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::globalScopeWrapper):

  • bindings/js/WorkerScriptController.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::vm):
(WebCore::ScriptExecutionContext::execState):

  • inspector/agents/worker/WorkerAuditAgent.cpp:

(WebCore::WorkerAuditAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::injectedScriptForEval):

  • inspector/agents/worker/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::injectedScriptForEval):

  • workers/WorkerOrWorkletScriptController.h:
  • worklets/WorkletScriptController.cpp:

(WebCore::WorkletScriptController::globalScopeWrapper):

  • worklets/WorkletScriptController.h:
Location:
trunk/Source/WebCore
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r268697 r268700  
     12020-10-19  Chris Dumez  <cdumez@apple.com>
     2
     3        Replace execStateFrom*() functions with globalObject() overloads
     4        https://bugs.webkit.org/show_bug.cgi?id=217912
     5
     6        Reviewed by Darin Adler.
     7
     8        Introduce globalObject() overloads to replace existing execStateFrom*() functions.
     9        This is a first step to promote code sharing. Ideally, code would not have to
     10        differentiate workers from worklets as much as possible.
     11
     12        No new tests, no Web-facing behavior change.
     13
     14        * bindings/js/JSDOMGlobalObject.cpp:
     15        (WebCore::JSDOMGlobalObject::scriptExecutionContext const):
     16        * bindings/js/ScriptState.cpp:
     17        (WebCore::execStateFromWorkerOrWorkletGlobalScope):
     18        * bindings/js/ScriptState.h:
     19        * bindings/js/WorkerScriptController.cpp:
     20        (WebCore::WorkerScriptController::globalScopeWrapper):
     21        * bindings/js/WorkerScriptController.h:
     22        * dom/ScriptExecutionContext.cpp:
     23        (WebCore::ScriptExecutionContext::vm):
     24        (WebCore::ScriptExecutionContext::execState):
     25        * inspector/agents/worker/WorkerAuditAgent.cpp:
     26        (WebCore::WorkerAuditAgent::injectedScriptForEval):
     27        * inspector/agents/worker/WorkerDebuggerAgent.cpp:
     28        (WebCore::WorkerDebuggerAgent::injectedScriptForEval):
     29        * inspector/agents/worker/WorkerRuntimeAgent.cpp:
     30        (WebCore::WorkerRuntimeAgent::injectedScriptForEval):
     31        * workers/WorkerOrWorkletScriptController.h:
     32        * worklets/WorkletScriptController.cpp:
     33        (WebCore::WorkletScriptController::globalScopeWrapper):
     34        * worklets/WorkletScriptController.h:
     35
    1362020-10-19  Timothy Horton  <timothy_horton@apple.com>
    237
  • trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp

    r262620 r268700  
    6868
    6969    auto throwScope = DECLARE_THROW_SCOPE(context.vm());
    70     auto applePayRequest = convertDictionary<ApplePayRequest>(*context.execState(), data);
     70    auto applePayRequest = convertDictionary<ApplePayRequest>(*context.globalObject(), data);
    7171    if (throwScope.exception())
    7272        return Exception { ExistingExceptionError };
     
    306306            continue;
    307307
    308         auto& lexicalGlobalObject = *document().execState();
     308        auto& lexicalGlobalObject = *document().globalObject();
    309309        auto scope = DECLARE_THROW_SCOPE(lexicalGlobalObject.vm());
    310310        JSC::JSValue data;
     
    404404    auto& context = *scriptExecutionContext();
    405405    auto throwScope = DECLARE_THROW_SCOPE(context.vm());
    406     auto applePayErrors = convert<IDLSequence<IDLInterface<ApplePayError>>>(*context.execState(), paymentMethodErrors);
     406    auto applePayErrors = convert<IDLSequence<IDLInterface<ApplePayError>>>(*context.globalObject(), paymentMethodErrors);
    407407    if (throwScope.exception())
    408408        return Exception { ExistingExceptionError };
     
    443443
    444444    String errorMessage;
    445     auto merchantSession = PaymentMerchantSession::fromJS(*document().execState(), asObject(merchantSessionValue), errorMessage);
     445    auto merchantSession = PaymentMerchantSession::fromJS(*document().globalObject(), asObject(merchantSessionValue), errorMessage);
    446446    if (!merchantSession)
    447447        return Exception { TypeError, WTFMove(errorMessage) };
  • trunk/Source/WebCore/Modules/cache/DOMCache.cpp

    r263883 r268700  
    367367    // FIXME: for efficiency, we should load blobs directly instead of going through the readableStream path.
    368368    if (response->isBlobBody()) {
    369         auto streamOrException = response->readableStream(*scriptExecutionContext()->execState());
     369        auto streamOrException = response->readableStream(*scriptExecutionContext()->globalObject());
    370370        if (UNLIKELY(streamOrException.hasException())) {
    371371            promise.reject(streamOrException.releaseException());
  • trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp

    r266087 r268700  
    179179    // If loading, let's create a stream so that data is teed on both clones.
    180180    if (isLoading() && !m_readableStreamSource) {
    181         auto voidOrException = createReadableStream(*context.execState());
     181        auto voidOrException = createReadableStream(*context.globalObject());
    182182        if (UNLIKELY(voidOrException.hasException()))
    183183            return voidOrException.releaseException();
  • trunk/Source/WebCore/Modules/indexeddb/server/IDBSerializationContext.cpp

    r264486 r268700  
    9292}
    9393
    94 JSC::JSGlobalObject& IDBSerializationContext::execState()
     94JSC::JSGlobalObject& IDBSerializationContext::globalObject()
    9595{
    9696    initializeVM();
  • trunk/Source/WebCore/Modules/indexeddb/server/IDBSerializationContext.h

    r264486 r268700  
    4949
    5050    JSC::VM& vm();
    51     JSC::JSGlobalObject& execState();
     51    JSC::JSGlobalObject& globalObject();
    5252
    5353private:
  • trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp

    r261572 r268700  
    253253IDBError MemoryObjectStore::addRecord(MemoryBackingStoreTransaction& transaction, const IDBKeyData& keyData, const IDBValue& value)
    254254{
    255     auto indexKeys = generateIndexKeyMapForValue(m_serializationContext->execState(), m_info, keyData, value);
     255    auto indexKeys = generateIndexKeyMapForValue(m_serializationContext->globalObject(), m_info, keyData, value);
    256256    return addRecord(transaction, keyData, indexKeys, value);
    257257}
     
    343343
    344344    for (const auto& iterator : *m_keyValueStore) {
    345         auto jsValue = deserializeIDBValueToJSValue(m_serializationContext->execState(), iterator.value);
     345        auto jsValue = deserializeIDBValueToJSValue(m_serializationContext->globalObject(), iterator.value);
    346346        if (jsValue.isUndefinedOrNull())
    347347            return IDBError { };
    348348
    349349        IndexKey indexKey;
    350         generateIndexKeyForValue(m_serializationContext->execState(), index.info(), jsValue, indexKey, m_info.keyPath(), iterator.key);
     350        generateIndexKeyForValue(m_serializationContext->globalObject(), index.info(), jsValue, indexKey, m_info.keyPath(), iterator.key);
    351351
    352352        if (indexKey.isNull())
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp

    r267857 r268700  
    20872087    JSLockHolder locker(m_serializationContext->vm());
    20882088
    2089     auto jsValue = deserializeIDBValueToJSValue(m_serializationContext->execState(), value);
     2089    auto jsValue = deserializeIDBValueToJSValue(m_serializationContext->globalObject(), value);
    20902090    if (jsValue.isUndefinedOrNull())
    20912091        return IDBError { };
    20922092
    20932093    IndexKey indexKey;
    2094     generateIndexKeyForValue(m_serializationContext->execState(), info, jsValue, indexKey, objectStoreInfo.keyPath(), key);
     2094    generateIndexKeyForValue(m_serializationContext->globalObject(), info, jsValue, indexKey, objectStoreInfo.keyPath(), key);
    20952095
    20962096    if (indexKey.isNull())
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp

    r263041 r268700  
    759759
    760760    // Generate index keys up front for more accurate quota check.
    761     auto indexKeys = generateIndexKeyMapForValue(m_backingStore->serializationContext().execState(), *objectStoreInfo, usedKey, value);
     761    auto indexKeys = generateIndexKeyMapForValue(m_backingStore->serializationContext().globalObject(), *objectStoreInfo, usedKey, value);
    762762
    763763    if (overwriteMode == IndexedDB::ObjectStoreOverwriteMode::NoOverwrite) {
  • trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp

    r260707 r268700  
    309309{
    310310    auto scope = DECLARE_THROW_SCOPE(context.vm());
    311     JSC::JSValue data = JSONParse(context.execState(), string);
     311    JSC::JSValue data = JSONParse(context.globalObject(), string);
    312312    if (scope.exception())
    313313        return Exception { ExistingExceptionError };
     
    338338        String serializedData;
    339339        if (paymentMethod.data) {
    340             auto scope = DECLARE_THROW_SCOPE(document.execState()->vm());
    341             serializedData = JSONStringify(document.execState(), paymentMethod.data.get(), 0);
     340            auto scope = DECLARE_THROW_SCOPE(document.globalObject()->vm());
     341            serializedData = JSONStringify(document.globalObject(), paymentMethod.data.get(), 0);
    342342            if (scope.exception())
    343343                return Exception { ExistingExceptionError };
     
    358358        return totalResult.releaseException();
    359359
    360     auto detailsResult = checkAndCanonicalizeDetails(*document.execState(), details, options.requestShipping, ShouldValidatePaymentMethodIdentifier::No);
     360    auto detailsResult = checkAndCanonicalizeDetails(*document.globalObject(), details, options.requestShipping, ShouldValidatePaymentMethodIdentifier::No);
    361361    if (detailsResult.hasException())
    362362        return detailsResult.releaseException();
     
    648648    auto& context = *m_detailsPromise->scriptExecutionContext();
    649649    auto throwScope = DECLARE_THROW_SCOPE(context.vm());
    650     auto detailsUpdate = convertDictionary<PaymentDetailsUpdate>(*context.execState(), m_detailsPromise->result());
     650    auto detailsUpdate = convertDictionary<PaymentDetailsUpdate>(*context.globalObject(), m_detailsPromise->result());
    651651    if (throwScope.exception()) {
    652652        abortWithException(Exception { ExistingExceptionError });
     
    660660    }
    661661
    662     auto detailsResult = checkAndCanonicalizeDetails(*context.execState(), detailsUpdate, m_options.requestShipping, ShouldValidatePaymentMethodIdentifier::Yes);
     662    auto detailsResult = checkAndCanonicalizeDetails(*context.globalObject(), detailsUpdate, m_options.requestShipping, ShouldValidatePaymentMethodIdentifier::Yes);
    663663    if (detailsResult.hasException()) {
    664664        abortWithException(detailsResult.releaseException());
  • trunk/Source/WebCore/Modules/webxr/WebXRSystem.cpp

    r268255 r268700  
    389389            return;
    390390
    391         auto* globalObject = protectedDocument->execState();
     391        auto* globalObject = protectedDocument->globalObject();
    392392        if (!globalObject)
    393393            return;
  • trunk/Source/WebCore/bindings/js/JSCustomElementInterface.cpp

    r266269 r268700  
    100100
    101101    ASSERT(&document == scriptExecutionContext());
    102     auto& lexicalGlobalObject = *document.execState();
     102    auto& lexicalGlobalObject = *document.globalObject();
    103103    auto element = constructCustomElementSynchronously(document, vm, lexicalGlobalObject, m_constructor.get(), localName);
    104104    EXCEPTION_ASSERT(!!scope.exception() == !element);
  • trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp

    r268161 r268700  
    225225    if (inherits<JSWorkerGlobalScopeBase>(vm()))
    226226        return jsCast<const JSWorkerGlobalScopeBase*>(this)->scriptExecutionContext();
    227 #if ENABLE(CSS_PAINTING_API)
    228227    if (inherits<JSWorkletGlobalScopeBase>(vm()))
    229228        return jsCast<const JSWorkletGlobalScopeBase*>(this)->scriptExecutionContext();
    230 #endif
    231229#if ENABLE(INDEXED_DATABASE)
    232230    if (inherits<JSIDBSerializationGlobalObject>(vm()))
  • trunk/Source/WebCore/bindings/js/ScriptState.cpp

    r251425 r268700  
    4040#include "Page.h"
    4141#include "ScriptController.h"
    42 #include "WorkerGlobalScope.h"
     42#include "WorkerOrWorkletGlobalScope.h"
    4343#include "WorkerScriptController.h"
    4444#include "WorkletGlobalScope.h"
     
    8282}
    8383
    84 JSC::JSGlobalObject* execStateFromNode(DOMWrapperWorld& world, Node* node)
     84JSC::JSGlobalObject* globalObject(DOMWrapperWorld& world, Node* node)
    8585{
    8686    if (!node)
     
    9494}
    9595
    96 JSC::JSGlobalObject* execStateFromPage(DOMWrapperWorld& world, Page* page)
     96JSC::JSGlobalObject* globalObject(DOMWrapperWorld& world, Page* page)
    9797{
    9898    return page ? page->mainFrame().script().globalObject(world) : nullptr;
    9999}
    100100
    101 JSC::JSGlobalObject* execStateFromWorkerGlobalScope(WorkerGlobalScope& workerGlobalScope)
     101JSC::JSGlobalObject* globalObject(WorkerOrWorkletGlobalScope& workerOrWorkletGlobalScope)
    102102{
    103     return workerGlobalScope.script()->workerGlobalScopeWrapper();
     103    if (auto* scriptController = workerOrWorkletGlobalScope.script())
     104        return scriptController->globalScopeWrapper();
     105    return nullptr;
    104106}
    105107
    106 #if ENABLE(CSS_PAINTING_API)
    107 JSC::JSGlobalObject* execStateFromWorkletGlobalScope(WorkletGlobalScope& workletGlobalScope)
    108 {
    109     if (!workletGlobalScope.script())
    110         return nullptr;
    111     return workletGlobalScope.script()->workletGlobalScopeWrapper();
    112108}
    113 #endif
    114 
    115 }
  • trunk/Source/WebCore/bindings/js/ScriptState.h

    r251436 r268700  
    4545class Page;
    4646class ScriptExecutionContext;
    47 class WorkerGlobalScope;
    48 #if ENABLE(CSS_PAINTING_API)
    49 class WorkletGlobalScope;
    50 #endif
     47class WorkerOrWorkletGlobalScope;
    5148
    5249DOMWindow* domWindowFromExecState(JSC::JSGlobalObject*);
     
    5653JSC::JSGlobalObject* mainWorldExecState(Frame*);
    5754
    58 JSC::JSGlobalObject* execStateFromNode(DOMWrapperWorld&, Node*);
    59 WEBCORE_EXPORT JSC::JSGlobalObject* execStateFromPage(DOMWrapperWorld&, Page*);
    60 JSC::JSGlobalObject* execStateFromWorkerGlobalScope(WorkerGlobalScope&);
    61 #if ENABLE(CSS_PAINTING_API)
    62 JSC::JSGlobalObject* execStateFromWorkletGlobalScope(WorkletGlobalScope&);
    63 #endif
     55JSC::JSGlobalObject* globalObject(DOMWrapperWorld&, Node*);
     56WEBCORE_EXPORT JSC::JSGlobalObject* globalObject(DOMWrapperWorld&, Page*);
     57JSC::JSGlobalObject* globalObject(WorkerOrWorkletGlobalScope&);
    6458
    6559} // namespace WebCore
  • trunk/Source/WebCore/bindings/js/WorkerScriptController.cpp

    r264617 r268700  
    280280}
    281281
     282JSC::JSGlobalObject* WorkerScriptController::globalScopeWrapper()
     283{
     284    return workerGlobalScopeWrapper();
     285}
     286
    282287} // namespace WebCore
  • trunk/Source/WebCore/bindings/js/WorkerScriptController.h

    r267859 r268700  
    5858    }
    5959
     60    JSC::JSGlobalObject* globalScopeWrapper() final;
     61
    6062    void evaluate(const ScriptSourceCode&, String* returnedExceptionMessage = nullptr);
    6163    void evaluate(const ScriptSourceCode&, NakedPtr<JSC::Exception>& returnedException, String* returnedExceptionMessage = nullptr);
  • trunk/Source/WebCore/dom/ScriptExecutionContext.cpp

    r268271 r268700  
    484484    if (is<WorkerGlobalScope>(*this))
    485485        return downcast<WorkerGlobalScope>(*this).script()->vm();
    486 #if ENABLE(CSS_PAINTING_API)
    487486    if (is<WorkletGlobalScope>(*this))
    488487        return downcast<WorkletGlobalScope>(*this).script()->vm();
    489 #endif
    490488
    491489    RELEASE_ASSERT_NOT_REACHED();
     
    525523}
    526524
    527 JSC::JSGlobalObject* ScriptExecutionContext::execState()
    528 {
    529     if (is<Document>(*this)) {
    530         Document& document = downcast<Document>(*this);
    531         auto* frame = document.frame();
    532         return frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr;
    533     }
    534 
    535     if (is<WorkerGlobalScope>(*this))
    536         return execStateFromWorkerGlobalScope(downcast<WorkerGlobalScope>(*this));
    537 #if ENABLE(CSS_PAINTING_API)
    538     if (is<WorkletGlobalScope>(*this))
    539         return execStateFromWorkletGlobalScope(downcast<WorkletGlobalScope>(*this));
    540 #endif
     525JSC::JSGlobalObject* ScriptExecutionContext::globalObject()
     526{
     527    if (is<Document>(*this))
     528        return WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page());
     529
     530    if (is<WorkerOrWorkletGlobalScope>(*this))
     531        return WebCore::globalObject(downcast<WorkerOrWorkletGlobalScope>(*this));
    541532
    542533    ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/dom/ScriptExecutionContext.h

    r268271 r268700  
    243243    }
    244244
    245     WEBCORE_EXPORT JSC::JSGlobalObject* execState();
     245    WEBCORE_EXPORT JSC::JSGlobalObject* globalObject();
    246246
    247247    WEBCORE_EXPORT String domainForCachePartition() const;
  • trunk/Source/WebCore/fileapi/Blob.cpp

    r268228 r268700  
    278278    };
    279279
    280     return ReadableStream::create(*scriptExecutionContext.execState(), adoptRef(*new BlobStreamSource(scriptExecutionContext, *this)));
     280    return ReadableStream::create(*scriptExecutionContext.globalObject(), adoptRef(*new BlobStreamSource(scriptExecutionContext, *this)));
    281281}
    282282
  • trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp

    r262683 r268700  
    229229            document()->eventLoop().performMicrotaskCheckpoint();
    230230
    231             CustomElementReactionStack reactionStack(document()->execState());
     231            CustomElementReactionStack reactionStack(document()->globalObject());
    232232            auto& elementInterface = constructionData->elementInterface.get();
    233233            auto newElement = elementInterface.constructElementWithFallback(*document(), constructionData->name);
  • trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp

    r268473 r268700  
    157157void InspectorFrontendHost::addSelfToGlobalObjectInWorld(DOMWrapperWorld& world)
    158158{
    159     auto& lexicalGlobalObject = *execStateFromPage(world, m_frontendPage);
     159    auto& lexicalGlobalObject = *globalObject(world, m_frontendPage);
    160160    auto& vm = lexicalGlobalObject.vm();
    161161    JSC::JSLockHolder lock(vm);
     
    501501    ASSERT(m_frontendPage);
    502502
    503     auto& lexicalGlobalObject = *execStateFromPage(debuggerWorld(), m_frontendPage);
     503    auto& lexicalGlobalObject = *globalObject(debuggerWorld(), m_frontendPage);
    504504    auto& vm = lexicalGlobalObject.vm();
    505505    auto value = lexicalGlobalObject.get(&lexicalGlobalObject, JSC::Identifier::fromString(vm, "InspectorFrontendAPI"));
  • trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp

    r266669 r268700  
    322322{
    323323    if (auto* webDebuggerAgent = instrumentingAgents.enabledWebDebuggerAgent())
    324         webDebuggerAgent->didScheduleAsyncCall(context.execState(), InspectorDebuggerAgent::AsyncCallType::DOMTimer, timerId, singleShot);
     324        webDebuggerAgent->didScheduleAsyncCall(context.globalObject(), InspectorDebuggerAgent::AsyncCallType::DOMTimer, timerId, singleShot);
    325325
    326326    if (auto* timelineAgent = instrumentingAgents.trackingTimelineAgent())
  • trunk/Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp

    r267464 r268700  
    314314        return makeUnexpected(errorString);
    315315
    316     auto* state = animation->scriptExecutionContext()->execState();
     316    auto* state = animation->scriptExecutionContext()->globalObject();
    317317    auto injectedScript = m_injectedScriptManager.injectedScriptFor(state);
    318318    ASSERT(!injectedScript.hasNoValue());
  • trunk/Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp

    r266902 r268700  
    249249        return makeUnexpected(errorString);
    250250
    251     auto* state = inspectorCanvas->scriptExecutionContext()->execState();
     251    auto* state = inspectorCanvas->scriptExecutionContext()->globalObject();
    252252    auto injectedScript = m_injectedScriptManager.injectedScriptFor(state);
    253253    ASSERT(!injectedScript.hasNoValue());
  • trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp

    r268635 r268700  
    18481848
    18491849        JSC::JSObject* handlerObject = nullptr;
    1850         JSC::JSGlobalObject* exec = nullptr;
     1850        JSC::JSGlobalObject* globalObject = nullptr;
    18511851
    18521852        JSC::JSLockHolder lock(scriptListener.isolatedWorld().vm());
     
    18541854        if (document) {
    18551855            handlerObject = scriptListener.ensureJSFunction(*document);
    1856             exec = execStateFromNode(scriptListener.isolatedWorld(), document);
     1856            globalObject = WebCore::globalObject(scriptListener.isolatedWorld(), document);
    18571857        }
    18581858
    1859         if (handlerObject && exec) {
    1860             JSC::VM& vm = exec->vm();
     1859        if (handlerObject && globalObject) {
     1860            JSC::VM& vm = globalObject->vm();
    18611861            JSC::JSFunction* handlerFunction = JSC::jsDynamicCast<JSC::JSFunction*>(vm, handlerObject);
    18621862
     
    18651865
    18661866                // If the handler is not actually a function, see if it implements the EventListener interface and use that.
    1867                 auto handleEventValue = handlerObject->get(exec, JSC::Identifier::fromString(vm, "handleEvent"));
     1867                auto handleEventValue = handlerObject->get(globalObject, JSC::Identifier::fromString(vm, "handleEvent"));
    18681868
    18691869                if (UNLIKELY(scope.exception()))
  • trunk/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp

    r266885 r268700  
    221221void InspectorDOMDebuggerAgent::willHandleEvent(Event& event, const RegisteredEventListener& registeredEventListener)
    222222{
    223     auto state = event.target()->scriptExecutionContext()->execState();
     223    auto state = event.target()->scriptExecutionContext()->globalObject();
    224224    auto injectedScript = m_injectedScriptManager.injectedScriptFor(state);
    225225    if (injectedScript.hasNoValue())
     
    262262void InspectorDOMDebuggerAgent::didHandleEvent(Event& event, const RegisteredEventListener& registeredEventListener)
    263263{
    264     auto state = event.target()->scriptExecutionContext()->execState();
     264    auto state = event.target()->scriptExecutionContext()->globalObject();
    265265    auto injectedScript = m_injectedScriptManager.injectedScriptFor(state);
    266266    if (injectedScript.hasNoValue())
  • trunk/Source/WebCore/inspector/agents/InspectorIndexedDBAgent.cpp

    r266885 r268700  
    389389        }
    390390
    391         auto* lexicalGlobalObject = context.execState();
     391        auto* lexicalGlobalObject = context.globalObject();
    392392
    393393        auto key = m_injectedScript.wrapObject(toJS(*lexicalGlobalObject, *lexicalGlobalObject, cursor->key()), String(), true);
     
    463463        TransactionActivator activator(idbTransaction.get());
    464464        RefPtr<IDBRequest> idbRequest;
    465         auto* exec = context() ? context()->execState() : nullptr;
     465        auto* exec = context() ? context()->globalObject() : nullptr;
    466466        if (!m_indexName.isEmpty()) {
    467467            auto idbIndex = indexForObjectStore(idbObjectStore.get(), m_indexName);
     
    706706        TransactionActivator activator(idbTransaction.get());
    707707        RefPtr<IDBRequest> idbRequest;
    708         if (auto* exec = context() ? context()->execState() : nullptr) {
     708        if (auto* exec = context() ? context()->globalObject() : nullptr) {
    709709            auto result = idbObjectStore->clear(*exec);
    710710            ASSERT(!result.hasException());
  • trunk/Source/WebCore/inspector/agents/WebDebuggerAgent.cpp

    r266885 r268700  
    8080        return;
    8181
    82     JSC::JSGlobalObject* scriptState = target.scriptExecutionContext()->execState();
    83     if (!scriptState)
     82    auto* globalObject = target.scriptExecutionContext()->globalObject();
     83    if (!globalObject)
    8484        return;
    8585
     
    8787    m_registeredEventListeners.set(registeredListener.get(), identifier);
    8888
    89     didScheduleAsyncCall(scriptState, InspectorDebuggerAgent::AsyncCallType::EventListener, identifier, registeredListener->isOnce());
     89    didScheduleAsyncCall(globalObject, InspectorDebuggerAgent::AsyncCallType::EventListener, identifier, registeredListener->isOnce());
    9090}
    9191
  • trunk/Source/WebCore/inspector/agents/page/PageDebuggerAgent.cpp

    r266885 r268700  
    172172        return;
    173173
    174     JSC::JSGlobalObject* scriptState = document.execState();
    175     if (!scriptState)
     174    auto* globalObject = document.globalObject();
     175    if (!globalObject)
    176176        return;
    177177
    178     didScheduleAsyncCall(scriptState, InspectorDebuggerAgent::AsyncCallType::RequestAnimationFrame, callbackId, true);
     178    didScheduleAsyncCall(globalObject, InspectorDebuggerAgent::AsyncCallType::RequestAnimationFrame, callbackId, true);
    179179}
    180180
  • trunk/Source/WebCore/inspector/agents/worker/WorkerAuditAgent.cpp

    r266885 r268700  
    5656    }
    5757
    58     JSC::JSGlobalObject* scriptState = execStateFromWorkerGlobalScope(m_workerGlobalScope);
    59     return injectedScriptManager().injectedScriptFor(scriptState);
     58    return injectedScriptManager().injectedScriptFor(globalObject(m_workerGlobalScope));
    6059}
    6160
  • trunk/Source/WebCore/inspector/agents/worker/WorkerDebuggerAgent.cpp

    r266885 r268700  
    6161    }
    6262
    63     JSC::JSGlobalObject* scriptState = execStateFromWorkerGlobalScope(m_workerGlobalScope);
    64     return injectedScriptManager().injectedScriptFor(scriptState);
     63    return injectedScriptManager().injectedScriptFor(globalObject(m_workerGlobalScope));
    6564}
    6665
  • trunk/Source/WebCore/inspector/agents/worker/WorkerRuntimeAgent.cpp

    r266885 r268700  
    5959    }
    6060
    61     JSC::JSGlobalObject* scriptState = execStateFromWorkerGlobalScope(m_workerGlobalScope);
    62     return injectedScriptManager().injectedScriptFor(scriptState);
     61    return injectedScriptManager().injectedScriptFor(globalObject(m_workerGlobalScope));
    6362}
    6463
  • trunk/Source/WebCore/testing/WebXRTest.cpp

    r262291 r268700  
    5757        Vector<XRReferenceSpaceType> features;
    5858        if (init.supportedFeatures) {
    59             if (auto* globalObject = context.execState()) {
     59            if (auto* globalObject = context.globalObject()) {
    6060                for (auto& feature : init.supportedFeatures.value()) {
    6161                    if (auto referenceSpaceType = parseEnumeration<XRReferenceSpaceType>(*globalObject, feature))
  • trunk/Source/WebCore/testing/js/WebCoreTestSupport.cpp

    r268316 r268700  
    223223            return;
    224224
    225         auto& state = *globalScope.execState();
    226         auto& vm = state.vm();
     225        auto& globalObject = *globalScope.globalObject();
     226        auto& vm = globalObject.vm();
    227227        JSLockHolder locker(vm);
    228228        auto* contextWrapper = script->workerGlobalScopeWrapper();
    229         contextWrapper->putDirect(vm, Identifier::fromString(vm, Internals::internalsId), toJS(&state, contextWrapper, ServiceWorkerInternals::create(identifier)));
     229        contextWrapper->putDirect(vm, Identifier::fromString(vm, Internals::internalsId), toJS(&globalObject, contextWrapper, ServiceWorkerInternals::create(identifier)));
    230230    });
    231231#else
  • trunk/Source/WebCore/workers/WorkerOrWorkletScriptController.h

    r267859 r268700  
    4141
    4242    virtual bool isTerminatingExecution() const = 0;
     43
     44    virtual JSC::JSGlobalObject* globalScopeWrapper() = 0;
    4345};
    4446
  • trunk/Source/WebCore/worklets/WorkletScriptController.cpp

    r267859 r268700  
    268268}
    269269
     270JSC::JSGlobalObject* WorkletScriptController::globalScopeWrapper()
     271{
     272    return workletGlobalScopeWrapper();
     273}
     274
    270275} // namespace WebCore
  • trunk/Source/WebCore/worklets/WorkletScriptController.h

    r267859 r268700  
    6060    }
    6161
     62    JSC::JSGlobalObject* globalScopeWrapper() final;
     63
    6264    void forbidExecution();
    6365    bool isExecutionForbidden() const;
Note: See TracChangeset for help on using the changeset viewer.