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

Changeset 282500 in webkit


Ignore:
Timestamp:
Sep 16, 2021, 1:00:36 AM (5 years ago)
Author:
Adrian Perez de Castro
Message:

Merge r275845 - Modernize uses of ConsoleClient
​https://bugs.webkit.org/show_bug.cgi?id=224398

Reviewed by David Kilzer.

ConsoleClient acts like a delegate, so its callers
should be using weak references to it.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::consoleClient const):

  • inspector/JSGlobalObjectInspectorController.h:
  • runtime/ConsoleClient.h:
  • runtime/ConsoleObject.cpp:

(JSC::consoleLogWithLevel):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::setConsoleClient):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::consoleClient const):
(JSC::JSGlobalObject::setConsoleClient): Deleted.

Source/WebCore:

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::restore):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScriptForWindowProxy):

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::setDOMWindow):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

Location:
releases/WebKitGTK/webkit-2.32/Source
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/ChangeLog

    r280895 r282500  
     12021-04-12  BJ Burg  <bburg@apple.com>
     2
     3        Modernize uses of ConsoleClient
     4        https://bugs.webkit.org/show_bug.cgi?id=224398
     5
     6        Reviewed by David Kilzer.
     7
     8        ConsoleClient acts like a delegate, so its callers
     9        should be using weak references to it.
     10
     11        * inspector/JSGlobalObjectInspectorController.cpp:
     12        (Inspector::JSGlobalObjectInspectorController::consoleClient const):
     13        * inspector/JSGlobalObjectInspectorController.h:
     14        * runtime/ConsoleClient.h:
     15        * runtime/ConsoleObject.cpp:
     16        (JSC::consoleLogWithLevel):
     17        (JSC::JSC_DEFINE_HOST_FUNCTION):
     18        * runtime/JSGlobalObject.cpp:
     19        (JSC::JSGlobalObject::init):
     20        (JSC::JSGlobalObject::setConsoleClient):
     21        * runtime/JSGlobalObject.h:
     22        (JSC::JSGlobalObject::consoleClient const):
     23        (JSC::JSGlobalObject::setConsoleClient): Deleted.
     24
    1252021-03-16  Saam Barati  <sbarati@apple.com>
    226
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp

    r266885 r282500  
    199199}
    200200
    201 ConsoleClient* JSGlobalObjectInspectorController::consoleClient() const
    202 {
    203     return m_consoleClient.get();
     201WeakPtr<ConsoleClient> JSGlobalObjectInspectorController::consoleClient() const
     202{
     203    return makeWeakPtr(m_consoleClient.get());
    204204}
    205205
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h

    r266077 r282500  
    8282    void reportAPIException(JSC::JSGlobalObject*, JSC::Exception*);
    8383
    84     JSC::ConsoleClient* consoleClient() const;
     84    WeakPtr<JSC::ConsoleClient> consoleClient() const;
    8585
    8686    bool developerExtrasEnabled() const final;
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/runtime/ConsoleClient.h

    r251425 r282500  
    2828#include "ConsoleTypes.h"
    2929#include <wtf/Forward.h>
     30#include <wtf/WeakPtr.h>
    3031
    3132namespace Inspector {
    … …  
    3839class JSGlobalObject;
    3940
    40 class ConsoleClient {
     41class ConsoleClient : public CanMakeWeakPtr<ConsoleClient> {
    4142public:
    4243    virtual ~ConsoleClient() { }
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/runtime/ConsoleObject.cpp

    r267594 r282500  
    130130static EncodedJSValue consoleLogWithLevel(JSGlobalObject* globalObject, CallFrame* callFrame, MessageLevel level)
    131131{
    132     ConsoleClient* client = globalObject->consoleClient();
     132    auto client = globalObject->consoleClient();
    133133    if (!client)
    134134        return JSValue::encode(jsUndefined());
    … …  
    165165JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncClear, (JSGlobalObject* globalObject, CallFrame*))
    166166{
    167     ConsoleClient* client = globalObject->consoleClient();
     167    auto client = globalObject->consoleClient();
    168168    if (!client)
    169169        return JSValue::encode(jsUndefined());
    … …  
    175175JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncDir, (JSGlobalObject* globalObject, CallFrame* callFrame))
    176176{
    177     ConsoleClient* client = globalObject->consoleClient();
     177    auto client = globalObject->consoleClient();
    178178    if (!client)
    179179        return JSValue::encode(jsUndefined());
    … …  
    185185JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncDirXML, (JSGlobalObject* globalObject, CallFrame* callFrame))
    186186{
    187     ConsoleClient* client = globalObject->consoleClient();
     187    auto client = globalObject->consoleClient();
    188188    if (!client)
    189189        return JSValue::encode(jsUndefined());
    … …  
    195195JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncTable, (JSGlobalObject* globalObject, CallFrame* callFrame))
    196196{
    197     ConsoleClient* client = globalObject->consoleClient();
     197    auto client = globalObject->consoleClient();
    198198    if (!client)
    199199        return JSValue::encode(jsUndefined());
    … …  
    205205JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncTrace, (JSGlobalObject* globalObject, CallFrame* callFrame))
    206206{
    207     ConsoleClient* client = globalObject->consoleClient();
     207    auto client = globalObject->consoleClient();
    208208    if (!client)
    209209        return JSValue::encode(jsUndefined());
    … …  
    217217    VM& vm = globalObject->vm();
    218218    auto scope = DECLARE_THROW_SCOPE(vm);
    219     ConsoleClient* client = globalObject->consoleClient();
     219    auto client = globalObject->consoleClient();
    220220    if (!client)
    221221        return JSValue::encode(jsUndefined());
    … …  
    234234{
    235235    auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
    236     auto* client = globalObject->consoleClient();
     236    auto client = globalObject->consoleClient();
    237237    if (!client)
    238238        return JSValue::encode(jsUndefined());
    … …  
    248248{
    249249    auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
    250     auto* client = globalObject->consoleClient();
     250    auto client = globalObject->consoleClient();
    251251    if (!client)
    252252        return JSValue::encode(jsUndefined());
    … …  
    263263    VM& vm = globalObject->vm();
    264264    auto scope = DECLARE_THROW_SCOPE(vm);
    265     ConsoleClient* client = globalObject->consoleClient();
     265    auto client = globalObject->consoleClient();
    266266    if (!client)
    267267        return JSValue::encode(jsUndefined());
    … …  
    284284    VM& vm = globalObject->vm();
    285285    auto scope = DECLARE_THROW_SCOPE(vm);
    286     ConsoleClient* client = globalObject->consoleClient();
     286    auto client = globalObject->consoleClient();
    287287    if (!client)
    288288        return JSValue::encode(jsUndefined());
    … …  
    305305    VM& vm = globalObject->vm();
    306306    auto scope = DECLARE_THROW_SCOPE(vm);
    307     ConsoleClient* client = globalObject->consoleClient();
     307    auto client = globalObject->consoleClient();
    308308    if (!client)
    309309        return JSValue::encode(jsUndefined());
    … …  
    325325{
    326326    auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
    327     auto* client = globalObject->consoleClient();
     327    auto client = globalObject->consoleClient();
    328328    if (!client)
    329329        return JSValue::encode(jsUndefined());
    … …  
    339339{
    340340    auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
    341     auto* client = globalObject->consoleClient();
     341    auto client = globalObject->consoleClient();
    342342    if (!client)
    343343        return JSValue::encode(jsUndefined());
    … …  
    353353{
    354354    auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
    355     auto* client = globalObject->consoleClient();
     355    auto client = globalObject->consoleClient();
    356356    if (!client)
    357357        return JSValue::encode(jsUndefined());
    … …  
    366366JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncTimeStamp, (JSGlobalObject* globalObject, CallFrame* callFrame))
    367367{
    368     ConsoleClient* client = globalObject->consoleClient();
     368    auto client = globalObject->consoleClient();
    369369    if (!client)
    370370        return JSValue::encode(jsUndefined());
    … …  
    376376JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncGroup, (JSGlobalObject* globalObject, CallFrame* callFrame))
    377377{
    378     ConsoleClient* client = globalObject->consoleClient();
     378    auto client = globalObject->consoleClient();
    379379    if (!client)
    380380        return JSValue::encode(jsUndefined());
    … …  
    386386JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncGroupCollapsed, (JSGlobalObject* globalObject, CallFrame* callFrame))
    387387{
    388     ConsoleClient* client = globalObject->consoleClient();
     388    auto client = globalObject->consoleClient();
    389389    if (!client)
    390390        return JSValue::encode(jsUndefined());
    … …  
    396396JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncGroupEnd, (JSGlobalObject* globalObject, CallFrame* callFrame))
    397397{
    398     ConsoleClient* client = globalObject->consoleClient();
     398    auto client = globalObject->consoleClient();
    399399    if (!client)
    400400        return JSValue::encode(jsUndefined());
    … …  
    406406JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncRecord, (JSGlobalObject* globalObject, CallFrame* callFrame))
    407407{
    408     ConsoleClient* client = globalObject->consoleClient();
     408    auto client = globalObject->consoleClient();
    409409    if (!client)
    410410        return JSValue::encode(jsUndefined());
    … …  
    416416JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncRecordEnd, (JSGlobalObject* globalObject, CallFrame* callFrame))
    417417{
    418     ConsoleClient* client = globalObject->consoleClient();
     418    auto client = globalObject->consoleClient();
    419419    if (!client)
    420420        return JSValue::encode(jsUndefined());
    … …  
    426426JSC_DEFINE_HOST_FUNCTION(consoleProtoFuncScreenshot, (JSGlobalObject* globalObject, CallFrame* callFrame))
    427427{
    428     ConsoleClient* client = globalObject->consoleClient();
     428    auto client = globalObject->consoleClient();
    429429    if (!client)
    430430        return JSValue::encode(jsUndefined());
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/runtime/JSGlobalObject.cpp

    r273138 r282500  
    5555#include "CodeBlock.h"
    5656#include "CodeBlockSetInlines.h"
     57#include "ConsoleClient.h"
    5758#include "ConsoleObject.h"
    5859#include "DateConstructor.h"
    … …  
    23302331}
    23312332
     2333void JSGlobalObject::setConsoleClient(WeakPtr<ConsoleClient>&& consoleClient)
     2334{
     2335    m_consoleClient = WTFMove(consoleClient);
     2336}
     2337
    23322338void JSGlobalObject::setDebugger(Debugger* debugger)
    23332339{
  • releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore/runtime/JSGlobalObject.h

    r273225 r282500  
    5050#include <wtf/HashSet.h>
    5151#include <wtf/RetainPtr.h>
     52#include <wtf/WeakPtr.h>
    5253
    5354struct OpaqueJSClass;
    … …  
    561562    String m_webAssemblyDisabledErrorMessage;
    562563    RuntimeFlags m_runtimeFlags;
    563     ConsoleClient* m_consoleClient { nullptr };
     564    WeakPtr<ConsoleClient> m_consoleClient;
    564565    Optional<unsigned> m_stackTraceLimit;
    565566    WeakGCMap<GetValueFunc, JSCustomGetterFunction> m_customGetterFunctionMap;
    … …  
    881882    unsigned* addressOfGlobalLexicalBindingEpoch() { return &m_globalLexicalBindingEpoch; }
    882883
    883     void setConsoleClient(ConsoleClient* consoleClient) { m_consoleClient = consoleClient; }
    884     ConsoleClient* consoleClient() const { return m_consoleClient; }
     884    JS_EXPORT_PRIVATE void setConsoleClient(WeakPtr<ConsoleClient>&&);
     885    WeakPtr<ConsoleClient> consoleClient() const { return m_consoleClient; }
    885886
    886887    void setName(const String&);
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog

    r282499 r282500  
     12021-04-12  BJ Burg  <bburg@apple.com>
     2
     3        Modernize uses of ConsoleClient
     4        https://bugs.webkit.org/show_bug.cgi?id=224398
     5
     6        Reviewed by David Kilzer.
     7
     8        ConsoleClient acts like a delegate, so its callers
     9        should be using weak references to it.
     10
     11        * bindings/js/ScriptCachedFrameData.cpp:
     12        (WebCore::ScriptCachedFrameData::restore):
     13        * bindings/js/ScriptController.cpp:
     14        (WebCore::ScriptController::initScriptForWindowProxy):
     15        * bindings/js/WindowProxy.cpp:
     16        (WebCore::WindowProxy::setDOMWindow):
     17        * workers/WorkerOrWorkletScriptController.cpp:
     18        (WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):
     19
    1202021-04-11  Rob Buis  <rbuis@igalia.com>
    221
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/bindings/js/ScriptCachedFrameData.cpp

    r230794 r282500  
    9292
    9393        if (page)
    94             windowProxy->window()->setConsoleClient(&page->console());
     94            windowProxy->window()->setConsoleClient(makeWeakPtr(page->console()));
    9595    }
    9696}
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/bindings/js/ScriptController.cpp

    r273444 r282500  
    277277        windowProxy.attachDebugger(page->debugger());
    278278        windowProxy.window()->setProfileGroup(page->group().identifier());
    279         windowProxy.window()->setConsoleClient(&page->console());
     279        windowProxy.window()->setConsoleClient(makeWeakPtr(page->console()));
    280280    }
    281281
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/bindings/js/WindowProxy.cpp

    r269435 r282500  
    189189        if (page)
    190190            windowProxy->window()->setProfileGroup(page->group().identifier());
    191         windowProxy->window()->setConsoleClient(page ? &page->console() : nullptr);
     191        windowProxy->window()->setConsoleClient(page ? makeWeakPtr(page->console()) : nullptr);
    192192    }
    193193}
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/workers/WorkerOrWorkletScriptController.cpp

    r273299 r282500  
    508508
    509509    m_consoleClient = makeUnique<WorkerConsoleClient>(*m_globalScope);
    510     m_globalScopeWrapper->setConsoleClient(m_consoleClient.get());
     510    m_globalScopeWrapper->setConsoleClient(makeWeakPtr(*m_consoleClient));
    511511}
    512512
Note: See TracChangeset for help on using the changeset viewer.