[Cocoa] _WKInspector uses wrong WKWebView in -setDiagnosticLoggingDelegate:
https://bugs.webkit.org/show_bug.cgi?id=204928

Reviewed by Timothy Hatcher.

I feel like I've made this mistake before. To make the right thing more obvious,
add a property named inspectorWebView that returns the Inspector WKWebView.

* UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector inspectorWebView]):
(-[_WKInspector _setDiagnosticLoggingDelegate:]):
* UIProcess/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::inspectorPage const):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@253189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index b29157d..ae5e5a6 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,19 @@
+2019-12-05  Brian Burg  <bburg@apple.com>
+
+        [Cocoa] _WKInspector uses wrong WKWebView in -setDiagnosticLoggingDelegate:
+        https://bugs.webkit.org/show_bug.cgi?id=204928
+
+        Reviewed by Timothy Hatcher.
+
+        I feel like I've made this mistake before. To make the right thing more obvious,
+        add a property named inspectorWebView that returns the Inspector WKWebView.
+
+        * UIProcess/API/Cocoa/_WKInspector.mm:
+        (-[_WKInspector inspectorWebView]):
+        (-[_WKInspector _setDiagnosticLoggingDelegate:]):
+        * UIProcess/WebInspectorProxy.h:
+        (WebKit::WebInspectorProxy::inspectorPage const):
+
 2019-12-05  Chris Dumez  <cdumez@apple.com>
 
         Use sendWithAsyncReply() for WebPage::TryClose IPC
diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm
index dd1a4aa..974d08a 100644
--- a/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm
+++ b/Source/WebKit/UIProcess/API/Cocoa/_WKInspector.mm
@@ -44,6 +44,13 @@
     return nil;
 }
 
+- (WKWebView *)inspectorWebView
+{
+    if (auto* page = _inspector->inspectorPage())
+        return fromWebPageProxy(*page);
+    return nil;
+}
+
 - (BOOL)isConnected
 {
     return _inspector->isConnected();
@@ -135,7 +142,11 @@
 
 - (void)_setDiagnosticLoggingDelegate:(id<_WKDiagnosticLoggingDelegate>)delegate
 {
-    self.webView._diagnosticLoggingDelegate = delegate;
+    auto inspectorWebView = self.inspectorWebView;
+    if (!inspectorWebView)
+        return;
+
+    inspectorWebView._diagnosticLoggingDelegate = delegate;
     _inspector->setDiagnosticLoggingAvailable(!!delegate);
 }
 
diff --git a/Source/WebKit/UIProcess/WebInspectorProxy.h b/Source/WebKit/UIProcess/WebInspectorProxy.h
index c3833a5..3fb25de 100644
--- a/Source/WebKit/UIProcess/WebInspectorProxy.h
+++ b/Source/WebKit/UIProcess/WebInspectorProxy.h
@@ -89,6 +89,7 @@
 
     // Public APIs
     WebPageProxy* inspectedPage() const { return m_inspectedPage; }
+    WebPageProxy* inspectorPage() const { return m_inspectorPage; }
 
     bool isConnected() const { return !!m_inspectorPage; }
     bool isVisible() const { return m_isVisible; }