Title: [151530] trunk/Source
Revision
151530
Author
[email protected]
Date
2013-06-12 17:34:45 -0700 (Wed, 12 Jun 2013)

Log Message

Remove the notion of inactive plug-ins
https://bugs.webkit.org/show_bug.cgi?id=117570
<rdar://problem/13484213>

Reviewed by Tim Horton.

Source/WebCore:

Remove RenderEmbeddedObject::PluginInactive and the replacement text.

* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
* platform/LocalizedStrings.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::unavailablePluginReplacementText):
* rendering/RenderEmbeddedObject.h:

Source/WebKit/mac:

Remove code that deals with inactive plug-ins.

* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::shouldUnavailablePluginMessageBeButton):
(WebChromeClient::unavailablePluginButtonClicked):
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin):

Source/WebKit2:

Remove code that deals with inactive plug-ins. We still keep around the kWKPluginLoadPolicyInactive API enum for now.

* Shared/Plugins/PluginModuleInfo.h:
* UIProcess/API/C/WKAPICast.h:
(WebKit::toWKPluginLoadPolicy):
(WebKit::toPluginModuleLoadPolicy):
* UIProcess/Plugins/PluginInfoStore.cpp:
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::shouldUsePlugin):
(WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::unavailablePluginButtonClicked):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldUnavailablePluginMessageBeButton):
(WebKit::WebChromeClient::unavailablePluginButtonClicked):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (151529 => 151530)


--- trunk/Source/WebCore/ChangeLog	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/ChangeLog	2013-06-13 00:34:45 UTC (rev 151530)
@@ -1,3 +1,20 @@
+2013-06-12  Anders Carlsson  <[email protected]>
+
+        Remove the notion of inactive plug-ins
+        https://bugs.webkit.org/show_bug.cgi?id=117570
+        <rdar://problem/13484213>
+
+        Reviewed by Tim Horton.
+
+        Remove RenderEmbeddedObject::PluginInactive and the replacement text.
+
+        * English.lproj/Localizable.strings:
+        * platform/LocalizedStrings.cpp:
+        * platform/LocalizedStrings.h:
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::unavailablePluginReplacementText):
+        * rendering/RenderEmbeddedObject.h:
+
 2013-06-12  Dean Jackson  <[email protected]>
 
         [Mac] Change default Traditional Chinese serif font on 10.9

Modified: trunk/Source/WebCore/English.lproj/Localizable.strings (151529 => 151530)


--- trunk/Source/WebCore/English.lproj/Localizable.strings	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/English.lproj/Localizable.strings	2013-06-13 00:34:45 UTC (rev 151530)
@@ -211,9 +211,6 @@
 /* Ignore Spelling context menu item */
 "Ignore Spelling" = "Ignore Spelling";
 
-/* Label text to be used when a plugin has not been loaded for some time */
-"Inactive Plug-in" = "Inactive Plug-in";
-
 /* Undo action name */
 "Indent (Undo action name)" = "Indent";
 

Modified: trunk/Source/WebCore/platform/LocalizedStrings.cpp (151529 => 151530)


--- trunk/Source/WebCore/platform/LocalizedStrings.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/platform/LocalizedStrings.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -704,11 +704,6 @@
     return WEB_UI_STRING_KEY("Blocked Plug-in", "Blocked Plug-In (Insecure plug-in)", "Label text to be used when an insecure plug-in version was blocked from loading");
 }
 
-String inactivePluginText()
-{
-    return WEB_UI_STRING("Inactive Plug-in", "Label text to be used when a plugin has not been loaded for some time");
-}
-
 String multipleFileUploadText(unsigned numberOfFiles)
 {
     return formatLocalizedString(WEB_UI_STRING("%d files", "Label to describe the number of files selected in a file upload control that allows multiple files"), numberOfFiles);

Modified: trunk/Source/WebCore/platform/LocalizedStrings.h (151529 => 151530)


--- trunk/Source/WebCore/platform/LocalizedStrings.h	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/platform/LocalizedStrings.h	2013-06-13 00:34:45 UTC (rev 151530)
@@ -182,7 +182,6 @@
     String crashedPluginText();
     String blockedPluginByContentSecurityPolicyText();
     String insecurePluginVersionText();
-    String inactivePluginText();
 
     String multipleFileUploadText(unsigned numberOfFiles);
     String unknownFileSizeText();

Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (151529 => 151530)


--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -121,8 +121,6 @@
         return blockedPluginByContentSecurityPolicyText();
     case RenderEmbeddedObject::InsecurePluginVersion:
         return insecurePluginVersionText();
-    case RenderEmbeddedObject::PluginInactive:
-        return inactivePluginText();
     }
 
     ASSERT_NOT_REACHED();

Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.h (151529 => 151530)


--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.h	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.h	2013-06-13 00:34:45 UTC (rev 151530)
@@ -42,7 +42,6 @@
         PluginCrashed,
         PluginBlockedByContentSecurityPolicy,
         InsecurePluginVersion,
-        PluginInactive,
     };
     void setPluginUnavailabilityReason(PluginUnavailabilityReason);
     bool showsUnavailablePluginIndicator() const;

Modified: trunk/Source/WebKit/mac/ChangeLog (151529 => 151530)


--- trunk/Source/WebKit/mac/ChangeLog	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit/mac/ChangeLog	2013-06-13 00:34:45 UTC (rev 151530)
@@ -1,3 +1,19 @@
+2013-06-12  Anders Carlsson  <[email protected]>
+
+        Remove the notion of inactive plug-ins
+        https://bugs.webkit.org/show_bug.cgi?id=117570
+        <rdar://problem/13484213>
+
+        Reviewed by Tim Horton.
+
+        Remove code that deals with inactive plug-ins.
+
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::shouldUnavailablePluginMessageBeButton):
+        (WebChromeClient::unavailablePluginButtonClicked):
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (WebFrameLoaderClient::createPlugin):
+
 2013-06-12  Zan Dobersek  <[email protected]>
 
         Remove memoryInfoEnabled, quantizedMemoryInfoEnabled settings

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm (151529 => 151530)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm	2013-06-13 00:34:45 UTC (rev 151530)
@@ -588,9 +588,6 @@
 
 bool WebChromeClient::shouldUnavailablePluginMessageBeButton(RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
 {
-    if (pluginUnavailabilityReason == RenderEmbeddedObject::PluginInactive)
-        return true;
-
     if (pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing)
         return [[m_webView UIDelegate] respondsToSelector:@selector(webView:didPressMissingPluginButton:)];
 
@@ -601,28 +598,7 @@
 {
     ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag) || element->hasTagName(appletTag));
 
-    if (pluginUnavailabilityReason == RenderEmbeddedObject::PluginInactive) {
-        HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element);
-
-        WebBasePluginPackage *pluginPackage = nil;
-        if (!pluginElement->serviceType().isEmpty())
-            pluginPackage = [m_webView _pluginForMIMEType:pluginElement->serviceType()];
-
-        NSURL *url = ""
-        NSString *extension = [[url path] pathExtension];
-        if (!pluginPackage && [extension length])
-            pluginPackage = [m_webView _pluginForExtension:extension];
-
-        if (pluginPackage && [pluginPackage bundleIdentifier] == "com.oracle.java.JavaAppletPlugin") {
-            // Reactivate the plug-in and reload the page so the plug-in will be instantiated correctly.
-            WKActivateJavaPlugIn();
-            [m_webView reload:nil];
-        }
-
-        return;
-    }
-
-    ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::PluginInactive);
+    ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing);
     CallUIDelegate(m_webView, @selector(webView:didPressMissingPluginButton:), kit(element));
 }
 

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (151529 => 151530)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm	2013-06-13 00:34:45 UTC (rev 151530)
@@ -1645,19 +1645,6 @@
 
 #endif // ENABLE(NETSCAPE_PLUGIN_API)
 
-static bool isOracleJavaPlugIn(NSString *bundleIdentifier)
-{
-    return [bundleIdentifier isEqualToString:@"com.oracle.java.JavaAppletPlugin"];
-}
-
-static bool isPlugInInactive(NSString *bundleIdentifier)
-{
-    if (isOracleJavaPlugIn(bundleIdentifier) && !WKIsJavaPlugInActive())
-        return true;
-
-    return false;
-}
-
 PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLPlugInElement* element, const KURL& url,
     const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
 {
@@ -1733,10 +1720,6 @@
             errorCode = WebKitErrorBlockedPlugInVersion;
             if (element->renderer()->isEmbeddedObject())
                 toRenderEmbeddedObject(element->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::InsecurePluginVersion);
-        } else if (isPlugInInactive([pluginPackage bundleIdentifier])) {
-            if (element->renderer()->isEmbeddedObject())
-                toRenderEmbeddedObject(element->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::PluginInactive);
-            return 0;
         } else {
             if ([pluginPackage isKindOfClass:[WebPluginPackage class]])
                 view = pluginView(m_webFrame.get(), (WebPluginPackage *)pluginPackage, attributeKeys, kit(paramValues), baseURL, kit(element), loadManually);
@@ -1840,10 +1823,6 @@
             errorCode = WebKitErrorBlockedPlugInVersion;
             if (element->renderer()->isEmbeddedObject())
                 toRenderEmbeddedObject(element->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::InsecurePluginVersion);
-        } else if (isPlugInInactive([pluginPackage bundleIdentifier])) {
-            if (element->renderer()->isEmbeddedObject())
-                toRenderEmbeddedObject(element->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::PluginInactive);
-            return 0;
         } else {
     #if ENABLE(NETSCAPE_PLUGIN_API)
             if ([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]) {

Modified: trunk/Source/WebKit2/ChangeLog (151529 => 151530)


--- trunk/Source/WebKit2/ChangeLog	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/ChangeLog	2013-06-13 00:34:45 UTC (rev 151530)
@@ -1,3 +1,31 @@
+2013-06-12  Anders Carlsson  <[email protected]>
+
+        Remove the notion of inactive plug-ins
+        https://bugs.webkit.org/show_bug.cgi?id=117570
+        <rdar://problem/13484213>
+
+        Reviewed by Tim Horton.
+
+        Remove code that deals with inactive plug-ins. We still keep around the kWKPluginLoadPolicyInactive API enum for now.
+
+        * Shared/Plugins/PluginModuleInfo.h:
+        * UIProcess/API/C/WKAPICast.h:
+        (WebKit::toWKPluginLoadPolicy):
+        (WebKit::toPluginModuleLoadPolicy):
+        * UIProcess/Plugins/PluginInfoStore.cpp:
+        * UIProcess/Plugins/PluginInfoStore.h:
+        * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
+        (WebKit::PluginInfoStore::shouldUsePlugin):
+        (WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::findPlugin):
+        (WebKit::WebPageProxy::unavailablePluginButtonClicked):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::shouldUnavailablePluginMessageBeButton):
+        (WebKit::WebChromeClient::unavailablePluginButtonClicked):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::createPlugin):
+
 2013-06-12  Hugo Parente Lima  <[email protected]>
 
         [GTK] Explicit include glib.h to avoid compilation errors if libsoup isn't used.

Modified: trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h (151529 => 151530)


--- trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h	2013-06-13 00:34:45 UTC (rev 151530)
@@ -44,9 +44,6 @@
     // The plug-in should be blocked from being instantiated.
     // Note that the plug-in will still be seen by e.g. navigator.plugins
     PluginModuleBlocked,
-
-    // The plug-in module is inactive and should not be instantiated unless the user explicitly allows it.
-    PluginModuleInactive
 };
 
 struct PluginModuleInfo {

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h (151529 => 151530)


--- trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h	2013-06-13 00:34:45 UTC (rev 151530)
@@ -414,8 +414,6 @@
         return kWKPluginLoadPolicyLoadUnsandboxed;
     case PluginModuleBlocked:
         return kWKPluginLoadPolicyBlocked;
-    case PluginModuleInactive:
-        return kWKPluginLoadPolicyInactive;
     }
     
     ASSERT_NOT_REACHED();
@@ -429,8 +427,6 @@
         return PluginModuleLoadNormally;
     case kWKPluginLoadPolicyBlocked:
         return PluginModuleBlocked;
-    case kWKPluginLoadPolicyInactive:
-        return PluginModuleInactive;
     case kWKPluginLoadPolicyLoadUnsandboxed:
         return PluginModuleLoadUnsandboxed;
     }

Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp (151529 => 151530)


--- trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -186,11 +186,6 @@
     return PluginModuleLoadNormally;
 }
 
-bool PluginInfoStore::reactivateInactivePlugin(const PluginModuleInfo&)
-{
-    return false;
-}
-
 String PluginInfoStore::getMIMETypeForExtension(const String& extension)
 {
     return MIMETypeRegistry::getMIMETypeForExtension(extension);

Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h (151529 => 151530)


--- trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h	2013-06-13 00:34:45 UTC (rev 151530)
@@ -72,7 +72,6 @@
     PluginModuleInfo infoForPluginWithPath(const String& pluginPath) const;
 
     static PluginModuleLoadPolicy defaultLoadPolicyForPlugin(const PluginModuleInfo&);
-    static bool reactivateInactivePlugin(const PluginModuleInfo&);
 
     void setClient(PluginInfoStoreClient* client) { m_client = client; }
     PluginInfoStoreClient* client() const { return m_client; }

Modified: trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm (151529 => 151530)


--- trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm	2013-06-13 00:34:45 UTC (rev 151530)
@@ -132,11 +132,6 @@
     if (!checkForPreferredPlugin(alreadyLoadedPlugins, plugin, "com.apple.java.JavaAppletPlugin",  oracleJavaAppletPluginBundleIdentifier))
         return false;
 
-    if (plugin.bundleIdentifier == "com.apple.java.JavaAppletPlugin" && shouldBlockPlugin(plugin) && !WKIsJavaPlugInActive()) {
-        // If the Apple Java plug-in is blocked and there's no Java runtime installed, just pretend that the plug-in doesn't exist.
-        return false;
-    }
-
     return true;
 }
 
@@ -145,22 +140,9 @@
     if (WKShouldBlockPlugin(plugin.bundleIdentifier, plugin.versionString))
         return PluginModuleBlocked;
 
-    if (plugin.bundleIdentifier == oracleJavaAppletPluginBundleIdentifier && !WKIsJavaPlugInActive())
-        return PluginModuleInactive;
-
     return PluginModuleLoadNormally;
 }
 
-bool PluginInfoStore::reactivateInactivePlugin(const PluginModuleInfo& plugin)
-{
-    if (plugin.bundleIdentifier == oracleJavaAppletPluginBundleIdentifier) {
-        WKActivateJavaPlugIn();
-        return true;
-    }
-
-    return false;
-}
-
 String PluginInfoStore::getMIMETypeForExtension(const String& extension)
 {
     // FIXME: This should just call MIMETypeRegistry::getMIMETypeForExtension and be

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (151529 => 151530)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -1439,7 +1439,6 @@
         break;
 
     case PluginModuleBlocked:
-    case PluginModuleInactive:
         pluginProcessToken = 0;
         return;
     }
@@ -2761,17 +2760,6 @@
     case RenderEmbeddedObject::PluginCrashed:
         pluginUnavailabilityReason = kWKPluginUnavailabilityReasonPluginCrashed;
         break;
-
-    case RenderEmbeddedObject::PluginInactive: {
-#if ENABLE(NETSCAPE_PLUGIN_API)
-        if (!plugin.path.isEmpty() && PluginInfoStore::reactivateInactivePlugin(plugin)) {
-            // The plug-in has been reactivated now; reload the page so it'll be instantiated.
-            reload(false);
-        }
-        return;
-#endif
-    }
-
     case RenderEmbeddedObject::PluginBlockedByContentSecurityPolicy:
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (151529 => 151530)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -512,7 +512,6 @@
         // FIXME: <rdar://problem/8794397> We should only return true when there is a
         // missingPluginButtonClicked callback defined on the Page UI client.
     case RenderEmbeddedObject::InsecurePluginVersion:
-    case RenderEmbeddedObject::PluginInactive:
         return true;
 
 
@@ -528,7 +527,7 @@
 void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
 {
     ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag) || element->hasTagName(appletTag));
-    ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::InsecurePluginVersion || pluginUnavailabilityReason == RenderEmbeddedObject::PluginInactive);
+    ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::InsecurePluginVersion || pluginUnavailabilityReason);
 
     HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element);
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (151529 => 151530)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-06-13 00:05:23 UTC (rev 151529)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-06-13 00:34:45 UTC (rev 151530)
@@ -555,11 +555,6 @@
 
         send(Messages::WebPageProxy::DidBlockInsecurePluginVersion(parameters.mimeType, parameters.url.string(), frameURLString, pageURLString));
         return 0;
-
-    case PluginModuleInactive:
-        if (pluginElement->renderer()->isEmbeddedObject())
-            toRenderEmbeddedObject(pluginElement->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::PluginInactive);
-        return 0;
     }
 
     if (!pluginProcessToken) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to