Title: [262598] trunk/Source/WebKit
Revision
262598
Author
ddkil...@apple.com
Date
2020-06-04 22:36:33 -0700 (Thu, 04 Jun 2020)

Log Message

[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):

Modified Paths

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);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to