Diff
Modified: trunk/Source/WebKit/CMakeLists.txt (225953 => 225954)
--- trunk/Source/WebKit/CMakeLists.txt 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/CMakeLists.txt 2017-12-15 02:08:23 UTC (rev 225954)
@@ -216,7 +216,7 @@
Shared/WebUserContentControllerDataTypes.cpp
Shared/WebWheelEvent.cpp
Shared/WebsiteDataStoreParameters.cpp
- Shared/WebsitePolicies.cpp
+ Shared/WebsitePoliciesData.cpp
Shared/API/APIArray.cpp
Shared/API/APIData.cpp
@@ -358,7 +358,6 @@
UIProcess/API/APIUserScript.cpp
UIProcess/API/APIUserStyleSheet.cpp
UIProcess/API/APIWebsiteDataStore.cpp
- UIProcess/API/APIWebsitePolicies.cpp
UIProcess/API/APIWindowFeatures.cpp
UIProcess/API/C/WKApplicationCacheManager.cpp
Modified: trunk/Source/WebKit/ChangeLog (225953 => 225954)
--- trunk/Source/WebKit/ChangeLog 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/ChangeLog 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1,3 +1,98 @@
+2017-12-14 Alex Christensen <[email protected]>
+
+ Serialize WebsitePoliciesData instead of WebsitePolicies
+ https://bugs.webkit.org/show_bug.cgi?id=180847
+
+ Reviewed by Joseph Pecoraro.
+
+ No change in behavior. This will allow me to add things to WebsitePolicies that have
+ a different form when serialized to another process.
+
+ Also, remove API::WebsitePolicies because the wrapper isn't necessary.
+ WebsitePolicies is now the API type that only exists in the UIProcess.
+
+ * Shared/WebsitePolicies.cpp: Removed.
+ * Shared/WebsitePolicies.h:
+ (WebKit::WebsitePolicies::contentBlockersEnabled const): Deleted.
+ (WebKit::WebsitePolicies::setContentBlockersEnabled): Deleted.
+ (WebKit::WebsitePolicies::allowedAutoplayQuirks const): Deleted.
+ (WebKit::WebsitePolicies::setAllowedAutoplayQuirks): Deleted.
+ (WebKit::WebsitePolicies::autoplayPolicy const): Deleted.
+ (WebKit::WebsitePolicies::setAutoplayPolicy): Deleted.
+ (WebKit::WebsitePolicies::customHeaderFields): Deleted.
+ (WebKit::WebsitePolicies::takeCustomHeaderFields): Deleted.
+ (WebKit::WebsitePolicies::setCustomHeaderFields): Deleted.
+ * Shared/WebsitePoliciesData.cpp: Copied from Source/WebKit/Shared/WebsitePolicies.cpp.
+ (WebKit::WebsitePoliciesData::fromWebsitePolicies):
+ (WebKit::WebsitePoliciesData::encode const):
+ (WebKit::WebsitePoliciesData::decode):
+ (WebKit::WebsitePoliciesData::applyToDocumentLoader):
+ (WebKit::WebsitePolicies::WebsitePolicies): Deleted.
+ (WebKit::WebsitePolicies::encode const): Deleted.
+ (WebKit::WebsitePolicies::decode): Deleted.
+ (WebKit::WebsitePolicies::applyToDocumentLoader): Deleted.
+ * Shared/WebsitePoliciesData.h: Added.
+ * UIProcess/API/APINavigationClient.h:
+ (API::NavigationClient::decidePolicyForNavigationAction):
+ (API::NavigationClient::decidePolicyForNavigationResponse):
+ * UIProcess/API/APIPolicyClient.h:
+ (API::PolicyClient::decidePolicyForNavigationAction):
+ (API::PolicyClient::decidePolicyForNewWindowAction):
+ (API::PolicyClient::decidePolicyForResponse):
+ * UIProcess/API/APIWebsitePolicies.cpp: Removed.
+ * UIProcess/API/APIWebsitePolicies.h: Removed.
+ * UIProcess/API/C/WKAPICast.h:
+ * UIProcess/API/C/WKFramePolicyListener.cpp:
+ (WKFramePolicyListenerUse):
+ (WKFramePolicyListenerUseWithPolicies):
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageUpdateWebsitePolicies):
+ (WKPageSetPagePolicyClient):
+ (WKPageSetPageNavigationClient):
+ * UIProcess/API/C/WKWebsitePolicies.cpp:
+ (WKWebsitePoliciesGetTypeID):
+ (WKWebsitePoliciesCreate):
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _updateWebsitePolicies:]):
+ * UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
+ (-[_WKWebsitePolicies dealloc]):
+ (-[_WKWebsitePolicies init]):
+ * UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:
+ (WebKit::wrapper):
+ * UIProcess/Cocoa/NavigationState.mm:
+ (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
+ (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
+ * UIProcess/WebFrameListenerProxy.cpp:
+ (WebKit::WebFrameListenerProxy::receivedPolicyDecision):
+ * UIProcess/WebFrameListenerProxy.h:
+ * UIProcess/WebFramePolicyListenerProxy.cpp:
+ (WebKit::WebFramePolicyListenerProxy::use):
+ (WebKit::WebFramePolicyListenerProxy::download):
+ (WebKit::WebFramePolicyListenerProxy::ignore):
+ * UIProcess/WebFramePolicyListenerProxy.h:
+ * UIProcess/WebFrameProxy.cpp:
+ (WebKit::WebFrameProxy::receivedPolicyDecision):
+ * UIProcess/WebFrameProxy.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::receivedPolicyDecision):
+ (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+ (WebKit::WebPageProxy::updateWebsitePolicies):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::applyToDocumentLoader):
+ (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::didReceivePolicyDecision):
+ * WebProcess/WebPage/WebFrame.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didReceivePolicyDecision):
+ (WebKit::WebPage::updateWebsitePolicies):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+
2017-12-14 Ryan Haddad <[email protected]>
Unreviewed, rolling out r225931.
Deleted: trunk/Source/WebKit/Shared/WebsitePolicies.cpp (225953 => 225954)
--- trunk/Source/WebKit/Shared/WebsitePolicies.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/Shared/WebsitePolicies.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebsitePolicies.h"
-
-#include "ArgumentCoders.h"
-#include <WebCore/DocumentLoader.h>
-
-namespace WebKit {
-
-WebsitePolicies::WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks, WebsiteAutoplayPolicy autoplayPolicy, Vector<WebCore::HTTPHeaderField>&& customHeaderFields)
- : m_contentBlockersEnabled(contentBlockersEnabled)
- , m_allowedAutoplayQuirks(allowedAutoplayQuirks)
- , m_autoplayPolicy(autoplayPolicy)
- , m_customHeaderFields(WTFMove(customHeaderFields))
-{
-}
-
-void WebsitePolicies::encode(IPC::Encoder& encoder) const
-{
- encoder << m_contentBlockersEnabled;
- encoder << m_autoplayPolicy;
- encoder << m_allowedAutoplayQuirks;
- encoder << m_customHeaderFields;
-}
-
-std::optional<WebsitePolicies> WebsitePolicies::decode(IPC::Decoder& decoder)
-{
- std::optional<bool> contentBlockersEnabled;
- decoder >> contentBlockersEnabled;
- if (!contentBlockersEnabled)
- return std::nullopt;
-
- std::optional<WebsiteAutoplayPolicy> autoplayPolicy;
- decoder >> autoplayPolicy;
- if (!autoplayPolicy)
- return std::nullopt;
-
- std::optional<OptionSet<WebsiteAutoplayQuirk>> allowedAutoplayQuirks;
- decoder >> allowedAutoplayQuirks;
- if (!allowedAutoplayQuirks)
- return std::nullopt;
-
- std::optional<Vector<WebCore::HTTPHeaderField>> customHeaderFields;
- decoder >> customHeaderFields;
- if (!customHeaderFields)
- return std::nullopt;
-
- return { {
- WTFMove(*contentBlockersEnabled),
- WTFMove(*allowedAutoplayQuirks),
- WTFMove(*autoplayPolicy),
- WTFMove(*customHeaderFields),
- } };
-}
-
-void WebsitePolicies::applyToDocumentLoader(WebsitePolicies&& websitePolicies, WebCore::DocumentLoader& documentLoader)
-{
- documentLoader.setCustomHeaderFields(websitePolicies.takeCustomHeaderFields());
-
- // Only setUserContentExtensionsEnabled if it hasn't already been disabled by reloading without content blockers.
- if (documentLoader.userContentExtensionsEnabled())
- documentLoader.setUserContentExtensionsEnabled(websitePolicies.contentBlockersEnabled());
-
- OptionSet<WebCore::AutoplayQuirk> quirks;
- auto allowedQuirks = websitePolicies.allowedAutoplayQuirks();
-
- if (allowedQuirks.contains(WebsiteAutoplayQuirk::InheritedUserGestures))
- quirks |= WebCore::AutoplayQuirk::InheritedUserGestures;
-
- if (allowedQuirks.contains(WebsiteAutoplayQuirk::SynthesizedPauseEvents))
- quirks |= WebCore::AutoplayQuirk::SynthesizedPauseEvents;
-
- if (allowedQuirks.contains(WebsiteAutoplayQuirk::ArbitraryUserGestures))
- quirks |= WebCore::AutoplayQuirk::ArbitraryUserGestures;
-
- documentLoader.setAllowedAutoplayQuirks(quirks);
-
- switch (websitePolicies.autoplayPolicy()) {
- case WebsiteAutoplayPolicy::Default:
- documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Default);
- break;
- case WebsiteAutoplayPolicy::Allow:
- documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Allow);
- break;
- case WebsiteAutoplayPolicy::AllowWithoutSound:
- documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::AllowWithoutSound);
- break;
- case WebsiteAutoplayPolicy::Deny:
- documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Deny);
- break;
- }
-}
-
-}
-
Deleted: trunk/Source/WebKit/Shared/WebsitePolicies.h (225953 => 225954)
--- trunk/Source/WebKit/Shared/WebsitePolicies.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/Shared/WebsitePolicies.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <WebCore/HTTPHeaderField.h>
-#include <wtf/EnumTraits.h>
-#include <wtf/OptionSet.h>
-#include <wtf/Optional.h>
-#include <wtf/Vector.h>
-
-namespace IPC {
-class Decoder;
-class Encoder;
-}
-
-namespace WebCore {
-class DocumentLoader;
-}
-
-namespace WebKit {
-
-enum class WebsiteAutoplayPolicy {
- Default,
- Allow,
- AllowWithoutSound,
- Deny
-};
-
-enum class WebsiteAutoplayQuirk {
- SynthesizedPauseEvents = 1 << 0,
- InheritedUserGestures = 1 << 1,
- ArbitraryUserGestures = 1 << 2,
-};
-
-class WebsitePolicies {
-public:
- WebsitePolicies() = default;
-
- bool contentBlockersEnabled() const { return m_contentBlockersEnabled; }
- void setContentBlockersEnabled(bool enabled) { m_contentBlockersEnabled = enabled; }
-
- OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks() const { return m_allowedAutoplayQuirks; }
- void setAllowedAutoplayQuirks(OptionSet<WebsiteAutoplayQuirk> quirks) { m_allowedAutoplayQuirks = quirks; }
-
- WebsiteAutoplayPolicy autoplayPolicy() const { return m_autoplayPolicy; }
- void setAutoplayPolicy(WebsiteAutoplayPolicy policy) { m_autoplayPolicy = policy; }
-
- const Vector<WebCore::HTTPHeaderField>& customHeaderFields() { return m_customHeaderFields; }
- Vector<WebCore::HTTPHeaderField>&& takeCustomHeaderFields() { return WTFMove(m_customHeaderFields); }
- void setCustomHeaderFields(Vector<WebCore::HTTPHeaderField>&& fields) { m_customHeaderFields = WTFMove(fields); }
-
- static void applyToDocumentLoader(WebsitePolicies&&, WebCore::DocumentLoader&);
-
- void encode(IPC::Encoder&) const;
- static std::optional<WebsitePolicies> decode(IPC::Decoder&);
-
-private:
- WebsitePolicies(bool, OptionSet<WebsiteAutoplayQuirk>, WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&);
-
- bool m_contentBlockersEnabled { true };
- OptionSet<WebsiteAutoplayQuirk> m_allowedAutoplayQuirks;
- WebsiteAutoplayPolicy m_autoplayPolicy { WebsiteAutoplayPolicy::Default };
- Vector<WebCore::HTTPHeaderField> m_customHeaderFields;
-};
-
-} // namespace WebKit
-
-namespace WTF {
-
-template<> struct EnumTraits<WebKit::WebsiteAutoplayPolicy> {
- using values = EnumValues<
- WebKit::WebsiteAutoplayPolicy,
- WebKit::WebsiteAutoplayPolicy::Default,
- WebKit::WebsiteAutoplayPolicy::Allow,
- WebKit::WebsiteAutoplayPolicy::AllowWithoutSound,
- WebKit::WebsiteAutoplayPolicy::Deny
- >;
-};
-
-} // namespace WTF
Copied: trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp (from rev 225953, trunk/Source/WebKit/Shared/WebsitePolicies.cpp) (0 => 225954)
--- trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp (rev 0)
+++ trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebsitePoliciesData.h"
+
+#include "ArgumentCoders.h"
+#include <WebCore/DocumentLoader.h>
+
+namespace WebKit {
+
+WebsitePoliciesData WebsitePoliciesData::fromWebsitePolicies(const WebsitePolicies& policies)
+{
+ return { policies.contentBlockersEnabled(), policies.allowedAutoplayQuirks(), policies.autoplayPolicy(), policies.customHeaderFields() };
+}
+
+void WebsitePoliciesData::encode(IPC::Encoder& encoder) const
+{
+ encoder << contentBlockersEnabled;
+ encoder << autoplayPolicy;
+ encoder << allowedAutoplayQuirks;
+ encoder << customHeaderFields;
+}
+
+std::optional<WebsitePoliciesData> WebsitePoliciesData::decode(IPC::Decoder& decoder)
+{
+ std::optional<bool> contentBlockersEnabled;
+ decoder >> contentBlockersEnabled;
+ if (!contentBlockersEnabled)
+ return std::nullopt;
+
+ std::optional<WebsiteAutoplayPolicy> autoplayPolicy;
+ decoder >> autoplayPolicy;
+ if (!autoplayPolicy)
+ return std::nullopt;
+
+ std::optional<OptionSet<WebsiteAutoplayQuirk>> allowedAutoplayQuirks;
+ decoder >> allowedAutoplayQuirks;
+ if (!allowedAutoplayQuirks)
+ return std::nullopt;
+
+ std::optional<Vector<WebCore::HTTPHeaderField>> customHeaderFields;
+ decoder >> customHeaderFields;
+ if (!customHeaderFields)
+ return std::nullopt;
+
+ return { {
+ WTFMove(*contentBlockersEnabled),
+ WTFMove(*allowedAutoplayQuirks),
+ WTFMove(*autoplayPolicy),
+ WTFMove(*customHeaderFields),
+ } };
+}
+
+void WebsitePoliciesData::applyToDocumentLoader(WebsitePoliciesData&& websitePolicies, WebCore::DocumentLoader& documentLoader)
+{
+ documentLoader.setCustomHeaderFields(WTFMove(websitePolicies.customHeaderFields));
+
+ // Only setUserContentExtensionsEnabled if it hasn't already been disabled by reloading without content blockers.
+ if (documentLoader.userContentExtensionsEnabled())
+ documentLoader.setUserContentExtensionsEnabled(websitePolicies.contentBlockersEnabled);
+
+ OptionSet<WebCore::AutoplayQuirk> quirks;
+ const auto& allowedQuirks = websitePolicies.allowedAutoplayQuirks;
+
+ if (allowedQuirks.contains(WebsiteAutoplayQuirk::InheritedUserGestures))
+ quirks |= WebCore::AutoplayQuirk::InheritedUserGestures;
+
+ if (allowedQuirks.contains(WebsiteAutoplayQuirk::SynthesizedPauseEvents))
+ quirks |= WebCore::AutoplayQuirk::SynthesizedPauseEvents;
+
+ if (allowedQuirks.contains(WebsiteAutoplayQuirk::ArbitraryUserGestures))
+ quirks |= WebCore::AutoplayQuirk::ArbitraryUserGestures;
+
+ documentLoader.setAllowedAutoplayQuirks(quirks);
+
+ switch (websitePolicies.autoplayPolicy) {
+ case WebsiteAutoplayPolicy::Default:
+ documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Default);
+ break;
+ case WebsiteAutoplayPolicy::Allow:
+ documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Allow);
+ break;
+ case WebsiteAutoplayPolicy::AllowWithoutSound:
+ documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::AllowWithoutSound);
+ break;
+ case WebsiteAutoplayPolicy::Deny:
+ documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Deny);
+ break;
+ }
+}
+
+}
+
Added: trunk/Source/WebKit/Shared/WebsitePoliciesData.h (0 => 225954)
--- trunk/Source/WebKit/Shared/WebsitePoliciesData.h (rev 0)
+++ trunk/Source/WebKit/Shared/WebsitePoliciesData.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "WebsitePolicies.h"
+
+namespace WebKit {
+
+struct WebsitePoliciesData {
+ static WebsitePoliciesData fromWebsitePolicies(const WebsitePolicies&);
+ static void applyToDocumentLoader(WebsitePoliciesData&&, WebCore::DocumentLoader&);
+
+ bool contentBlockersEnabled { true };
+ OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks;
+ WebsiteAutoplayPolicy autoplayPolicy { WebsiteAutoplayPolicy::Default };
+ Vector<WebCore::HTTPHeaderField> customHeaderFields;
+
+ void encode(IPC::Encoder&) const;
+ static std::optional<WebsitePoliciesData> decode(IPC::Decoder&);
+};
+
+} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/API/APINavigationClient.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/APINavigationClient.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/APINavigationClient.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -31,7 +31,7 @@
#include "SameDocumentNavigationType.h"
#include "WebEvent.h"
#include "WebFramePolicyListenerProxy.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
#include <WebCore/FrameLoaderTypes.h>
#include <WebCore/LayoutMilestones.h>
#include <wtf/Forward.h>
@@ -101,12 +101,12 @@
virtual void decidePolicyForNavigationAction(WebKit::WebPageProxy&, Ref<NavigationAction>&&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, Object*)
{
- listener->use({ });
+ listener->use(std::nullopt);
}
virtual void decidePolicyForNavigationResponse(WebKit::WebPageProxy&, Ref<NavigationResponse>&&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, Object*)
{
- listener->use({ });
+ listener->use(std::nullopt);
}
virtual void contentRuleListNotification(WebKit::WebPageProxy&, WebCore::URL&&, Vector<WTF::String>&&, Vector<WTF::String>&&) { };
Modified: trunk/Source/WebKit/UIProcess/API/APIPolicyClient.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/APIPolicyClient.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/APIPolicyClient.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -27,7 +27,6 @@
#include "WebEvent.h"
#include "WebFramePolicyListenerProxy.h"
-#include "WebsitePolicies.h"
#include <WebCore/FrameLoaderTypes.h>
#include <wtf/Forward.h>
@@ -53,15 +52,15 @@
virtual void decidePolicyForNavigationAction(WebKit::WebPageProxy&, WebKit::WebFrameProxy*, const WebKit::NavigationActionData&, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
{
- listener->use({ });
+ listener->use(std::nullopt);
}
virtual void decidePolicyForNewWindowAction(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebKit::NavigationActionData&, const WebCore::ResourceRequest&, const WTF::String&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
{
- listener->use({ });
+ listener->use(std::nullopt);
}
virtual void decidePolicyForResponse(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
{
- listener->use({ });
+ listener->use(std::nullopt);
}
virtual void unableToImplementPolicy(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebCore::ResourceError&, API::Object*) { }
};
Deleted: trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "APIWebsitePolicies.h"
-
-namespace API {
-
-Ref<WebsitePolicies> WebsitePolicies::create()
-{
- return adoptRef(*new WebsitePolicies());
-}
-
-WebsitePolicies::WebsitePolicies()
-{
-}
-
-WebsitePolicies::~WebsitePolicies()
-{
-}
-
-}
Deleted: trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "APIObject.h"
-#include "WebsitePolicies.h"
-#include <wtf/OptionSet.h>
-
-namespace API {
-
-class WebsitePolicies final : public ObjectImpl<Object::Type::WebsitePolicies> {
-public:
- static Ref<WebsitePolicies> create();
- explicit WebsitePolicies();
- virtual ~WebsitePolicies();
-
- bool contentBlockersEnabled() const { return m_websitePolicies.contentBlockersEnabled(); }
- void setContentBlockersEnabled(bool enabled) { m_websitePolicies.setContentBlockersEnabled(enabled); }
-
- OptionSet<WebKit::WebsiteAutoplayQuirk> allowedAutoplayQuirks() const { return m_websitePolicies.allowedAutoplayQuirks(); }
- void setAllowedAutoplayQuirks(OptionSet<WebKit::WebsiteAutoplayQuirk> allowedQuirks) { m_websitePolicies.setAllowedAutoplayQuirks(allowedQuirks); }
-
- WebKit::WebsiteAutoplayPolicy autoplayPolicy() const { return m_websitePolicies.autoplayPolicy(); }
- void setAutoplayPolicy(WebKit::WebsiteAutoplayPolicy policy) { m_websitePolicies.setAutoplayPolicy(policy); }
-
- void setCustomHeaderFields(Vector<WebCore::HTTPHeaderField>&& customHeaderFields) { m_websitePolicies.setCustomHeaderFields(WTFMove(customHeaderFields)); };
- const Vector<WebCore::HTTPHeaderField> customHeaderFields() { return m_websitePolicies.customHeaderFields(); }
-
- const WebKit::WebsitePolicies& websitePolicies() { return m_websitePolicies; }
-
-private:
- WebKit::WebsitePolicies m_websitePolicies;
-};
-
-}
Modified: trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -68,7 +68,6 @@
class SessionState;
class UserScript;
class WebsiteDataStore;
-class WebsitePolicies;
class WindowFeatures;
}
@@ -166,7 +165,7 @@
WK_ADD_API_MAPPING(WKUserScriptRef, API::UserScript)
WK_ADD_API_MAPPING(WKViewportAttributesRef, WebViewportAttributes)
WK_ADD_API_MAPPING(WKWebsiteDataStoreRef, API::WebsiteDataStore)
-WK_ADD_API_MAPPING(WKWebsitePoliciesRef, API::WebsitePolicies)
+WK_ADD_API_MAPPING(WKWebsitePoliciesRef, WebsitePolicies)
WK_ADD_API_MAPPING(WKWindowFeaturesRef, API::WindowFeatures)
/* Enum conversions */
Modified: trunk/Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -26,11 +26,10 @@
#include "config.h"
#include "WKFramePolicyListener.h"
-#include "APIWebsitePolicies.h"
#include "WKAPICast.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebFrameProxy.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
using namespace WebKit;
@@ -41,12 +40,12 @@
void WKFramePolicyListenerUse(WKFramePolicyListenerRef policyListenerRef)
{
- toImpl(policyListenerRef)->use({ });
+ toImpl(policyListenerRef)->use(std::nullopt);
}
void WKFramePolicyListenerUseWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies)
{
- toImpl(policyListenerRef)->use(toImpl(websitePolicies)->websitePolicies());
+ toImpl(policyListenerRef)->use(WebsitePoliciesData::fromWebsitePolicies(*toImpl(websitePolicies)));
}
void WKFramePolicyListenerDownload(WKFramePolicyListenerRef policyListenerRef)
Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -46,7 +46,6 @@
#include "APIPolicyClient.h"
#include "APISessionState.h"
#include "APIUIClient.h"
-#include "APIWebsitePolicies.h"
#include "APIWindowFeatures.h"
#include "AuthenticationChallengeProxy.h"
#include "LegacySessionStateCoding.h"
@@ -71,6 +70,7 @@
#include "WebProcessPool.h"
#include "WebProcessProxy.h"
#include "WebProtectionSpace.h"
+#include "WebsitePolicies.h"
#include <WebCore/Page.h>
#include <WebCore/SecurityOriginData.h>
#include <WebCore/SerializedCryptoKeyWrap.h>
@@ -325,7 +325,7 @@
void WKPageUpdateWebsitePolicies(WKPageRef pageRef, WKWebsitePoliciesRef websitePoliciesRef)
{
- toImpl(pageRef)->updateWebsitePolicies(toImpl(websitePoliciesRef)->websitePolicies());
+ toImpl(pageRef)->updateWebsitePolicies(WebsitePoliciesData::fromWebsitePolicies(*toImpl(websitePoliciesRef)));
}
WKStringRef WKPageCopyTitle(WKPageRef pageRef)
@@ -1351,7 +1351,7 @@
void decidePolicyForNavigationAction(WebPageProxy& page, WebFrameProxy* frame, const NavigationActionData& navigationActionData, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalResourceRequest, const WebCore::ResourceRequest& resourceRequest, Ref<WebFramePolicyListenerProxy>&& listener, API::Object* userData) override
{
if (!m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0 && !m_client.decidePolicyForNavigationAction_deprecatedForUseWithV1 && !m_client.decidePolicyForNavigationAction) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
@@ -1369,7 +1369,7 @@
void decidePolicyForNewWindowAction(WebPageProxy& page, WebFrameProxy& frame, const NavigationActionData& navigationActionData, const ResourceRequest& resourceRequest, const String& frameName, Ref<WebFramePolicyListenerProxy>&& listener, API::Object* userData) override
{
if (!m_client.decidePolicyForNewWindowAction) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
@@ -1381,7 +1381,7 @@
void decidePolicyForResponse(WebPageProxy& page, WebFrameProxy& frame, const ResourceResponse& resourceResponse, const ResourceRequest& resourceRequest, bool canShowMIMEType, Ref<WebFramePolicyListenerProxy>&& listener, API::Object* userData) override
{
if (!m_client.decidePolicyForResponse_deprecatedForUseWithV0 && !m_client.decidePolicyForResponse) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
@@ -2143,7 +2143,7 @@
void decidePolicyForNavigationAction(WebPageProxy& page, Ref<API::NavigationAction>&& navigationAction, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object* userData) final
{
if (!m_client.decidePolicyForNavigationAction) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
m_client.decidePolicyForNavigationAction(toAPI(&page), toAPI(navigationAction.ptr()), toAPI(listener.ptr()), toAPI(userData), m_client.base.clientInfo);
@@ -2152,7 +2152,7 @@
void decidePolicyForNavigationResponse(WebPageProxy& page, Ref<API::NavigationResponse>&& navigationResponse, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object* userData) override
{
if (!m_client.decidePolicyForNavigationResponse) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
m_client.decidePolicyForNavigationResponse(toAPI(&page), toAPI(navigationResponse.ptr()), toAPI(listener.ptr()), toAPI(userData), m_client.base.clientInfo);
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsitePolicies.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsitePolicies.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsitePolicies.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -27,7 +27,6 @@
#include "WKWebsitePolicies.h"
#include "APIDictionary.h"
-#include "APIWebsitePolicies.h"
#include "WKAPICast.h"
#include "WKArray.h"
#include "WKDictionary.h"
@@ -38,12 +37,12 @@
WKTypeID WKWebsitePoliciesGetTypeID()
{
- return toAPI(API::WebsitePolicies::APIType);
+ return toAPI(WebsitePolicies::APIType);
}
WKWebsitePoliciesRef WKWebsitePoliciesCreate()
{
- return toAPI(&API::WebsitePolicies::create().leakRef());
+ return toAPI(&WebsitePolicies::create().leakRef());
}
void WKWebsitePoliciesSetContentBlockersEnabled(WKWebsitePoliciesRef websitePolicies, bool enabled)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2017-12-15 02:08:23 UTC (rev 225954)
@@ -4233,7 +4233,7 @@
- (void)_updateWebsitePolicies:(_WKWebsitePolicies *)websitePolicies
{
- _page->updateWebsitePolicies(websitePolicies->_websitePolicies->websitePolicies());
+ _page->updateWebsitePolicies(WebKit::WebsitePoliciesData::fromWebsitePolicies(*websitePolicies->_websitePolicies));
}
- (BOOL)_allowsRemoteInspection
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePolicies.mm (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePolicies.mm 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePolicies.mm 2017-12-15 02:08:23 UTC (rev 225954)
@@ -32,7 +32,7 @@
- (void)dealloc
{
- _websitePolicies->API::WebsitePolicies::~WebsitePolicies();
+ _websitePolicies->WebKit::WebsitePolicies::~WebsitePolicies();
[super dealloc];
}
@@ -42,7 +42,7 @@
if (!(self = [super init]))
return nil;
- API::Object::constructInWrapper<API::WebsitePolicies>(self);
+ API::Object::constructInWrapper<WebKit::WebsitePolicies>(self);
return self;
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -27,12 +27,12 @@
#if WK_API_ENABLED
-#import "APIWebsitePolicies.h"
#import "WKObject.h"
+#import "WebsitePolicies.h"
namespace WebKit {
-inline _WKWebsitePolicies *wrapper(API::WebsitePolicies& websitePolicies)
+inline _WKWebsitePolicies *wrapper(WebsitePolicies& websitePolicies)
{
ASSERT([websitePolicies.wrapper() isKindOfClass:[_WKWebsitePolicies class]]);
return (_WKWebsitePolicies *)websitePolicies.wrapper();
@@ -42,7 +42,7 @@
@interface _WKWebsitePolicies () <WKObject> {
@package
- API::ObjectStorage<API::WebsitePolicies> _websitePolicies;
+ API::ObjectStorage<WebKit::WebsitePolicies> _websitePolicies;
}
@end
Modified: trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm 2017-12-15 02:08:23 UTC (rev 225954)
@@ -427,7 +427,7 @@
}
if (!navigationAction->targetFrame()) {
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
@@ -436,7 +436,7 @@
if (navigationAction->shouldPerformDownload())
listener->download();
else
- listener->use({ });
+ listener->use(std::nullopt);
return;
}
@@ -465,19 +465,19 @@
return;
checker->didCallCompletionHandler();
- std::optional<WebsitePolicies> policies;
+ std::optional<WebsitePoliciesData> data;
if (websitePolicies)
- policies = websitePolicies->_websitePolicies->websitePolicies();
+ data = ""
switch (actionPolicy) {
case WKNavigationActionPolicyAllow:
- tryAppLink(WTFMove(navigationAction), mainFrameURLString, [localListener = WTFMove(localListener), policies = WTFMove(policies)](bool followedLinkToApp) mutable {
+ tryAppLink(WTFMove(navigationAction), mainFrameURLString, [localListener = WTFMove(localListener), data = "" followedLinkToApp) mutable {
if (followedLinkToApp) {
localListener->ignore();
return;
}
- localListener->use(WTFMove(policies));
+ localListener->use(WTFMove(data));
});
break;
@@ -494,7 +494,7 @@
break;
case _WKNavigationActionPolicyAllowWithoutTryingAppLink:
#pragma clang diagnostic pop
- localListener->use(WTFMove(policies));
+ localListener->use(WTFMove(data));
break;
}
};
@@ -544,7 +544,7 @@
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:url.path isDirectory:&isDirectory];
if (exists && !isDirectory && navigationResponse->canShowMIMEType())
- listener->use({ });
+ listener->use(std::nullopt);
else
listener->ignore();
return;
@@ -551,7 +551,7 @@
}
if (navigationResponse->canShowMIMEType())
- listener->use({ });
+ listener->use(std::nullopt);
else
listener->ignore();
return;
@@ -570,7 +570,7 @@
switch (responsePolicy) {
case WKNavigationResponsePolicyAllow:
- localListener->use({ });
+ localListener->use(std::nullopt);
break;
case WKNavigationResponsePolicyCancel:
Modified: trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -27,7 +27,7 @@
#include "WebFrameListenerProxy.h"
#include "WebFrameProxy.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
namespace WebKit {
@@ -46,12 +46,12 @@
m_frame = nullptr;
}
-void WebFrameListenerProxy::receivedPolicyDecision(WebCore::PolicyAction action, std::optional<WebsitePolicies>&& websitePolicies)
+void WebFrameListenerProxy::receivedPolicyDecision(WebCore::PolicyAction action, std::optional<WebsitePoliciesData>&& data)
{
if (!m_frame)
return;
- m_frame->receivedPolicyDecision(action, m_listenerID, m_navigation.get(), WTFMove(websitePolicies));
+ m_frame->receivedPolicyDecision(action, m_listenerID, m_navigation.get(), WTFMove(data));
m_frame = nullptr;
}
Modified: trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -34,7 +34,7 @@
namespace WebKit {
class WebFrameProxy;
-class WebsitePolicies;
+struct WebsitePoliciesData;
class WebFrameListenerProxy : public API::Object {
public:
@@ -48,7 +48,7 @@
protected:
WebFrameListenerProxy(WebFrameProxy*, uint64_t listenerID);
- void receivedPolicyDecision(WebCore::PolicyAction, std::optional<WebsitePolicies>&&);
+ void receivedPolicyDecision(WebCore::PolicyAction, std::optional<WebsitePoliciesData>&&);
private:
RefPtr<WebFrameProxy> m_frame;
Modified: trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -27,7 +27,7 @@
#include "WebFramePolicyListenerProxy.h"
#include "WebFrameProxy.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
namespace WebKit {
@@ -36,19 +36,19 @@
{
}
-void WebFramePolicyListenerProxy::use(std::optional<WebsitePolicies>&& websitePolicies)
+void WebFramePolicyListenerProxy::use(std::optional<WebsitePoliciesData>&& data)
{
- receivedPolicyDecision(WebCore::PolicyAction::Use, WTFMove(websitePolicies));
+ receivedPolicyDecision(WebCore::PolicyAction::Use, WTFMove(data));
}
void WebFramePolicyListenerProxy::download()
{
- receivedPolicyDecision(WebCore::PolicyAction::Download, { });
+ receivedPolicyDecision(WebCore::PolicyAction::Download, std::nullopt);
}
void WebFramePolicyListenerProxy::ignore()
{
- receivedPolicyDecision(WebCore::PolicyAction::Ignore, { });
+ receivedPolicyDecision(WebCore::PolicyAction::Ignore, std::nullopt);
}
} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -44,7 +44,7 @@
return adoptRef(*new WebFramePolicyListenerProxy(frame, listenerID));
}
- void use(std::optional<WebsitePolicies>&&);
+ void use(std::optional<WebsitePoliciesData>&&);
void download();
void ignore();
Modified: trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -32,6 +32,7 @@
#include "WebPageProxy.h"
#include "WebPasteboardProxy.h"
#include "WebProcessPool.h"
+#include "WebsitePoliciesData.h"
#include <WebCore/Image.h>
#include <WebCore/MIMETypeRegistry.h>
#include <stdio.h>
@@ -175,7 +176,7 @@
m_title = title;
}
-void WebFrameProxy::receivedPolicyDecision(PolicyAction action, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePolicies>&& websitePolicies)
+void WebFrameProxy::receivedPolicyDecision(PolicyAction action, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePoliciesData>&& data)
{
if (!m_page)
return;
@@ -182,7 +183,7 @@
ASSERT(m_activeListener);
ASSERT(m_activeListener->listenerID() == listenerID);
- m_page->receivedPolicyDecision(action, *this, listenerID, navigation, WTFMove(websitePolicies));
+ m_page->receivedPolicyDecision(action, *this, listenerID, navigation, WTFMove(data));
}
WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(uint64_t listenerID)
Modified: trunk/Source/WebKit/UIProcess/WebFrameProxy.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebFrameProxy.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebFrameProxy.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -51,7 +51,7 @@
class WebCertificateInfo;
class WebFramePolicyListenerProxy;
class WebPageProxy;
-class WebsitePolicies;
+struct WebsitePoliciesData;
typedef GenericCallback<API::Data*> DataCallback;
@@ -114,7 +114,7 @@
void didChangeTitle(const String&);
// Policy operations.
- void receivedPolicyDecision(WebCore::PolicyAction, uint64_t listenerID, API::Navigation*, std::optional<WebsitePolicies>&&);
+ void receivedPolicyDecision(WebCore::PolicyAction, uint64_t listenerID, API::Navigation*, std::optional<WebsitePoliciesData>&&);
WebFramePolicyListenerProxy& setUpPolicyListenerProxy(uint64_t listenerID);
#if ENABLE(CONTENT_FILTERING)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -2275,7 +2275,7 @@
m_process->send(Messages::WebPage::CenterSelectionInVisibleArea(), m_pageID);
}
-void WebPageProxy::receivedPolicyDecision(PolicyAction action, WebFrameProxy& frame, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePolicies>&& websitePolicies)
+void WebPageProxy::receivedPolicyDecision(PolicyAction action, WebFrameProxy& frame, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePoliciesData>&& websitePolicies)
{
if (!isValid())
return;
@@ -2317,7 +2317,7 @@
m_syncNavigationActionPolicyActionIsValid = true;
m_syncNavigationActionPolicyAction = action;
m_syncNavigationActionPolicyDownloadID = downloadID;
- m_syncNavigationActionPolicyWebsitePolicies = websitePolicies;
+ m_syncNavigationActionPolicyWebsitePolicies = WTFMove(websitePolicies);
return;
}
@@ -3685,7 +3685,7 @@
m_frameSetLargestFrame = value ? m_mainFrame : 0;
}
-void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, ResourceRequest&& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction& policyAction, DownloadID& downloadID, std::optional<WebsitePolicies>& websitePolicies)
+void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, ResourceRequest&& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction& policyAction, DownloadID& downloadID, std::optional<WebsitePoliciesData>& websitePolicies)
{
PageClientProtector protector(m_pageClient);
@@ -3754,7 +3754,7 @@
if (m_syncNavigationActionPolicyActionIsValid) {
policyAction = m_syncNavigationActionPolicyAction;
downloadID = m_syncNavigationActionPolicyDownloadID;
- websitePolicies = m_syncNavigationActionPolicyWebsitePolicies;
+ websitePolicies = WTFMove(m_syncNavigationActionPolicyWebsitePolicies);
}
}
@@ -6151,7 +6151,7 @@
return !m_canShortCircuitHorizontalWheelEvents;
}
-void WebPageProxy::updateWebsitePolicies(const WebsitePolicies& websitePolicies)
+void WebPageProxy::updateWebsitePolicies(WebsitePoliciesData&& websitePolicies)
{
m_process->send(Messages::WebPage::UpdateWebsitePolicies(websitePolicies), m_pageID);
}
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -62,7 +62,7 @@
#include "WebPageProxyMessages.h"
#include "WebPopupMenuProxy.h"
#include "WebProcessLifetimeTracker.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
#include <WebCore/ActivityState.h>
#include <WebCore/AutoplayEvent.h>
#include <WebCore/Color.h>
@@ -433,7 +433,7 @@
bool willHandleHorizontalScrollEvents() const;
- void updateWebsitePolicies(const WebsitePolicies&);
+ void updateWebsitePolicies(WebsitePoliciesData&&);
bool canShowMIMEType(const String& mimeType);
@@ -843,7 +843,7 @@
void performDictionaryLookupOfCurrentSelection();
#endif
- void receivedPolicyDecision(WebCore::PolicyAction, WebFrameProxy&, uint64_t listenerID, API::Navigation* navigationID, std::optional<WebsitePolicies>&&);
+ void receivedPolicyDecision(WebCore::PolicyAction, WebFrameProxy&, uint64_t listenerID, API::Navigation* navigationID, std::optional<WebsitePoliciesData>&&);
void backForwardRemovedItem(uint64_t itemID);
@@ -1326,7 +1326,7 @@
void didDestroyNavigation(uint64_t navigationID);
- void decidePolicyForNavigationAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, const FrameInfoData&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction&, DownloadID&, std::optional<WebsitePolicies>&);
+ void decidePolicyForNavigationAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, const FrameInfoData&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction&, DownloadID&, std::optional<WebsitePoliciesData>&);
void decidePolicyForNewWindowAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, NavigationActionData&&, WebCore::ResourceRequest&&, const String& frameName, uint64_t listenerID, const UserData&);
void decidePolicyForResponse(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
void decidePolicyForResponseSync(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, WebCore::PolicyAction&, DownloadID&);
@@ -1867,7 +1867,7 @@
bool m_syncNavigationActionPolicyActionIsValid { false };
WebCore::PolicyAction m_syncNavigationActionPolicyAction { WebCore::PolicyAction::Use };
DownloadID m_syncNavigationActionPolicyDownloadID { 0 };
- std::optional<WebsitePolicies> m_syncNavigationActionPolicyWebsitePolicies;
+ std::optional<WebsitePoliciesData> m_syncNavigationActionPolicyWebsitePolicies;
bool m_shouldSuppressAppLinksInNextNavigationPolicyDecision { false };
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (225953 => 225954)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2017-12-15 02:08:23 UTC (rev 225954)
@@ -99,7 +99,7 @@
# Policy messages
DecidePolicyForResponseSync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID)
- DecidePolicyForNavigationAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePolicies> websitePolicies)
+ DecidePolicyForNavigationAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePoliciesData> websitePolicies)
DecidePolicyForNewWindowAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData)
Copied: trunk/Source/WebKit/UIProcess/WebsitePolicies.h (from rev 225953, trunk/Source/WebKit/Shared/WebsitePolicies.h) (0 => 225954)
--- trunk/Source/WebKit/UIProcess/WebsitePolicies.h (rev 0)
+++ trunk/Source/WebKit/UIProcess/WebsitePolicies.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "APIObject.h"
+#include <WebCore/HTTPHeaderField.h>
+#include <wtf/EnumTraits.h>
+#include <wtf/OptionSet.h>
+#include <wtf/Optional.h>
+#include <wtf/Vector.h>
+
+namespace IPC {
+class Decoder;
+class Encoder;
+}
+
+namespace WebCore {
+class DocumentLoader;
+}
+
+namespace WebKit {
+
+enum class WebsiteAutoplayPolicy {
+ Default,
+ Allow,
+ AllowWithoutSound,
+ Deny
+};
+
+enum class WebsiteAutoplayQuirk {
+ SynthesizedPauseEvents = 1 << 0,
+ InheritedUserGestures = 1 << 1,
+ ArbitraryUserGestures = 1 << 2,
+};
+
+class WebsitePolicies final : public API::ObjectImpl<API::Object::Type::WebsitePolicies> {
+public:
+ static Ref<WebsitePolicies> create() { return adoptRef(*new WebsitePolicies); }
+ WebsitePolicies() = default;
+
+ bool contentBlockersEnabled() const { return m_contentBlockersEnabled; }
+ void setContentBlockersEnabled(bool enabled) { m_contentBlockersEnabled = enabled; }
+
+ OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks() const { return m_allowedAutoplayQuirks; }
+ void setAllowedAutoplayQuirks(OptionSet<WebsiteAutoplayQuirk> quirks) { m_allowedAutoplayQuirks = quirks; }
+
+ WebsiteAutoplayPolicy autoplayPolicy() const { return m_autoplayPolicy; }
+ void setAutoplayPolicy(WebsiteAutoplayPolicy policy) { m_autoplayPolicy = policy; }
+
+ const Vector<WebCore::HTTPHeaderField>& customHeaderFields() const { return m_customHeaderFields; }
+ Vector<WebCore::HTTPHeaderField>&& takeCustomHeaderFields() { return WTFMove(m_customHeaderFields); }
+ void setCustomHeaderFields(Vector<WebCore::HTTPHeaderField>&& fields) { m_customHeaderFields = WTFMove(fields); }
+
+private:
+ WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks, WebsiteAutoplayPolicy autoplayPolicy, Vector<WebCore::HTTPHeaderField>&& customHeaderFields)
+ : m_contentBlockersEnabled(contentBlockersEnabled)
+ , m_allowedAutoplayQuirks(allowedAutoplayQuirks)
+ , m_autoplayPolicy(autoplayPolicy)
+ , m_customHeaderFields(WTFMove(customHeaderFields))
+ { }
+
+ bool m_contentBlockersEnabled { true };
+ OptionSet<WebsiteAutoplayQuirk> m_allowedAutoplayQuirks;
+ WebsiteAutoplayPolicy m_autoplayPolicy { WebsiteAutoplayPolicy::Default };
+ Vector<WebCore::HTTPHeaderField> m_customHeaderFields;
+};
+
+} // namespace WebKit
+
+namespace WTF {
+
+template<> struct EnumTraits<WebKit::WebsiteAutoplayPolicy> {
+ using values = EnumValues<
+ WebKit::WebsiteAutoplayPolicy,
+ WebKit::WebsiteAutoplayPolicy::Default,
+ WebKit::WebsiteAutoplayPolicy::Allow,
+ WebKit::WebsiteAutoplayPolicy::AllowWithoutSound,
+ WebKit::WebsiteAutoplayPolicy::Deny
+ >;
+};
+
+} // namespace WTF
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (225953 => 225954)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-12-15 02:08:23 UTC (rev 225954)
@@ -1184,6 +1184,7 @@
5C0B17791E7C882100E9123C /* WebSocketStreamMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B17761E7C879C00E9123C /* WebSocketStreamMessageReceiver.cpp */; };
5C0B177C1E7C885400E9123C /* WebSocketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B177A1E7C884F00E9123C /* WebSocketStream.cpp */; };
5C0B17811E7C8C2600E9123C /* NetworkSocketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B177D1E7C886700E9123C /* NetworkSocketStream.cpp */; };
+ 5C13024C1FE35154000D9B31 /* WebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C13024B1FE35142000D9B31 /* WebsitePolicies.h */; };
5C1426EC1C23F80900D41183 /* NetworkProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C1426E21C23F80500D41183 /* NetworkProcessCreationParameters.cpp */; };
5C1426ED1C23F80900D41183 /* NetworkProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1426E31C23F80500D41183 /* NetworkProcessCreationParameters.h */; };
5C1426EE1C23F80900D41183 /* NetworkProcessSupplement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1426E41C23F80500D41183 /* NetworkProcessSupplement.h */; };
@@ -1204,7 +1205,7 @@
5C20CB9D1BB0DCFA00895BB1 /* NetworkSessionCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */; };
5C20CBA01BB1ECD800895BB1 /* NetworkSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */; };
5C298DA01C3DF02100470AFE /* PendingDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C298D9E1C3DEF2900470AFE /* PendingDownload.h */; };
- 5C3AEA8F1FE1F21F002318D3 /* WebsitePolicies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */; };
+ 5C3AEA8F1FE1F21F002318D3 /* WebsitePoliciesData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */; };
5C62FDF91EFC271C00CE072E /* WKURLSchemeTaskPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C62FDF81EFC263C00CE072E /* WKURLSchemeTaskPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
5C6CE6D11F59BC7A0007C6CB /* PageClientImplCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C6CE6D01F59BC460007C6CB /* PageClientImplCocoa.mm */; };
5C7706741D1138380012700F /* WebSocketProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C7706731D111D8B0012700F /* WebSocketProvider.cpp */; };
@@ -1214,8 +1215,6 @@
5CB2378B1DF0DE5300117AA3 /* _WKWebsitePolicies.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CB2378A1DF0DD4300117AA3 /* _WKWebsitePolicies.mm */; };
5CB2378C1DF0DE6E00117AA3 /* _WKWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB237891DF0DD4300117AA3 /* _WKWebsitePolicies.h */; settings = {ATTRIBUTES = (Private, ); }; };
5CB2378E1DF0E0D300117AA3 /* _WKWebsitePoliciesInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2378D1DF0E0C200117AA3 /* _WKWebsitePoliciesInternal.h */; };
- 5CB237911DF0E2E600117AA3 /* APIWebsitePolicies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */; };
- 5CB237921DF0E2EE00117AA3 /* APIWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */; };
5CBC9B8D1C65279C00A8FDCF /* NetworkDataTaskCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */; };
5CBC9B8E1C652CA000A8FDCF /* NetworkDataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */; };
5CD286511E7235990094FDC8 /* WKContentRuleListStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD2864D1E722F440094FDC8 /* WKContentRuleListStore.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -3573,6 +3572,8 @@
5C0B177E1E7C886700E9123C /* NetworkSocketStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSocketStream.h; path = NetworkProcess/NetworkSocketStream.h; sourceTree = "<group>"; };
5C0B177F1E7C886700E9123C /* NetworkSocketStream.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = NetworkSocketStream.messages.in; path = NetworkProcess/NetworkSocketStream.messages.in; sourceTree = "<group>"; };
5C0B17801E7C888000E9123C /* WebSocketStream.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebSocketStream.messages.in; path = Network/WebSocketStream.messages.in; sourceTree = "<group>"; };
+ 5C13024A1FE341A7000D9B31 /* WebsitePoliciesData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePoliciesData.h; sourceTree = "<group>"; };
+ 5C13024B1FE35142000D9B31 /* WebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePolicies.h; sourceTree = "<group>"; };
5C1426E21C23F80500D41183 /* NetworkProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessCreationParameters.cpp; path = NetworkProcess/NetworkProcessCreationParameters.cpp; sourceTree = "<group>"; };
5C1426E31C23F80500D41183 /* NetworkProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessCreationParameters.h; path = NetworkProcess/NetworkProcessCreationParameters.h; sourceTree = "<group>"; };
5C1426E41C23F80500D41183 /* NetworkProcessSupplement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessSupplement.h; path = NetworkProcess/NetworkProcessSupplement.h; sourceTree = "<group>"; };
@@ -3594,7 +3595,7 @@
5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkSessionCocoa.mm; path = NetworkProcess/cocoa/NetworkSessionCocoa.mm; sourceTree = "<group>"; };
5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSession.h; path = NetworkProcess/NetworkSession.h; sourceTree = "<group>"; };
5C298D9E1C3DEF2900470AFE /* PendingDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PendingDownload.h; path = NetworkProcess/Downloads/PendingDownload.h; sourceTree = "<group>"; };
- 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsitePolicies.cpp; sourceTree = "<group>"; };
+ 5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsitePoliciesData.cpp; sourceTree = "<group>"; };
5C62FDF81EFC263C00CE072E /* WKURLSchemeTaskPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKURLSchemeTaskPrivate.h; sourceTree = "<group>"; };
5C6CE6D01F59BC460007C6CB /* PageClientImplCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PageClientImplCocoa.mm; sourceTree = "<group>"; };
5C6CE6D31F59EA350007C6CB /* PageClientImplCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageClientImplCocoa.h; sourceTree = "<group>"; };
@@ -3602,14 +3603,11 @@
5C7C88DC1D0F41A0009D2F6D /* WebSocketProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebSocketProvider.h; path = Network/WebSocketProvider.h; sourceTree = "<group>"; };
5C84CF901F96AC4E00B6705A /* NetworkSessionCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSessionCreationParameters.h; path = NetworkProcess/NetworkSessionCreationParameters.h; sourceTree = "<group>"; };
5C85C7861C3F23C50061A4FA /* PendingDownload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PendingDownload.cpp; path = NetworkProcess/Downloads/PendingDownload.cpp; sourceTree = "<group>"; };
- 5C9E567F1DF7930900C9EE33 /* WebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePolicies.h; sourceTree = "<group>"; };
5C9E56801DF7F05500C9EE33 /* WKWebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKWebsitePolicies.cpp; sourceTree = "<group>"; };
5C9E56811DF7F05500C9EE33 /* WKWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebsitePolicies.h; sourceTree = "<group>"; };
5CB237891DF0DD4300117AA3 /* _WKWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKWebsitePolicies.h; sourceTree = "<group>"; };
5CB2378A1DF0DD4300117AA3 /* _WKWebsitePolicies.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebsitePolicies.mm; sourceTree = "<group>"; };
5CB2378D1DF0E0C200117AA3 /* _WKWebsitePoliciesInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKWebsitePoliciesInternal.h; sourceTree = "<group>"; };
- 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIWebsitePolicies.h; sourceTree = "<group>"; };
- 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebsitePolicies.cpp; sourceTree = "<group>"; };
5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTask.h; path = NetworkProcess/NetworkDataTask.h; sourceTree = "<group>"; };
5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkDataTaskCocoa.mm; path = NetworkProcess/cocoa/NetworkDataTaskCocoa.mm; sourceTree = "<group>"; };
5CD286491E722F440094FDC8 /* _WKUserContentFilterPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKUserContentFilterPrivate.h; sourceTree = "<group>"; };
@@ -5216,8 +5214,8 @@
3760881D150413E900FC82C7 /* WebRenderObject.h */,
511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */,
511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */,
- 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */,
- 5C9E567F1DF7930900C9EE33 /* WebsitePolicies.h */,
+ 5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */,
+ 5C13024A1FE341A7000D9B31 /* WebsitePoliciesData.h */,
8360349D1ACB34D600626549 /* WebSQLiteDatabaseTracker.cpp */,
8360349E1ACB34D600626549 /* WebSQLiteDatabaseTracker.h */,
C0337DD7127A51B6008FF4F4 /* WebTouchEvent.cpp */,
@@ -7195,6 +7193,7 @@
7A9CD8C21C779AD600D9F6C7 /* WebResourceLoadStatisticsStore.messages.in */,
6B821DDB1EEF05DD00D7AF4A /* WebResourceLoadStatisticsTelemetry.cpp */,
6B821DDA1EEF05DD00D7AF4A /* WebResourceLoadStatisticsTelemetry.h */,
+ 5C13024B1FE35142000D9B31 /* WebsitePolicies.h */,
51D124241E6D3CC3002B2820 /* WebURLSchemeHandler.cpp */,
51D124251E6D3CC3002B2820 /* WebURLSchemeHandler.h */,
51E8B68D1E712873001B7132 /* WebURLSchemeTask.cpp */,
@@ -7275,8 +7274,6 @@
1AE286821C7F93860069AC4F /* APIWebsiteDataRecord.h */,
1A3635A71A3144A300ED6197 /* APIWebsiteDataStore.cpp */,
1A3635A81A3144A300ED6197 /* APIWebsiteDataStore.h */,
- 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */,
- 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */,
1A6563E21B7A8C50009CF787 /* APIWindowFeatures.cpp */,
1A6563E31B7A8C50009CF787 /* APIWindowFeatures.h */,
);
@@ -8620,7 +8617,6 @@
C5E1AFEF16B21029006CC1F2 /* APIWebArchiveResource.h in Headers */,
1AE286841C7F93860069AC4F /* APIWebsiteDataRecord.h in Headers */,
1A3635AA1A3144A300ED6197 /* APIWebsiteDataStore.h in Headers */,
- 5CB237921DF0E2EE00117AA3 /* APIWebsitePolicies.h in Headers */,
1A6563E51B7A8C50009CF787 /* APIWindowFeatures.h in Headers */,
1AD4C1931B39F33200ABC28E /* ApplicationStateTracker.h in Headers */,
1AEFD27911D16C81008219D3 /* ArgumentCoder.h in Headers */,
@@ -9167,6 +9163,7 @@
1A4832D11A9BDC2F008B4DFE /* WebsiteDataRecord.h in Headers */,
1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */,
511F7D411EB1BCF500E47B83 /* WebsiteDataStoreParameters.h in Headers */,
+ 5C13024C1FE35154000D9B31 /* WebsitePolicies.h in Headers */,
836034A01ACB34D600626549 /* WebSQLiteDatabaseTracker.h in Headers */,
1A52C0F81A38CDC70016160A /* WebStorageNamespaceProvider.h in Headers */,
517A53051F4793C600DCDC0A /* WebSWClientConnection.h in Headers */,
@@ -10202,7 +10199,6 @@
1AE286831C7F93860069AC4F /* APIWebsiteDataRecord.cpp in Sources */,
1A3635A91A3144A300ED6197 /* APIWebsiteDataStore.cpp in Sources */,
1A3635AD1A3145E500ED6197 /* APIWebsiteDataStoreCocoa.mm in Sources */,
- 5CB237911DF0E2E600117AA3 /* APIWebsitePolicies.cpp in Sources */,
1A6563E41B7A8C50009CF787 /* APIWindowFeatures.cpp in Sources */,
1AD4C1921B39F33200ABC28E /* ApplicationStateTracker.mm in Sources */,
1A3D610513A7F03A00F95D4E /* ArgumentCoders.cpp in Sources */,
@@ -10835,7 +10831,7 @@
1A53C2A91A32572B004E8C70 /* WebsiteDataStore.cpp in Sources */,
1A4832C31A965A3C008B4DFE /* WebsiteDataStoreCocoa.mm in Sources */,
511F7D421EB1BCF800E47B83 /* WebsiteDataStoreParameters.cpp in Sources */,
- 5C3AEA8F1FE1F21F002318D3 /* WebsitePolicies.cpp in Sources */,
+ 5C3AEA8F1FE1F21F002318D3 /* WebsitePoliciesData.cpp in Sources */,
5C7706741D1138380012700F /* WebSocketProvider.cpp in Sources */,
5C0B177C1E7C885400E9123C /* WebSocketStream.cpp in Sources */,
5C0B17791E7C882100E9123C /* WebSocketStreamMessageReceiver.cpp in Sources */,
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -54,7 +54,7 @@
#include "WebPageProxyMessages.h"
#include "WebProcess.h"
#include "WebProcessPoolMessages.h"
-#include "WebsitePolicies.h"
+#include "WebsitePoliciesData.h"
#include <_javascript_Core/APICast.h>
#include <_javascript_Core/JSObject.h>
#include <WebCore/CachedFrame.h>
@@ -776,7 +776,7 @@
webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), SecurityOriginData::fromFrame(coreFrame), navigationActionData, request, frameName, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
-void WebFrameLoaderClient::applyToDocumentLoader(WebsitePolicies&& websitePolicies)
+void WebFrameLoaderClient::applyToDocumentLoader(WebsitePoliciesData&& websitePolicies)
{
if (!m_frame)
return;
@@ -791,7 +791,7 @@
if (!documentLoader)
return;
- WebsitePolicies::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
+ WebsitePoliciesData::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
}
void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction& navigationAction, const ResourceRequest& request, bool didReceiveRedirectResponse, FormState* formState, FramePolicyFunction&& function)
@@ -862,7 +862,7 @@
// Notify the UIProcess.
Ref<WebFrame> protect(*m_frame);
- std::optional<WebsitePolicies> websitePolicies;
+ std::optional<WebsitePoliciesData> websitePolicies;
if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), SecurityOriginData::fromFrame(coreFrame), documentLoader->navigationID(), navigationActionData, originatingFrameInfoData, originatingFrame && originatingFrame->page() ? originatingFrame->page()->pageID() : 0, navigationAction.resourceRequest(), request, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID, websitePolicies))) {
m_frame->didReceivePolicyDecision(listenerID, PolicyAction::Ignore, 0, { }, { });
return;
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -35,7 +35,7 @@
class PluginView;
class WebFrame;
-class WebsitePolicies;
+struct WebsitePoliciesData;
class WebFrameLoaderClient final : public WebCore::FrameLoaderClient {
public:
@@ -49,7 +49,7 @@
void setUseIconLoadingClient(bool useIconLoadingClient) { m_useIconLoadingClient = useIconLoadingClient; }
- void applyToDocumentLoader(WebsitePolicies&&);
+ void applyToDocumentLoader(WebsitePoliciesData&&);
std::optional<uint64_t> pageID() const final;
std::optional<uint64_t> frameID() const final;
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -45,6 +45,7 @@
#include "WebPage.h"
#include "WebPageProxyMessages.h"
#include "WebProcess.h"
+#include "WebsitePoliciesData.h"
#include <_javascript_Core/APICast.h>
#include <_javascript_Core/JSContextRef.h>
#include <_javascript_Core/JSLock.h>
@@ -251,7 +252,7 @@
m_willSubmitFormCompletionHandlers.clear();
}
-void WebFrame::didReceivePolicyDecision(uint64_t listenerID, PolicyAction action, uint64_t navigationID, DownloadID downloadID, std::optional<WebsitePolicies>&& websitePolicies)
+void WebFrame::didReceivePolicyDecision(uint64_t listenerID, PolicyAction action, uint64_t navigationID, DownloadID downloadID, std::optional<WebsitePoliciesData>&& websitePolicies)
{
if (!m_coreFrame)
return;
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -63,8 +63,8 @@
class InjectedBundleRangeHandle;
class InjectedBundleScriptWorld;
class WebPage;
-class WebsitePolicies;
struct FrameInfoData;
+struct WebsitePoliciesData;
class WebFrame : public API::ObjectImpl<API::Object::Type::BundleFrame> {
public:
@@ -86,7 +86,7 @@
enum class ForNavigationAction { No, Yes };
uint64_t setUpPolicyListener(WebCore::FramePolicyFunction&&, ForNavigationAction);
void invalidatePolicyListener();
- void didReceivePolicyDecision(uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, DownloadID, std::optional<WebsitePolicies>&&);
+ void didReceivePolicyDecision(uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, DownloadID, std::optional<WebsitePoliciesData>&&);
uint64_t setUpWillSubmitFormListener(WTF::Function<void(void)>&&);
void continueWillSubmitForm(uint64_t);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2017-12-15 02:08:23 UTC (rev 225954)
@@ -30,7 +30,6 @@
#include "APIArray.h"
#include "APIGeometry.h"
-#include "APIWebsitePolicies.h"
#include "AssistedNodeInformation.h"
#include "DataReference.h"
#include "DragControllerAction.h"
@@ -122,6 +121,7 @@
#include "WebUserMediaClient.h"
#include "WebValidationMessageClient.h"
#include "WebsiteDataStoreParameters.h"
+#include "WebsitePolicies.h"
#include <_javascript_Core/APICast.h>
#include <WebCore/ApplicationCacheStorage.h>
#include <WebCore/ArchiveResource.h>
@@ -2746,7 +2746,7 @@
m_page->setSessionID(sessionID);
}
-void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, PolicyAction policyAction, uint64_t navigationID, const DownloadID& downloadID, std::optional<WebsitePolicies>&& websitePolicies)
+void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, PolicyAction policyAction, uint64_t navigationID, const DownloadID& downloadID, std::optional<WebsitePoliciesData>&& websitePolicies)
{
WebFrame* frame = WebProcess::singleton().webFrame(frameID);
if (!frame)
@@ -5438,7 +5438,7 @@
sendEditorStateUpdate();
}
-void WebPage::updateWebsitePolicies(WebsitePolicies&& websitePolicies)
+void WebPage::updateWebsitePolicies(WebsitePoliciesData&& websitePolicies)
{
if (!m_page)
return;
@@ -5447,7 +5447,7 @@
if (!documentLoader)
return;
- WebsitePolicies::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
+ WebsitePoliciesData::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
#if ENABLE(VIDEO)
m_page->updateMediaElementRateChangeRestrictions();
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2017-12-15 02:08:23 UTC (rev 225954)
@@ -210,7 +210,6 @@
class VideoFullscreenManager;
class WebWheelEvent;
class WebTouchEvent;
-class WebsitePolicies;
class RemoteLayerTreeTransaction;
struct AssistedNodeInformation;
@@ -224,6 +223,7 @@
struct WebPageCreationParameters;
struct WebPreferencesStore;
struct WebSelectionData;
+struct WebsitePoliciesData;
enum class DragControllerAction;
enum FindOptions : uint16_t;
@@ -1189,7 +1189,7 @@
void updatePreferences(const WebPreferencesStore&);
void updatePreferencesGenerated(const WebPreferencesStore&);
- void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, const DownloadID&, std::optional<WebsitePolicies>&&);
+ void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, const DownloadID&, std::optional<WebsitePoliciesData>&&);
void continueWillSubmitForm(uint64_t frameID, uint64_t listenerID);
void setUserAgent(const String&);
void setCustomTextEncodingName(const String&);
@@ -1298,7 +1298,7 @@
void reportUsedFeatures();
- void updateWebsitePolicies(WebsitePolicies&&);
+ void updateWebsitePolicies(WebsitePoliciesData&&);
#if PLATFORM(MAC)
void performImmediateActionHitTestAtLocation(WebCore::FloatPoint);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (225953 => 225954)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2017-12-15 01:46:42 UTC (rev 225953)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2017-12-15 02:08:23 UTC (rev 225954)
@@ -150,8 +150,8 @@
DidRemoveBackForwardItem(uint64_t backForwardItemID)
- UpdateWebsitePolicies(WebKit::WebsitePolicies websitePolicies)
- DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, enum WebCore::PolicyAction policyAction, uint64_t navigationID, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePolicies> websitePolicies)
+ UpdateWebsitePolicies(struct WebKit::WebsitePoliciesData websitePolicies)
+ DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, enum WebCore::PolicyAction policyAction, uint64_t navigationID, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePoliciesData> websitePolicies)
ContinueWillSubmitForm(uint64_t frameID, uint64_t listenerID)
ClearSelection()