Diff
Modified: trunk/Source/WebKit/ChangeLog (262597 => 262598)
--- trunk/Source/WebKit/ChangeLog 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/ChangeLog 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,3 +1,32 @@
+2020-06-04 David Kilzer <ddkil...@apple.com>
+
+ [IPC] Adopt enum class for PluginProcessType and PluginProcessSandboxPolicy
+ <https://webkit.org/b/212758>
+
+ Reviewed by Darin Adler.
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::PluginProcess::platformInitializePluginProcess):
+ * Scripts/webkit/messages.py:
+ * Shared/Plugins/PluginProcessAttributes.h:
+ (WebKit::PluginProcessType): Convert to enum class.
+ (WebKit::PluginProcessSandboxPolicy): Ditto.
+ * UIProcess/Plugins/PluginProcessManager.cpp:
+ (WebKit::PluginProcessManager::fetchWebsiteData):
+ (WebKit::PluginProcessManager::deleteWebsiteData):
+ (WebKit::PluginProcessManager::deleteWebsiteDataForHostNames):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::didFinishLaunching):
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::findPlugin):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createPlugin):
+ (WebKit::WebPage::canPluginHandleResponse):
+
2020-06-04 Alex Christensen <achristen...@webkit.org>
Add WKUIDelegate SPI to confirm before opening a PDF
Modified: trunk/Source/WebKit/PluginProcess/mac/PluginProcessMac.mm (262597 => 262598)
--- trunk/Source/WebKit/PluginProcess/mac/PluginProcessMac.mm 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/PluginProcess/mac/PluginProcessMac.mm 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
* Copyright (C) 2011 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -384,7 +384,7 @@
void PluginProcess::platformInitializePluginProcess(PluginProcessCreationParameters&& parameters)
{
m_compositingRenderServerPort = WTFMove(parameters.acceleratedCompositingPort);
- if (parameters.processType == PluginProcessTypeSnapshot)
+ if (parameters.processType == PluginProcessType::Snapshot)
muteAudio();
[NSURLCache setSharedURLCache:adoptNS([[NSURLCache alloc]
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (262597 => 262598)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2020-06-05 05:36:33 UTC (rev 262598)
@@ -240,6 +240,7 @@
'WebKit::MDNSRegisterIdentifier',
'WebKit::MediaPlayerPrivateRemoteIdentifier',
'WebKit::MediaRecorderIdentifier',
+ 'WebKit::PluginProcessType',
'WebKit::RemoteAudioDestinationIdentifier',
'WebKit::RemoteAudioSessionIdentifier',
'WebKit::RemoteCDMIdentifier',
@@ -661,6 +662,7 @@
'WebKit::PageState': ['"SessionState.h"'],
'WebKit::PaymentSetupConfiguration': ['"PaymentSetupConfigurationWebKit.h"'],
'WebKit::PaymentSetupFeatures': ['"ApplePayPaymentSetupFeaturesWebKit.h"'],
+ 'WebKit::PluginProcessType': ['"PluginProcessAttributes.h"'],
'WebKit::RespectSelectionAnchor': ['"GestureTypes.h"'],
'WebKit::SelectionFlags': ['"GestureTypes.h"'],
'WebKit::SelectionTouch': ['"GestureTypes.h"'],
Modified: trunk/Source/WebKit/Shared/Plugins/PluginProcessAttributes.h (262597 => 262598)
--- trunk/Source/WebKit/Shared/Plugins/PluginProcessAttributes.h 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/Shared/Plugins/PluginProcessAttributes.h 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,21 +23,21 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PluginProcessAttributes_h
-#define PluginProcessAttributes_h
+#pragma once
#include "PluginModuleInfo.h"
+#include <wtf/EnumTraits.h>
namespace WebKit {
-enum PluginProcessType {
- PluginProcessTypeNormal,
- PluginProcessTypeSnapshot,
+enum class PluginProcessType : bool {
+ Normal,
+ Snapshot,
};
-enum PluginProcessSandboxPolicy {
- PluginProcessSandboxPolicyNormal,
- PluginProcessSandboxPolicyUnsandboxed,
+enum class PluginProcessSandboxPolicy : bool {
+ Normal,
+ Unsandboxed,
};
struct PluginProcessAttributes {
@@ -47,5 +47,3 @@
};
} // namespace WebKit
-
-#endif // PluginProcessAttributes_h
Modified: trunk/Source/WebKit/UIProcess/Plugins/PluginProcessManager.cpp (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/Plugins/PluginProcessManager.cpp 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/Plugins/PluginProcessManager.cpp 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2017 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -105,7 +105,7 @@
void PluginProcessManager::fetchWebsiteData(const PluginModuleInfo& plugin, OptionSet<WebsiteDataFetchOption> fetchOptions, WTF::Function<void (Vector<String>)>&& completionHandler)
{
- auto token = pluginProcessToken(plugin, PluginProcessTypeNormal, PluginProcessSandboxPolicyNormal);
+ auto token = pluginProcessToken(plugin, PluginProcessType::Normal, PluginProcessSandboxPolicy::Normal);
auto pluginProcess = fetchOptions.contains(WebsiteDataFetchOption::DoNotCreateProcesses) ? getPluginProcess(token) : getOrCreatePluginProcess(token);
if (!pluginProcess) {
completionHandler({ });
@@ -117,13 +117,13 @@
void PluginProcessManager::deleteWebsiteData(const PluginModuleInfo& plugin, WallTime modifiedSince, WTF::Function<void ()>&& completionHandler)
{
- PluginProcessProxy* pluginProcess = getOrCreatePluginProcess(pluginProcessToken(plugin, PluginProcessTypeNormal, PluginProcessSandboxPolicyNormal));
+ PluginProcessProxy* pluginProcess = getOrCreatePluginProcess(pluginProcessToken(plugin, PluginProcessType::Normal, PluginProcessSandboxPolicy::Normal));
pluginProcess->deleteWebsiteData(modifiedSince, WTFMove(completionHandler));
}
void PluginProcessManager::deleteWebsiteDataForHostNames(const PluginModuleInfo& plugin, const Vector<String>& hostNames,WTF::Function<void ()>&& completionHandler)
{
- PluginProcessProxy* pluginProcess = getOrCreatePluginProcess(pluginProcessToken(plugin, PluginProcessTypeNormal, PluginProcessSandboxPolicyNormal));
+ PluginProcessProxy* pluginProcess = getOrCreatePluginProcess(pluginProcessToken(plugin, PluginProcessType::Normal, PluginProcessSandboxPolicy::Normal));
pluginProcess->deleteWebsiteDataForHostNames(hostNames, WTFMove(completionHandler));
}
Modified: trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -236,7 +236,7 @@
PluginProcessCreationParameters parameters;
parameters.processType = m_pluginProcessAttributes.processType;
- if (parameters.processType == PluginProcessTypeSnapshot) {
+ if (parameters.processType == PluginProcessType::Snapshot) {
parameters.minimumLifetime = snapshottingMinimumLifetime;
parameters.terminationTimeout = snapshottingShutdownTimeout;
} else {
Modified: trunk/Source/WebKit/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -69,7 +69,7 @@
if (PluginProcessManager::singleton().experimentalPlugInSandboxProfilesEnabled())
launchOptions.extraInitializationData.add("experimental-sandbox-plugin", "1");
- if (pluginProcessAttributes.sandboxPolicy == PluginProcessSandboxPolicyUnsandboxed) {
+ if (pluginProcessAttributes.sandboxPolicy == PluginProcessSandboxPolicy::Unsandboxed) {
if (!currentProcessIsSandboxed())
launchOptions.extraInitializationData.add("disable-sandbox", "1");
else
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-06-05 05:36:33 UTC (rev 262598)
@@ -2773,7 +2773,7 @@
}
#if ENABLE(NETSCAPE_PLUGIN_API)
-void WebPageProxy::findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, Messages::WebPageProxy::FindPlugin::DelayedReply&& reply)
+void WebPageProxy::findPlugin(const String& mimeType, PluginProcessType processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, Messages::WebPageProxy::FindPlugin::DelayedReply&& reply)
{
PageClientProtector protector(pageClient());
@@ -2803,13 +2803,13 @@
#endif
auto findPluginCompletion = [processType, reply = WTFMove(reply), newMimeType = WTFMove(newMimeType), plugin = WTFMove(plugin)] (uint32_t pluginLoadPolicy, const String& unavailabilityDescription) mutable {
- PluginProcessSandboxPolicy pluginProcessSandboxPolicy = PluginProcessSandboxPolicyNormal;
+ PluginProcessSandboxPolicy pluginProcessSandboxPolicy = PluginProcessSandboxPolicy::Normal;
switch (pluginLoadPolicy) {
case PluginModuleLoadNormally:
- pluginProcessSandboxPolicy = PluginProcessSandboxPolicyNormal;
+ pluginProcessSandboxPolicy = PluginProcessSandboxPolicy::Normal;
break;
case PluginModuleLoadUnsandboxed:
- pluginProcessSandboxPolicy = PluginProcessSandboxPolicyUnsandboxed;
+ pluginProcessSandboxPolicy = PluginProcessSandboxPolicy::Unsandboxed;
break;
case PluginModuleBlockedForSecurity:
@@ -2818,7 +2818,7 @@
return;
}
- reply(PluginProcessManager::singleton().pluginProcessToken(plugin, static_cast<PluginProcessType>(processType), pluginProcessSandboxPolicy), newMimeType, pluginLoadPolicy, unavailabilityDescription, false);
+ reply(PluginProcessManager::singleton().pluginProcessToken(plugin, processType, pluginProcessSandboxPolicy), newMimeType, pluginLoadPolicy, unavailabilityDescription, false);
};
#if PLATFORM(COCOA)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2020-06-05 05:36:33 UTC (rev 262598)
@@ -41,6 +41,7 @@
#include "MessageSender.h"
#include "NotificationPermissionRequestManagerProxy.h"
#include "PageLoadState.h"
+#include "PluginProcessAttributes.h"
#include "PolicyDecision.h"
#include "ProcessTerminationReason.h"
#include "ProcessThrottler.h"
@@ -2204,7 +2205,7 @@
#endif
#if ENABLE(NETSCAPE_PLUGIN_API)
- void findPlugin(const String& mimeType, uint32_t processType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, Messages::WebPageProxy::FindPluginDelayedReply&&);
+ void findPlugin(const String& mimeType, WebKit::PluginProcessType, const String& urlString, const String& frameURLString, const String& pageURLString, bool allowOnlyApplicationPlugins, Messages::WebPageProxy::FindPluginDelayedReply&&);
#endif
#if USE(QUICK_LOOK)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (262597 => 262598)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2020-06-05 05:36:33 UTC (rev 262598)
@@ -449,7 +449,7 @@
#endif
#if ENABLE(NETSCAPE_PLUGIN_API)
- FindPlugin(String mimeType, uint32_t processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -> (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription, bool isUnsupported) Synchronous
+ FindPlugin(String mimeType, WebKit::PluginProcessType processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -> (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription, bool isUnsupported) Synchronous
#endif
DidUpdateActivityState()
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (262597 => 262598)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2020-06-05 05:29:05 UTC (rev 262597)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2020-06-05 05:36:33 UTC (rev 262598)
@@ -1004,9 +1004,9 @@
#if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
HTMLPlugInImageElement& pluginImageElement = downcast<HTMLPlugInImageElement>(*pluginElement);
unsigned pluginArea = 0;
- PluginProcessType processType = pluginElement->displayState() == HTMLPlugInElement::WaitingForSnapshot && !(plugInIsPrimarySize(pluginImageElement, pluginArea) && !plugInIntersectsSearchRect(pluginImageElement)) ? PluginProcessTypeSnapshot : PluginProcessTypeNormal;
+ PluginProcessType processType = pluginElement->displayState() == HTMLPlugInElement::WaitingForSnapshot && !(plugInIsPrimarySize(pluginImageElement, pluginArea) && !plugInIntersectsSearchRect(pluginImageElement)) ? PluginProcessType::Snapshot : PluginProcessType::Normal;
#else
- PluginProcessType processType = pluginElement->displayState() == HTMLPlugInElement::WaitingForSnapshot ? PluginProcessTypeSnapshot : PluginProcessTypeNormal;
+ PluginProcessType processType = pluginElement->displayState() == HTMLPlugInElement::WaitingForSnapshot ? PluginProcessType::Snapshot : PluginProcessType::Normal;
#endif
bool allowOnlyApplicationPlugins = !frame->coreFrame()->loader().arePluginsEnabled();
@@ -1015,7 +1015,7 @@
uint32_t pluginLoadPolicy;
String unavailabilityDescription;
bool isUnsupported;
- if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, static_cast<uint32_t>(processType), parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, isUnsupported)))
+ if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, processType, parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, isUnsupported)))
return nullptr;
PluginModuleLoadPolicy loadPolicy = static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy);
@@ -5302,7 +5302,7 @@
String newMIMEType;
String unavailabilityDescription;
bool isUnsupported = false;
- if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessTypeNormal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, isUnsupported)))
+ if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessType::Normal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, isUnsupported)))
return false;
ASSERT(!isUnsupported);