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)