Title: [165846] trunk/Source/WebKit2
Revision
165846
Author
[email protected]
Date
2014-03-18 14:46:21 -0700 (Tue, 18 Mar 2014)

Log Message

WebKit2 SPI to disable remote inspection on a WKWebView / WKPage
https://bugs.webkit.org/show_bug.cgi?id=130371

Reviewed by Dan Bernstein.

* Shared/WebPageCreationParameters.h:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
Add allowsRemoteInspection bool.

* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageGetAllowsRemoteInspection):
(WKPageSetAllowsRemoteInspection):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
Getter and setter for allowing remote inspection state.

* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::allowsRemoteInspection):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setAllowsRemoteInspection):
(WebKit::WebPageProxy::creationParameters):
Cached allows remote inspection state, with getter and setter.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAllowsRemoteInspection):
When setting, call into WebCore to adjust the Page's setting.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (165845 => 165846)


--- trunk/Source/WebKit2/ChangeLog	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/ChangeLog	2014-03-18 21:46:21 UTC (rev 165846)
@@ -1,3 +1,40 @@
+2014-03-18  Joseph Pecoraro  <[email protected]>
+
+        WebKit2 SPI to disable remote inspection on a WKWebView / WKPage
+        https://bugs.webkit.org/show_bug.cgi?id=130371
+
+        Reviewed by Dan Bernstein.
+
+        * Shared/WebPageCreationParameters.h:
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode):
+        (WebKit::WebPageCreationParameters::decode):
+        Add allowsRemoteInspection bool.
+
+        * UIProcess/API/C/WKPagePrivate.h:
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageGetAllowsRemoteInspection):
+        (WKPageSetAllowsRemoteInspection):
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _allowsRemoteInspection]):
+        (-[WKWebView _setAllowsRemoteInspection:]):
+        Getter and setter for allowing remote inspection state.
+
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::allowsRemoteInspection):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::setAllowsRemoteInspection):
+        (WebKit::WebPageProxy::creationParameters):
+        Cached allows remote inspection state, with getter and setter.
+
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setAllowsRemoteInspection):
+        When setting, call into WebCore to adjust the Page's setting.
+
 2014-03-18  Anders Carlsson  <[email protected]>
 
         REGRESSION: Visited link coloring seems to be completely broken in tip of tree

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp (165845 => 165846)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2014-03-18 21:46:21 UTC (rev 165846)
@@ -63,6 +63,9 @@
     encoder << backgroundExtendsBeyondPage;
     encoder.encodeEnum(layerHostingMode);
 
+#if ENABLE(REMOTE_INSPECTOR)
+    encoder << allowsRemoteInspection;
+#endif
 #if PLATFORM(MAC)
     encoder << colorSpace;
 #endif
@@ -131,7 +134,12 @@
         return false;
     if (!decoder.decodeEnum(parameters.layerHostingMode))
         return false;
-    
+
+#if ENABLE(REMOTE_INSPECTOR)
+    if (!decoder.decoder(parameters.allowsRemoteInspection))
+        return false;
+#endif
+
 #if PLATFORM(MAC)
     if (!decoder.decode(parameters.colorSpace))
         return false;

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.h (165845 => 165846)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2014-03-18 21:46:21 UTC (rev 165846)
@@ -103,6 +103,10 @@
 
     LayerHostingMode layerHostingMode;
 
+#if ENABLE(REMOTE_INSPECTOR)
+    bool allowsRemoteInspection;
+#endif
+
 #if PLATFORM(MAC)
     ColorSpaceData colorSpace;
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2014-03-18 21:46:21 UTC (rev 165846)
@@ -1641,6 +1641,26 @@
     toImpl(page)->setShouldSendEventsSynchronously(sync);
 }
 
+bool WKPageGetAllowsRemoteInspection(WKPageRef page)
+{
+#if ENABLE(REMOTE_INSPECTOR)
+    return toImpl(page)->allowsRemoteInspection();
+#else
+    UNUSED_PARAM(page);
+    return false;
+#endif    
+}
+
+void WKPageSetAllowsRemoteInspection(WKPageRef page, bool allow)
+{
+#if ENABLE(REMOTE_INSPECTOR)
+    toImpl(page)->setAllowsRemoteInspection(allow);
+#else
+    UNUSED_PARAM(page);
+    UNUSED_PARAM(allow);
+#endif
+}
+
 void WKPageSetMediaVolume(WKPageRef page, float volume)
 {
     toImpl(page)->setMediaVolume(volume);    

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h	2014-03-18 21:46:21 UTC (rev 165846)
@@ -87,6 +87,9 @@
 
 WK_EXPORT void WKPageSetShouldSendEventsSynchronously(WKPageRef page, bool sync);
 
+WK_EXPORT bool WKPageGetAllowsRemoteInspection(WKPageRef page);
+WK_EXPORT void WKPageSetAllowsRemoteInspection(WKPageRef page, bool allow);
+
 WK_EXPORT void WKPageSetMediaVolume(WKPageRef page, float volume);
 WK_EXPORT void WKPageSetMayStartMediaWhenInWindow(WKPageRef page, bool mayStartMedia);
 

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm	2014-03-18 21:46:21 UTC (rev 165846)
@@ -877,6 +877,22 @@
     [_configuration preferences]->_preferences->setPrivateBrowsingEnabled(privateBrowsingEnabled);
 }
 
+- (BOOL)_allowsRemoteInspection
+{
+#if ENABLE(REMOTE_INSPECTOR)
+    return _page->allowsRemoteInspection();
+#else
+    return NO;
+#endif
+}
+
+- (void)_setAllowsRemoteInspection:(BOOL)allow
+{
+#if ENABLE(REMOTE_INSPECTOR)
+    _page->setAllowsRemoteInspection(allow);
+#endif
+}
+
 static inline WebCore::LayoutMilestones layoutMilestones(_WKRenderingProgressEvents events)
 {
     WebCore::LayoutMilestones milestones = 0;

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h	2014-03-18 21:46:21 UTC (rev 165846)
@@ -72,6 +72,8 @@
 
 @property (nonatomic, setter=_setPrivateBrowsingEnabled:) BOOL _privateBrowsingEnabled;
 
+@property (nonatomic, setter=_setAllowsRemoteInspection:) BOOL _allowsRemoteInspection;
+
 - (void)_close;
 
 #if TARGET_OS_IPHONE

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-03-18 21:46:21 UTC (rev 165846)
@@ -305,6 +305,9 @@
     , m_pageID(pageID)
     , m_session(*configuration.session)
     , m_isPageSuspended(false)
+#if ENABLE(REMOTE_INSPECTOR)
+    , m_allowsRemoteInspection(true)
+#endif
 #if PLATFORM(COCOA)
     , m_isSmartInsertDeleteEnabled(TextChecker::isSmartInsertDeleteEnabled())
 #endif
@@ -887,6 +890,19 @@
     return false;
 }
 
+#if ENABLE(REMOTE_INSPECTOR)
+void WebPageProxy::setAllowsRemoteInspection(bool allow)
+{
+    if (m_allowsRemoteInspection == allow)
+        return;
+
+    m_allowsRemoteInspection = allow;
+
+    if (isValid())
+        m_process->send(Messages::WebPage::SetAllowsRemoteInspection(allow), m_pageID);
+}
+#endif
+
 void WebPageProxy::setDrawsBackground(bool drawsBackground)
 {
     if (m_drawsBackground == drawsBackground)
@@ -4008,7 +4024,9 @@
     parameters.scrollPinningBehavior = m_scrollPinningBehavior;
     parameters.backgroundExtendsBeyondPage = m_backgroundExtendsBeyondPage;
     parameters.layerHostingMode = m_layerHostingMode;
-
+#if ENABLE(REMOTE_INSPECTOR)
+    parameters.allowsRemoteInspection = m_allowsRemoteInspection;
+#endif
 #if PLATFORM(MAC)
     parameters.colorSpace = m_pageClient.colorSpace();
 #endif

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (165845 => 165846)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-03-18 21:46:21 UTC (rev 165846)
@@ -360,6 +360,11 @@
     WebInspectorProxy* inspector();
 #endif
 
+#if ENABLE(REMOTE_INSPECTOR)
+    bool allowsRemoteInspection() const { return m_allowsRemoteInspection; }
+    void setAllowsRemoteInspection(bool);
+#endif
+
 #if ENABLE(VIBRATION)
     WebVibrationProxy* vibration() { return m_vibration.get(); }
 #endif
@@ -1394,6 +1399,10 @@
 
     bool m_isPageSuspended;
 
+#if ENABLE(REMOTE_INSPECTOR)
+    bool m_allowsRemoteInspection;
+#endif
+
 #if PLATFORM(COCOA)
     bool m_isSmartInsertDeleteEnabled;
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (165845 => 165846)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-03-18 21:46:21 UTC (rev 165846)
@@ -1973,6 +1973,13 @@
     m_findController.showFindIndicatorInSelection();
 }
 
+#if ENABLE(REMOTE_INSPECTOR)
+void WebPage::setAllowsRemoteInspection(bool allow)
+{
+    m_page->setRemoteInspectionAllowed(allow);
+}
+#endif
+
 void WebPage::setDrawsBackground(bool drawsBackground)
 {
     if (m_drawsBackground == drawsBackground)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (165845 => 165846)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2014-03-18 21:46:21 UTC (rev 165846)
@@ -828,6 +828,10 @@
 
     void didRemoveBackForwardItem(uint64_t);
 
+#if ENABLE(REMOTE_INSPECTOR)
+    void setAllowsRemoteInspection(bool);
+#endif
+
     void setDrawsBackground(bool);
     void setDrawsTransparentBackground(bool);
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (165845 => 165846)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2014-03-18 21:38:05 UTC (rev 165845)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2014-03-18 21:46:21 UTC (rev 165846)
@@ -73,6 +73,10 @@
     ApplicationDidBecomeActive()
 #endif
 
+#if ENABLE(REMOTE_INSPECTOR)
+    SetAllowsRemoteInspection(bool allow)
+#endif
+
 #if ENABLE(TOUCH_EVENTS)
     TouchEvent(WebKit::WebTouchEvent event)
     TouchEventSyncForTesting(WebKit::WebTouchEvent event) -> (bool handled)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to