Changeset 220278 in webkit


Ignore:
Timestamp:
Aug 4, 2017 10:59:54 AM (7 years ago)
Author:
weinig@apple.com
Message:

[Cleanup] Remove ScriptGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=175173

Reviewed by Darin Adler.

Source/WebCore:

ScriptGlobalObject's two functions were only being used in
four places. Three of those uses (ScriptGlobalObject::set in
InspectorFrontendClientLocal, WebInspectorUI, and RemoteWebInspectorUI)
were merged into the new function addSelfToGlobalObjectInWorld on
InspectorFrontendHost. The remaining function (ScriptGlobalObject::get
in InspectorFrontendHost) was easily inlined.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/ScriptGlobalObject.cpp: Removed.
  • bindings/js/ScriptGlobalObject.h: Removed.

Removed ScriptGlobalObject.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::windowObjectCleared):
Remove call to ScriptGlobalObject::set and use addSelfToGlobalObjectInWorld instead.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::showContextMenu):
Inline ScriptGlobalObject::get.

(WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
Add helper which inlines ScriptGlobalObject::set and works
as a helper for the three inspector frontends.

Source/WebKit:

  • WebProcess/WebPage/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::windowObjectCleared):

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::windowObjectCleared):
Remove call to ScriptGlobalObject::set and use addSelfToGlobalObjectInWorld instead.

Location:
trunk/Source
Files:
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r220264 r220278  
    12601260    bindings/js/ScriptCachedFrameData.cpp
    12611261    bindings/js/ScriptController.cpp
    1262     bindings/js/ScriptGlobalObject.cpp
    12631262    bindings/js/ScriptModuleLoader.cpp
    12641263    bindings/js/ScriptState.cpp
  • trunk/Source/WebCore/ChangeLog

    r220274 r220278  
     12017-08-03  Sam Weinig  <sam@webkit.org>
     2
     3        [Cleanup] Remove ScriptGlobalObject
     4        https://bugs.webkit.org/show_bug.cgi?id=175173
     5
     6        Reviewed by Darin Adler.
     7
     8        ScriptGlobalObject's two functions were only being used in
     9        four places. Three of those uses (ScriptGlobalObject::set in
     10        InspectorFrontendClientLocal, WebInspectorUI, and RemoteWebInspectorUI)
     11        were merged into the new function addSelfToGlobalObjectInWorld on
     12        InspectorFrontendHost. The remaining function (ScriptGlobalObject::get
     13        in InspectorFrontendHost) was easily inlined.
     14
     15        * CMakeLists.txt:
     16        * WebCore.xcodeproj/project.pbxproj:
     17        * bindings/js/JSBindingsAllInOne.cpp:
     18        * bindings/js/ScriptGlobalObject.cpp: Removed.
     19        * bindings/js/ScriptGlobalObject.h: Removed.
     20        Removed ScriptGlobalObject.
     21
     22        * inspector/InspectorFrontendClientLocal.cpp:
     23        (WebCore::InspectorFrontendClientLocal::windowObjectCleared):
     24        Remove call to ScriptGlobalObject::set and use addSelfToGlobalObjectInWorld instead.
     25
     26        * inspector/InspectorFrontendHost.h:
     27        * inspector/InspectorFrontendHost.cpp:
     28        (WebCore::InspectorFrontendHost::showContextMenu):
     29        Inline ScriptGlobalObject::get.
     30
     31        (WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
     32        Add helper which inlines ScriptGlobalObject::set and works
     33        as a helper for the three inspector frontends.
     34
    1352017-08-04  Ryan Haddad  <ryanhaddad@apple.com>
    236
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r220249 r220278  
    17991799                41F062140F5F192600A07EAC /* InspectorDatabaseResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F062120F5F192600A07EAC /* InspectorDatabaseResource.h */; };
    18001800                41F062150F5F192600A07EAC /* InspectorDatabaseResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41F062130F5F192600A07EAC /* InspectorDatabaseResource.cpp */; };
    1801                 41F066E40F64BCF600A07EAC /* ScriptGlobalObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F066E20F64BCF600A07EAC /* ScriptGlobalObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
    1802                 41F066E50F64BCF600A07EAC /* ScriptGlobalObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41F066E30F64BCF600A07EAC /* ScriptGlobalObject.cpp */; };
    18031801                41F1D21F0EF35C2A00DA8753 /* ScriptCachedFrameData.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */; settings = {ATTRIBUTES = (Private, ); }; };
    18041802                41F1D2200EF35C2A00DA8753 /* ScriptCachedFrameData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */; };
     
    94699467                41F062120F5F192600A07EAC /* InspectorDatabaseResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDatabaseResource.h; sourceTree = "<group>"; };
    94709468                41F062130F5F192600A07EAC /* InspectorDatabaseResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDatabaseResource.cpp; sourceTree = "<group>"; };
    9471                 41F066E20F64BCF600A07EAC /* ScriptGlobalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptGlobalObject.h; sourceTree = "<group>"; };
    9472                 41F066E30F64BCF600A07EAC /* ScriptGlobalObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptGlobalObject.cpp; sourceTree = "<group>"; };
    94739469                41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptCachedFrameData.h; sourceTree = "<group>"; };
    94749470                41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptCachedFrameData.cpp; sourceTree = "<group>"; };
     
    2362923625                                93B70D5409EB0C7C009D8468 /* ScriptController.h */,
    2363023626                                A83E1C720E49042B00140B9C /* ScriptControllerMac.mm */,
    23631                                 41F066E30F64BCF600A07EAC /* ScriptGlobalObject.cpp */,
    23632                                 41F066E20F64BCF600A07EAC /* ScriptGlobalObject.h */,
    2363323627                                E38838941BAD145F00D62EE3 /* ScriptModuleLoader.cpp */,
    2363423628                                E38838951BAD145F00D62EE3 /* ScriptModuleLoader.h */,
     
    2935529349                                E3E4E2A81E3B17100023BB8A /* ScriptElementCachedScriptFetcher.h in Headers */,
    2935629350                                E11C9D9B0EB3681200E409DB /* ScriptExecutionContext.h in Headers */,
    29357                                 41F066E40F64BCF600A07EAC /* ScriptGlobalObject.h in Headers */,
    2935829351                                E38838991BAD145F00D62EE3 /* ScriptModuleLoader.h in Headers */,
    2935929352                                E38838991BAD145F00D62EE3 /* ScriptModuleLoader.h in Headers */,
     
    3320433197                                E3E4E2A71E3B17100023BB8A /* ScriptElementCachedScriptFetcher.cpp in Sources */,
    3320533198                                E11C9DB00EB3699500E409DB /* ScriptExecutionContext.cpp in Sources */,
    33206                                 41F066E50F64BCF600A07EAC /* ScriptGlobalObject.cpp in Sources */,
    3320733199                                E38838981BAD145F00D62EE3 /* ScriptModuleLoader.cpp in Sources */,
    3320833200                                FD31603512B0267600C1A359 /* ScriptProcessorNode.cpp in Sources */,
  • trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp

    r220071 r220278  
    104104#include "ScriptCachedFrameData.cpp"
    105105#include "ScriptController.cpp"
    106 #include "ScriptGlobalObject.cpp"
    107106#include "ScriptModuleLoader.cpp"
    108107#include "ScriptState.cpp"
  • trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp

    r219404 r220278  
    4646#include "Page.h"
    4747#include "ScriptController.h"
    48 #include "ScriptGlobalObject.h"
    4948#include "ScriptState.h"
    5049#include "Settings.h"
     
    153152   
    154153    m_frontendHost = InspectorFrontendHost::create(this, m_frontendPage);
    155     ScriptGlobalObject::set(*execStateFromPage(debuggerWorld(), m_frontendPage), "InspectorFrontendHost", *m_frontendHost);
     154    m_frontendHost->addSelfToGlobalObjectInWorld(debuggerWorld());
    156155}
    157156
  • trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp

    r220235 r220278  
    4343#include "InspectorController.h"
    4444#include "InspectorFrontendClient.h"
     45#include "JSDOMConvertInterface.h"
     46#include "JSDOMExceptionHandling.h"
     47#include "JSInspectorFrontendHost.h"
    4548#include "JSMainThreadExecState.h"
    4649#include "MainFrame.h"
     
    4952#include "Page.h"
    5053#include "Pasteboard.h"
    51 #include "ScriptGlobalObject.h"
    5254#include "ScriptState.h"
    5355#include "UserGestureIndicator.h"
     
    144146#endif
    145147    m_frontendPage = nullptr;
     148}
     149
     150void InspectorFrontendHost::addSelfToGlobalObjectInWorld(DOMWrapperWorld& world)
     151{
     152    auto& state = *execStateFromPage(world, m_frontendPage);
     153    auto& vm = state.vm();
     154    JSC::JSLockHolder lock(vm);
     155    auto scope = DECLARE_CATCH_SCOPE(vm);
     156
     157    auto& globalObject = *JSC::jsCast<JSDOMGlobalObject*>(state.lexicalGlobalObject());
     158    globalObject.putDirect(vm, JSC::Identifier::fromString(&vm, "InspectorFrontendHost"), toJS<IDLInterface<InspectorFrontendHost>>(state, globalObject, *this));
     159    if (UNLIKELY(scope.exception()))
     160        reportException(&state, scope.exception());
    146161}
    147162
     
    368383#if ENABLE(CONTEXT_MENUS)
    369384    ASSERT(m_frontendPage);
     385
    370386    auto& state = *execStateFromPage(debuggerWorld(), m_frontendPage);
    371     JSC::JSObject* frontendApiObject;
    372     if (!ScriptGlobalObject::get(state, "InspectorFrontendAPI", frontendApiObject)) {
    373         ASSERT_NOT_REACHED();
    374         return;
    375     }
     387    auto value = state.lexicalGlobalObject()->get(&state, JSC::Identifier::fromString(&state.vm(), "InspectorFrontendHost"));
     388    ASSERT(value);
     389    ASSERT(value.isObject());
     390    auto* frontendAPIObject = asObject(value);
    376391   
    377392    ContextMenu menu;
    378393    populateContextMenu(WTFMove(items), menu);
    379394
    380     auto menuProvider = FrontendMenuProvider::create(this, { &state, frontendApiObject }, menu.items());
     395    auto menuProvider = FrontendMenuProvider::create(this, { &state, frontendAPIObject }, menu.items());
    381396    m_menuProvider = menuProvider.ptr();
    382397    m_frontendPage->contextMenuController().showContextMenu(event, menuProvider);
  • trunk/Source/WebCore/inspector/InspectorFrontendHost.h

    r220235 r220278  
    3737namespace WebCore {
    3838
     39class DOMWrapperWorld;
    3940class Event;
    4041class FrontendMenuProvider;
     
    5152    WEBCORE_EXPORT ~InspectorFrontendHost();
    5253    WEBCORE_EXPORT void disconnectClient();
     54
     55    WEBCORE_EXPORT void addSelfToGlobalObjectInWorld(DOMWrapperWorld&);
    5356
    5457    void loaded();
  • trunk/Source/WebKit/ChangeLog

    r220275 r220278  
     12017-08-03  Sam Weinig  <sam@webkit.org>
     2
     3        [Cleanup] Remove ScriptGlobalObject
     4        https://bugs.webkit.org/show_bug.cgi?id=175173
     5
     6        Reviewed by Darin Adler.
     7
     8        * WebProcess/WebPage/RemoteWebInspectorUI.cpp:
     9        (WebKit::RemoteWebInspectorUI::windowObjectCleared):
     10        * WebProcess/WebPage/WebInspectorUI.cpp:
     11        (WebKit::WebInspectorUI::windowObjectCleared):
     12        Remove call to ScriptGlobalObject::set and use addSelfToGlobalObjectInWorld instead.
     13
    1142017-08-03  Brian Burg  <bburg@apple.com>
    215
  • trunk/Source/WebKit/WebProcess/WebPage/RemoteWebInspectorUI.cpp

    r212272 r220278  
    3434#include <WebCore/DOMWrapperWorld.h>
    3535#include <WebCore/InspectorController.h>
    36 #include <WebCore/ScriptGlobalObject.h>
    37 #include <WebCore/ScriptState.h>
    3836
    3937using namespace WebCore;
     
    8987
    9088    m_frontendHost = InspectorFrontendHost::create(this, m_page.corePage());
    91     ScriptGlobalObject::set(*execStateFromPage(mainThreadNormalWorld(), m_page.corePage()), ASCIILiteral("InspectorFrontendHost"), *m_frontendHost);
     89    m_frontendHost->addSelfToGlobalObjectInWorld(mainThreadNormalWorld());
    9290}
    9391
  • trunk/Source/WebKit/WebProcess/WebPage/WebInspectorUI.cpp

    r212597 r220278  
    3535#include <WebCore/InspectorController.h>
    3636#include <WebCore/NotImplemented.h>
    37 #include <WebCore/ScriptGlobalObject.h>
    38 #include <WebCore/ScriptState.h>
    3937
    4038using namespace WebCore;
     
    8583
    8684    m_frontendHost = InspectorFrontendHost::create(this, m_page.corePage());
    87     ScriptGlobalObject::set(*execStateFromPage(mainThreadNormalWorld(), m_page.corePage()), ASCIILiteral("InspectorFrontendHost"), *m_frontendHost);
     85    m_frontendHost->addSelfToGlobalObjectInWorld(mainThreadNormalWorld());
    8886}
    8987
Note: See TracChangeset for help on using the changeset viewer.