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

Changeset 271424 in webkit


Ignore:
Timestamp:
Jan 12, 2021, 4:19:38 PM (6 years ago)
Author:
BJ Burg
Message:

[Cocoa] Web Inspector: move browser domain activation methods back to WKWebView and UIDelegate
https://bugs.webkit.org/show_bug.cgi?id=220480

Reviewed by Devin Rousso.

Source/WebKit:

Having browser domain activation methods on WKInspectorDelegate means that
the browser domain will not work with remote inspection of WKWebViews on
macOS. Move these methods back to UIDelegate/WKWebView so that it is possible
to remote inspect Safari Technology Preview with another Safari while still
benefiting from the browser domain being turned on.

Covered by existing API tests.

  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::browserDomainEnabled): Deleted.
(API::InspectorClient::browserDomainDisabled): Deleted.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didEnableInspectorBrowserDomain): Moved.
(API::UIClient::didDisableInspectorBrowserDomain): Moved.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didEnableBrowserExtensions:]): Moved.
(-[WKWebView _didDisableBrowserExtensions:]): Moved.
Moved from WKInspector.mm. Rather than accessing the browser agent
directly from ObjC code, use the page's WebPageInspectorController.

  • UIProcess/API/Cocoa/_WKInspectorDelegate.h:
  • UIProcess/API/Cocoa/_WKInspectorPrivate.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector _browserExtensionsEnabled:]): Deleted.
(-[_WKInspector _browserExtensionsDisabled:]): Deleted.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didEnableInspectorBrowserDomain):
(WebKit::UIDelegate::UIClient::didDisableInspectorBrowserDomain):

  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:

(WebKit::InspectorBrowserAgent::enable):
(WebKit::InspectorBrowserAgent::disable):

  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::setDelegate):
(WebKit::InspectorDelegate::InspectorClient::~InspectorClient):
(WebKit::InspectorDelegate::InspectorClient::browserDomainEnabled): Deleted.
(WebKit::InspectorDelegate::InspectorClient::browserDomainDisabled): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::browserExtensionsEnabled): Deleted.
(WebKit::WebInspectorProxy::browserExtensionsDisabled): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebPageInspectorController.h:
  • UIProcess/Inspector/WebPageInspectorController.cpp:

(WebKit::WebPageInspectorController::WebPageInspectorController):
(WebKit::WebPageInspectorController::init):
(WebKit::WebPageInspectorController::connectFrontend):
(WebKit::WebPageInspectorController::disconnectFrontend):
(WebKit::WebPageInspectorController::disconnectAllFrontends):
(WebKit::WebPageInspectorController::setIndicating):
(WebKit::WebPageInspectorController::createInspectorTarget):
(WebKit::WebPageInspectorController::webPageAgentContext):
(WebKit::WebPageInspectorController::setEnabledBrowserAgent): Added.
(WebKit::WebPageInspectorController::browserExtensionsEnabled): Added.
(WebKit::WebPageInspectorController::browserExtensionsDisabled): Added.
Drive-by: rename m_page to m_inspectedPage to emphasize that this
class exists as part of Web Inspector's backend, not its frontend.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[UIDelegate _webViewDidEnableInspectorBrowserDomain:]):
(-[UIDelegate _webViewDidDisableInspectorBrowserDomain:]):
(-[InspectorDelegate inspectorDidEnableBrowserDomain:]): Deleted.
(-[InspectorDelegate inspectorDidDisableBrowserDomain:]): Deleted.
Adapt to new location for delegate methods.

Location:
trunk
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r271421 r271424  
     12021-01-12  BJ Burg  <bburg@apple.com>
     2
     3        [Cocoa] Web Inspector: move browser domain activation methods back to WKWebView and UIDelegate
     4        https://bugs.webkit.org/show_bug.cgi?id=220480
     5
     6        Reviewed by Devin Rousso.
     7
     8        Having browser domain activation methods on WKInspectorDelegate means that
     9        the browser domain will not work with remote inspection of WKWebViews on
     10        macOS. Move these methods back to UIDelegate/WKWebView so that it is possible
     11        to remote inspect Safari Technology Preview with another Safari while still
     12        benefiting from the browser domain being turned on.
     13
     14        Covered by existing API tests.
     15
     16        * UIProcess/API/APIInspectorClient.h:
     17        (API::InspectorClient::browserDomainEnabled): Deleted.
     18        (API::InspectorClient::browserDomainDisabled): Deleted.
     19        * UIProcess/API/APIUIClient.h:
     20        (API::UIClient::didEnableInspectorBrowserDomain): Moved.
     21        (API::UIClient::didDisableInspectorBrowserDomain): Moved.
     22
     23        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
     24        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
     25        * UIProcess/API/Cocoa/WKWebView.mm:
     26        (-[WKWebView _didEnableBrowserExtensions:]): Moved.
     27        (-[WKWebView _didDisableBrowserExtensions:]): Moved.
     28        Moved from WKInspector.mm. Rather than accessing the browser agent
     29        directly from ObjC code, use the page's WebPageInspectorController.
     30
     31        * UIProcess/API/Cocoa/_WKInspectorDelegate.h:
     32        * UIProcess/API/Cocoa/_WKInspectorPrivate.h:
     33        * UIProcess/API/Cocoa/_WKInspector.mm:
     34        (-[_WKInspector _browserExtensionsEnabled:]): Deleted.
     35        (-[_WKInspector _browserExtensionsDisabled:]): Deleted.
     36
     37        * UIProcess/Cocoa/UIDelegate.h:
     38        * UIProcess/Cocoa/UIDelegate.mm:
     39        (WebKit::UIDelegate::setDelegate):
     40        (WebKit::UIDelegate::UIClient::didEnableInspectorBrowserDomain):
     41        (WebKit::UIDelegate::UIClient::didDisableInspectorBrowserDomain):
     42        * UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:
     43        (WebKit::InspectorBrowserAgent::enable):
     44        (WebKit::InspectorBrowserAgent::disable):
     45        * UIProcess/Inspector/Cocoa/InspectorDelegate.h:
     46        * UIProcess/Inspector/Cocoa/InspectorDelegate.mm:
     47        (WebKit::InspectorDelegate::setDelegate):
     48        (WebKit::InspectorDelegate::InspectorClient::~InspectorClient):
     49        (WebKit::InspectorDelegate::InspectorClient::browserDomainEnabled): Deleted.
     50        (WebKit::InspectorDelegate::InspectorClient::browserDomainDisabled): Deleted.
     51        * UIProcess/Inspector/WebInspectorProxy.cpp:
     52        (WebKit::WebInspectorProxy::browserExtensionsEnabled): Deleted.
     53        (WebKit::WebInspectorProxy::browserExtensionsDisabled): Deleted.
     54        * UIProcess/Inspector/WebInspectorProxy.h:
     55
     56        * UIProcess/Inspector/WebPageInspectorController.h:
     57        * UIProcess/Inspector/WebPageInspectorController.cpp:
     58        (WebKit::WebPageInspectorController::WebPageInspectorController):
     59        (WebKit::WebPageInspectorController::init):
     60        (WebKit::WebPageInspectorController::connectFrontend):
     61        (WebKit::WebPageInspectorController::disconnectFrontend):
     62        (WebKit::WebPageInspectorController::disconnectAllFrontends):
     63        (WebKit::WebPageInspectorController::setIndicating):
     64        (WebKit::WebPageInspectorController::createInspectorTarget):
     65        (WebKit::WebPageInspectorController::webPageAgentContext):
     66        (WebKit::WebPageInspectorController::setEnabledBrowserAgent): Added.
     67        (WebKit::WebPageInspectorController::browserExtensionsEnabled): Added.
     68        (WebKit::WebPageInspectorController::browserExtensionsDisabled): Added.
     69        Drive-by: rename m_page to m_inspectedPage to emphasize that this
     70        class exists as part of Web Inspector's backend, not its frontend.
     71
    1722021-01-12  Brent Fulgham  <bfulgham@apple.com>
    273
  • trunk/Source/WebKit/UIProcess/API/APIInspectorClient.h

    r267411 r271424  
    3939    virtual ~InspectorClient() = default;
    4040
    41     virtual void browserDomainEnabled(WebKit::WebInspectorProxy&) { }
    42     virtual void browserDomainDisabled(WebKit::WebInspectorProxy&) { }
    4341    virtual void openURLExternally(WebKit::WebInspectorProxy&, const WTF::String& url) { }
    4442};
  • trunk/Source/WebKit/UIProcess/API/APIUIClient.h

    r269918 r271424  
    202202        return API::InspectorConfiguration::create();
    203203    }
     204    virtual void didEnableInspectorBrowserDomain(WebKit::WebPageProxy&) { }
     205    virtual void didDisableInspectorBrowserDomain(WebKit::WebPageProxy&) { }
    204206
    205207    virtual void decidePolicyForSpeechRecognitionPermissionRequest(WebKit::WebPageProxy& page, API::SecurityOrigin& origin, CompletionHandler<void(bool)>&& completionHandler) { page.requestSpeechRecognitionPermissionByDefaultAction(origin.securityOrigin(), WTFMove(completionHandler)); }
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h

    r269810 r271424  
    154154
    155155- (void)_webView:(WKWebView *)webView requestSpeechRecognitionPermissionForOrigin:(WKSecurityOrigin *)origin decisionHandler:(void (^)(BOOL authorized))decisionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
     156
     157- (void)_webViewDidEnableInspectorBrowserDomain:(WKWebView *)webView WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
     158- (void)_webViewDidDisableInspectorBrowserDomain:(WKWebView *)webView WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
    156159
    157160#if TARGET_OS_IPHONE
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r270638 r271424  
    9191#import "WebFullScreenManagerProxy.h"
    9292#import "WebPageGroup.h"
     93#import "WebPageInspectorController.h"
    9394#import "WebPageProxy.h"
    9495#import "WebPreferences.h"
     
    16501651}
    16511652
     1653- (void)_didEnableBrowserExtensions:(NSDictionary<NSString *, NSString *> *)extensionIDToNameMap
     1654{
     1655    HashMap<String, String> transformed;
     1656    transformed.reserveInitialCapacity(extensionIDToNameMap.count);
     1657    [extensionIDToNameMap enumerateKeysAndObjectsUsingBlock:[&](NSString *extensionID, NSString *extensionName, BOOL *) {
     1658        transformed.set(extensionID, extensionName);
     1659    }];
     1660    _page->inspectorController().browserExtensionsEnabled(WTFMove(transformed));
     1661}
     1662
     1663- (void)_didDisableBrowserExtensions:(NSSet<NSString *> *)extensionIDs
     1664{
     1665    HashSet<String> transformed;
     1666    transformed.reserveInitialCapacity(extensionIDs.count);
     1667    for (NSString *extensionID in extensionIDs)
     1668        transformed.addVoid(extensionID);
     1669    _page->inspectorController().browserExtensionsDisabled(WTFMove(transformed));
     1670}
     1671
    16521672- (_WKFrameHandle *)_mainFrame
    16531673{
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h

    r270669 r271424  
    360360@property (nonatomic, setter=_setCanUseCredentialStorage:) BOOL _canUseCredentialStorage WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
    361361
     362- (void)_didEnableBrowserExtensions:(NSDictionary<NSString *, NSString *> *)extensionIDToNameMap WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
     363- (void)_didDisableBrowserExtensions:(NSSet<NSString *> *)extensionIDs WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
     364
    362365@end
    363366
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm

    r270606 r271424  
    171171}
    172172
    173 - (void)_browserExtensionsEnabled:(NSDictionary<NSString *, NSString *> *)extensionIDToNameMap
    174 {
    175     HashMap<String, String> transformed;
    176     transformed.reserveInitialCapacity(extensionIDToNameMap.count);
    177     [extensionIDToNameMap enumerateKeysAndObjectsUsingBlock:[&](NSString *extensionID, NSString *extensionName, BOOL *) {
    178         transformed.set(extensionID, extensionName);
    179     }];
    180     _inspector->browserExtensionsEnabled(WTFMove(transformed));
    181 }
    182 
    183 - (void)_browserExtensionsDisabled:(NSSet<NSString *> *)extensionIDs
    184 {
    185     HashSet<String> transformed;
    186     transformed.reserveInitialCapacity(extensionIDs.count);
    187     for (NSString *extensionID in extensionIDs)
    188         transformed.addVoid(extensionID);
    189     _inspector->browserExtensionsDisabled(WTFMove(transformed));
    190 }
    191 
    192173// MARK: _WKInspectorInternal methods
    193174
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDelegate.h

    r267411 r271424  
    3232@optional
    3333
    34 /*! @abstract Called when the Browser domain is enabled for the associated _WKInspector.
    35     @param inspector the associated _WKInspector for which the Browser domain has been enabled.
    36  */
    37 - (void)inspectorDidEnableBrowserDomain:(_WKInspector *)inspector;
    38 
    39 /*! @abstract Called when the  Browser domain is disabled for the associated _WKInspector.
    40     @param inspector the associated _WKInspector for which the Browser domain has been disabled.
    41  */
    42 - (void)inspectorDidDisableBrowserDomain:(_WKInspector *)inspector;
    43 
    4434/*! @abstract Called when the _WKInspector requests to show a resource externally. This
    4535    is used to display documentation pages and to show external URLs that are linkified.
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorPrivate.h

    r257410 r271424  
    3232@property (nonatomic, weak, setter=_setDiagnosticLoggingDelegate:) id<_WKDiagnosticLoggingDelegate> _diagnosticLoggingDelegate;
    3333
    34 // Browser
    35 - (void)_browserExtensionsEnabled:(NSDictionary<NSString *, NSString *> *)extensionIDToName;
    36 - (void)_browserExtensionsDisabled:(NSSet<NSString *> *)extensionIDs;
    37 
    3834@end
  • trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h

    r271264 r271424  
    164164#endif
    165165        void decidePolicyForSpeechRecognitionPermissionRequest(WebPageProxy&, API::SecurityOrigin&, CompletionHandler<void(bool)>&&) final;
     166        void didEnableInspectorBrowserDomain(WebPageProxy&) final;
     167        void didDisableInspectorBrowserDomain(WebPageProxy&) final;
    166168
    167169        WeakPtr<UIDelegate> m_uiDelegate;
     
    251253        bool webViewRunWebAuthenticationPanelInitiatedByFrameCompletionHandler : 1;
    252254#endif
     255        bool webViewDidEnableInspectorBrowserDomain : 1;
     256        bool webViewDidDisableInspectorBrowserDomain : 1;
    253257    } m_delegateMethods;
    254258};
  • trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm

    r271264 r271424  
    184184    m_delegateMethods.webViewRunWebAuthenticationPanelInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(_webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:)];
    185185#endif
     186   
     187    m_delegateMethods.webViewDidEnableInspectorBrowserDomain = [delegate respondsToSelector:@selector(_webViewDidEnableInspectorBrowserDomain:)];
     188    m_delegateMethods.webViewDidDisableInspectorBrowserDomain = [delegate respondsToSelector:@selector(_webViewDidDisableInspectorBrowserDomain:)];
    186189}
    187190
     
    15511554}
    15521555
     1556void UIDelegate::UIClient::didEnableInspectorBrowserDomain(WebPageProxy&)
     1557{
     1558    if (!m_uiDelegate)
     1559        return;
     1560
     1561    if (!m_uiDelegate->m_delegateMethods.webViewDidEnableInspectorBrowserDomain)
     1562        return;
     1563
     1564    auto delegate = (id <WKUIDelegatePrivate>)m_uiDelegate->m_delegate.get();
     1565    if (!delegate)
     1566        return;
     1567
     1568    [delegate _webViewDidEnableInspectorBrowserDomain:m_uiDelegate->m_webView.get().get()];
     1569}
     1570
     1571void UIDelegate::UIClient::didDisableInspectorBrowserDomain(WebPageProxy&)
     1572{
     1573    if (!m_uiDelegate)
     1574        return;
     1575
     1576    if (!m_uiDelegate->m_delegateMethods.webViewDidDisableInspectorBrowserDomain)
     1577        return;
     1578
     1579    auto delegate = (id <WKUIDelegatePrivate>)m_uiDelegate->m_delegate.get();
     1580    if (!delegate)
     1581        return;
     1582
     1583    [delegate _webViewDidDisableInspectorBrowserDomain:m_uiDelegate->m_webView.get().get()];
     1584}
     1585
    15531586} // namespace WebKit
  • trunk/Source/WebKit/UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp

    r266890 r271424  
    2727#include "InspectorBrowserAgent.h"
    2828
    29 #include "APIInspectorClient.h"
     29#include "APIUIClient.h"
    3030#include "WebInspectorProxy.h"
    3131#include "WebPageInspectorController.h"
     
    7272    m_inspectedPage.inspectorController().setEnabledBrowserAgent(this);
    7373
    74     if (auto* inspector = m_inspectedPage.inspector())
    75         inspector->inspectorClient().browserDomainEnabled(*inspector);
    76 
    7774    return { };
    7875}
     
    8481
    8582    m_inspectedPage.inspectorController().setEnabledBrowserAgent(nullptr);
    86 
    87     if (auto* inspector = m_inspectedPage.inspector())
    88         inspector->inspectorClient().browserDomainDisabled(*inspector);
    8983
    9084    return { };
  • trunk/Source/WebKit/UIProcess/Inspector/Cocoa/InspectorDelegate.h

    r267411 r271424  
    3636
    3737class WebInspectorProxy;
    38 class WebPageProxy;
    3938
    4039class InspectorDelegate {
     
    5756    private:
    5857        // API::InspectorClient
    59         void browserDomainEnabled(WebInspectorProxy&);
    60         void browserDomainDisabled(WebInspectorProxy&);
    6158        void openURLExternally(WebInspectorProxy&, const String& url);
    6259
     
    6865
    6966    struct {
    70         bool inspectorDidEnableBrowserDomain : 1;
    71         bool inspectorDidDisableBrowserDomain : 1;
    7267        bool inspectorOpenURLExternally : 1;
    7368    } m_delegateMethods;
  • trunk/Source/WebKit/UIProcess/Inspector/Cocoa/InspectorDelegate.mm

    r267411 r271424  
    2828
    2929#import "WebInspectorProxy.h"
    30 #import "WebPageProxy.h"
    3130#import "_WKInspectorDelegate.h"
    3231#import "_WKInspectorInternal.h"
     
    5352    m_delegate = delegate;
    5453
    55     m_delegateMethods.inspectorDidEnableBrowserDomain = [delegate respondsToSelector:@selector(inspectorDidEnableBrowserDomain:)];
    56     m_delegateMethods.inspectorDidDisableBrowserDomain = [delegate respondsToSelector:@selector(inspectorDidDisableBrowserDomain:)];
    5754    m_delegateMethods.inspectorOpenURLExternally = [delegate respondsToSelector:@selector(inspector:openURLExternally:)];
    5855}
     
    6360}
    6461
    65 InspectorDelegate::InspectorClient::~InspectorClient() = default;
    66 
    67 void InspectorDelegate::InspectorClient::browserDomainEnabled(WebInspectorProxy&)
     62InspectorDelegate::InspectorClient::~InspectorClient()
    6863{
    69     if (!m_inspectorDelegate.m_delegateMethods.inspectorDidEnableBrowserDomain)
    70         return;
    71 
    72     auto& delegate = m_inspectorDelegate.m_delegate;
    73     if (!delegate)
    74         return;
    75 
    76     [delegate inspectorDidEnableBrowserDomain:m_inspectorDelegate.m_inspector.get().get()];
    77 }
    78 
    79 void InspectorDelegate::InspectorClient::browserDomainDisabled(WebInspectorProxy&)
    80 {
    81     if (!m_inspectorDelegate.m_delegateMethods.inspectorDidDisableBrowserDomain)
    82         return;
    83 
    84     auto& delegate = m_inspectorDelegate.m_delegate;
    85     if (!delegate)
    86         return;
    87 
    88     [delegate inspectorDidDisableBrowserDomain:m_inspectorDelegate.m_inspector.get().get()];
    8964}
    9065
  • trunk/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.cpp

    r271374 r271424  
    701701}
    702702
    703 void WebInspectorProxy::browserExtensionsEnabled(HashMap<String, String>&& extensionIDToName)
    704 {
    705     if (auto* browserAgent = m_inspectedPage->inspectorController().enabledBrowserAgent())
    706         browserAgent->extensionsEnabled(WTFMove(extensionIDToName));
    707 }
    708 
    709 void WebInspectorProxy::browserExtensionsDisabled(HashSet<String>&& extensionIDs)
    710 {
    711     if (auto* browserAgent = m_inspectedPage->inspectorController().enabledBrowserAgent())
    712         browserAgent->extensionsDisabled(WTFMove(extensionIDs));
    713 }
    714 
    715703void WebInspectorProxy::save(const String& filename, const String& content, bool base64Encoded, bool forceSaveAs)
    716704{
  • trunk/Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h

    r269701 r271424  
    185185    void setDiagnosticLoggingAvailable(bool);
    186186
    187     // Browser
    188     void browserExtensionsEnabled(HashMap<String, String>&&);
    189     void browserExtensionsDisabled(HashSet<String>&&);
    190 
    191187    // Provided by platform WebInspectorProxy implementations.
    192188    static String inspectorPageURL();
  • trunk/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.cpp

    r257410 r271424  
    1 /*
    2  * Copyright (C) 2018 Apple Inc. All rights reserved.
     1    /*
     2 * Copyright (C) 2018-2020 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2727#include "WebPageInspectorController.h"
    2828
     29#include "APIUIClient.h"
    2930#include "InspectorBrowserAgent.h"
    3031#include "ProvisionalPageProxy.h"
     
    4950}
    5051
    51 WebPageInspectorController::WebPageInspectorController(WebPageProxy& page)
     52WebPageInspectorController::WebPageInspectorController(WebPageProxy& inspectedPage)
    5253    : m_frontendRouter(FrontendRouter::create())
    5354    , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
    54     , m_page(page)
     55    , m_inspectedPage(inspectedPage)
    5556{
    5657    auto targetAgent = makeUnique<InspectorTargetAgent>(m_frontendRouter.get(), m_backendDispatcher.get());
     
    6162void WebPageInspectorController::init()
    6263{
    63     String pageTargetId = WebPageInspectorTarget::toTargetID(m_page.webPageID());
     64    String pageTargetId = WebPageInspectorTarget::toTargetID(m_inspectedPage.webPageID());
    6465    createInspectorTarget(pageTargetId, Inspector::InspectorTargetType::Page);
    6566}
     
    8889        m_agents.didCreateFrontendAndBackend(&m_frontendRouter.get(), &m_backendDispatcher.get());
    8990
    90     m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
     91    m_inspectedPage.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
    9192
    9293#if ENABLE(REMOTE_INSPECTOR)
    9394    if (hasLocalFrontend())
    94         m_page.remoteInspectorInformationDidChange();
     95        m_inspectedPage.remoteInspectorInformationDidChange();
    9596#endif
    9697}
     
    104105        m_agents.willDestroyFrontendAndBackend(DisconnectReason::InspectorDestroyed);
    105106
    106     m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
     107    m_inspectedPage.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
    107108
    108109#if ENABLE(REMOTE_INSPECTOR)
    109110    if (disconnectingLastFrontend)
    110         m_page.remoteInspectorInformationDidChange();
     111        m_inspectedPage.remoteInspectorInformationDidChange();
    111112#endif
    112113}
     
    125126    m_frontendRouter->disconnectAllFrontends();
    126127
    127     m_page.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
    128 
    129 #if ENABLE(REMOTE_INSPECTOR)
    130     m_page.remoteInspectorInformationDidChange();
     128    m_inspectedPage.didChangeInspectorFrontendCount(m_frontendRouter->frontendCount());
     129
     130#if ENABLE(REMOTE_INSPECTOR)
     131    m_inspectedPage.remoteInspectorInformationDidChange();
    131132#endif
    132133}
     
    141142{
    142143#if !PLATFORM(IOS_FAMILY)
    143     m_page.setIndicating(indicating);
     144    m_inspectedPage.setIndicating(indicating);
    144145#else
    145146    if (indicating)
    146         m_page.showInspectorIndication();
     147        m_inspectedPage.showInspectorIndication();
    147148    else
    148         m_page.hideInspectorIndication();
     149        m_inspectedPage.hideInspectorIndication();
    149150#endif
    150151}
     
    153154void WebPageInspectorController::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type)
    154155{
    155     addTarget(InspectorTargetProxy::create(m_page, targetId, type));
     156    addTarget(InspectorTargetProxy::create(m_inspectedPage, targetId, type));
    156157}
    157158
     
    220221        m_frontendRouter.get(),
    221222        m_backendDispatcher.get(),
    222         m_page,
     223        m_inspectedPage,
    223224    };
    224225}
     
    242243}
    243244
     245void WebPageInspectorController::setEnabledBrowserAgent(InspectorBrowserAgent* agent)
     246{
     247    if (m_enabledBrowserAgent == agent)
     248        return;
     249
     250    m_enabledBrowserAgent = agent;
     251
     252    if (m_enabledBrowserAgent)
     253        m_inspectedPage.uiClient().didEnableInspectorBrowserDomain(m_inspectedPage);
     254    else
     255        m_inspectedPage.uiClient().didDisableInspectorBrowserDomain(m_inspectedPage);
     256}
     257
     258void WebPageInspectorController::browserExtensionsEnabled(HashMap<String, String>&& extensionIDToName)
     259{
     260    if (m_enabledBrowserAgent)
     261        m_enabledBrowserAgent->extensionsEnabled(WTFMove(extensionIDToName));
     262}
     263
     264void WebPageInspectorController::browserExtensionsDisabled(HashSet<String>&& extensionIDs)
     265{
     266    if (m_enabledBrowserAgent)
     267        m_enabledBrowserAgent->extensionsDisabled(WTFMove(extensionIDs));
     268}
     269
    244270} // namespace WebKit
  • trunk/Source/WebKit/UIProcess/Inspector/WebPageInspectorController.h

    r264592 r271424  
    7878
    7979    InspectorBrowserAgent* enabledBrowserAgent() const { return m_enabledBrowserAgent; }
    80     void setEnabledBrowserAgent(InspectorBrowserAgent* agent) { m_enabledBrowserAgent = agent; }
     80    void setEnabledBrowserAgent(InspectorBrowserAgent*);
     81
     82    void browserExtensionsEnabled(HashMap<String, String>&&);
     83    void browserExtensionsDisabled(HashSet<String>&&);
    8184
    8285private:
     
    9093    Inspector::AgentRegistry m_agents;
    9194
    92     WebPageProxy& m_page;
     95    WebPageProxy& m_inspectedPage;
    9396
    9497    Inspector::InspectorTargetAgent* m_targetAgent { nullptr };
  • trunk/Tools/ChangeLog

    r271414 r271424  
     12021-01-12  BJ Burg  <bburg@apple.com>
     2
     3        [Cocoa] Web Inspector: move browser domain activation methods back to WKWebView and UIDelegate
     4        https://bugs.webkit.org/show_bug.cgi?id=220480
     5
     6        Reviewed by Devin Rousso.
     7
     8        * TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
     9        (-[UIDelegate _webViewDidEnableInspectorBrowserDomain:]):
     10        (-[UIDelegate _webViewDidDisableInspectorBrowserDomain:]):
     11        (-[InspectorDelegate inspectorDidEnableBrowserDomain:]): Deleted.
     12        (-[InspectorDelegate inspectorDidDisableBrowserDomain:]): Deleted.
     13        Adapt to new location for delegate methods.
     14
    1152021-01-12  Wenson Hsieh  <wenson_hsieh@apple.com>
    216
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm

    r269068 r271424  
    105105@implementation InspectorDelegate
    106106
    107 - (void)inspectorDidEnableBrowserDomain:(_WKInspector *)inspector
    108 {
    109     browserDomainEnabledForInspectorCalled = true;
    110 }
    111 
    112 - (void)inspectorDidDisableBrowserDomain:(_WKInspector *)inspector
    113 {
    114     browserDomainDisabledForInspectorCalled = true;
    115 }
    116 
    117107- (void)inspector:(_WKInspector *)inspector openURLExternally:(NSURL *)url
    118108{
     
    155145    if (shouldCallInspectorCloseReentrantly)
    156146        [inspector close];
     147}
     148
     149- (void)_webViewDidEnableInspectorBrowserDomain:(WKWebView *)webView
     150{
     151    browserDomainEnabledForInspectorCalled = true;
     152}
     153
     154- (void)_webViewDidDisableInspectorBrowserDomain:(WKWebView *)webView
     155{
     156    browserDomainDisabledForInspectorCalled = true;
    157157}
    158158
Note: See TracChangeset for help on using the changeset viewer.