<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[181494] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/181494">181494</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-03-13 19:50:28 -0700 (Fri, 13 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/181483">r181483</a>.
https://bugs.webkit.org/show_bug.cgi?id=142688

Caused use-after-free on many tests (Requested by ap on
#webkit).

Reverted changeset:

&quot;Allow clients to selectively disable plug-ins&quot;
https://bugs.webkit.org/show_bug.cgi?id=142506
http://trac.webkit.org/changeset/181483</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDOMImplementationcpp">trunk/Source/WebCore/dom/DOMImplementation.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderSubframeLoadercpp">trunk/Source/WebCore/loader/SubframeLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformStrategiesh">trunk/Source/WebCore/platform/PlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMMimeTypecpp">trunk/Source/WebCore/plugins/DOMMimeType.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMMimeTypeh">trunk/Source/WebCore/plugins/DOMMimeType.h</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMMimeTypeArraycpp">trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMPlugincpp">trunk/Source/WebCore/plugins/DOMPlugin.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMPluginh">trunk/Source/WebCore/plugins/DOMPlugin.h</a></li>
<li><a href="#trunkSourceWebCorepluginsDOMPluginArraycpp">trunk/Source/WebCore/plugins/DOMPluginArray.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsPluginDatacpp">trunk/Source/WebCore/plugins/PluginData.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsPluginDatah">trunk/Source/WebCore/plugins/PluginData.h</a></li>
<li><a href="#trunkSourceWebCorepluginsPluginStrategyh">trunk/Source/WebCore/plugins/PluginStrategy.h</a></li>
<li><a href="#trunkSourceWebCorereplaySerializationMethodscpp">trunk/Source/WebCore/replay/SerializationMethods.cpp</a></li>
<li><a href="#trunkSourceWebCorereplayWebInputsjson">trunk/Source/WebCore/replay/WebInputs.json</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacPluginsWebBasePluginPackagemm">trunk/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm</a></li>
<li><a href="#trunkSourceWebKitmacPluginsWebNetscapePluginPackagemm">trunk/Source/WebKit/mac/Plugins/WebNetscapePluginPackage.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm">trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebPlatformStrategiescpp">trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedPluginsNetscapemacNetscapePluginModuleMacmm">trunk/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedWebCoreArgumentCoderscpp">trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebProcessCreationParameterscpp">trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebProcessCreationParametersh">trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKAPICasth">trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPluginLoadPolicyh">trunk/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMach">trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMacmm">trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolcpp">trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolh">trunk/Source/WebKit2/UIProcess/WebProcessPool.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcesscpp">trunk/Source/WebKit2/WebProcess/WebProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcessh">trunk/Source/WebKit2/WebProcess/WebProcess.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcessmessagesin">trunk/Source/WebKit2/WebProcess/WebProcess.messages.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/ChangeLog        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-03-13  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r181483.
+        https://bugs.webkit.org/show_bug.cgi?id=142688
+
+        Caused use-after-free on many tests (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Allow clients to selectively disable plug-ins&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=142506
+        http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Cache glyph widths to GlyphPages
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMImplementationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMImplementation.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMImplementation.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/dom/DOMImplementation.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx"> 
</span><span class="cx">     // PDF is one image type for which a plugin can override built-in support.
</span><span class="cx">     // We do not want QuickTime to take over all image types, obviously.
</span><del>-    if (MIMETypeRegistry::isPDFOrPostScriptMIMEType(type) &amp;&amp; pluginData &amp;&amp; pluginData-&gt;supportsWebVisibleMimeType(type, allowedPluginTypes))
</del><ins>+    if (MIMETypeRegistry::isPDFOrPostScriptMIMEType(type) &amp;&amp; pluginData &amp;&amp; pluginData-&gt;supportsMimeType(type, allowedPluginTypes))
</ins><span class="cx">         return PluginDocument::create(frame, url);
</span><span class="cx">     if (Image::supportsType(type))
</span><span class="cx">         return ImageDocument::create(*frame, url);
</span><span class="lines">@@ -348,7 +348,7 @@
</span><span class="cx">     // Everything else except text/plain can be overridden by plugins. In particular, Adobe SVG Viewer should be used for SVG, if installed.
</span><span class="cx">     // Disallowing plug-ins to use text/plain prevents plug-ins from hijacking a fundamental type that the browser is expected to handle,
</span><span class="cx">     // and also serves as an optimization to prevent loading the plug-in database in the common case.
</span><del>-    if (type != &quot;text/plain&quot; &amp;&amp; ((pluginData &amp;&amp; pluginData-&gt;supportsWebVisibleMimeType(type, allowedPluginTypes)) || (frame &amp;&amp; frame-&gt;loader().client().shouldAlwaysUsePluginDocument(type))))
</del><ins>+    if (type != &quot;text/plain&quot; &amp;&amp; ((pluginData &amp;&amp; pluginData-&gt;supportsMimeType(type, allowedPluginTypes)) || (frame &amp;&amp; frame-&gt;loader().client().shouldAlwaysUsePluginDocument(type))))
</ins><span class="cx">         return PluginDocument::create(frame, url);
</span><span class="cx">     if (isTextMIMEType(type))
</span><span class="cx">         return TextDocument::create(frame, url);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderSubframeLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/SubframeLoader.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/SubframeLoader.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/loader/SubframeLoader.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -167,11 +167,8 @@
</span><span class="cx"> 
</span><span class="cx">     const PluginData&amp; pluginData = page-&gt;pluginData();
</span><span class="cx"> 
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    pluginData.getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-    for (size_t i = 0; i &lt; mimes.size(); ++i) {
-        const MimeClassInfo&amp; mimeClassInfo = mimes[i];
</del><ins>+    for (size_t i = 0; i &lt; pluginData.mimes().size(); ++i) {
+        const MimeClassInfo&amp; mimeClassInfo = pluginData.mimes()[i];
</ins><span class="cx">         for (size_t j = 0; j &lt; mimeClassInfo.extensions.size(); ++j) {
</span><span class="cx">             if (equalIgnoringCase(extension, mimeClassInfo.extensions[j]))
</span><span class="cx">                 return mimeClassInfo.type;
</span><span class="lines">@@ -194,7 +191,7 @@
</span><span class="cx">             return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    String pluginFile = page-&gt;pluginData().pluginFileForWebVisibleMimeType(newMIMEType);
</del><ins>+    String pluginFile = page-&gt;pluginData().pluginFileForMimeType(newMIMEType);
</ins><span class="cx">     String description = !pluginFile ? newMIMEType : pluginFile;
</span><span class="cx"> 
</span><span class="cx">     DiagnosticLoggingClient&amp; diagnosticLoggingClient = page-&gt;mainFrame().diagnosticLoggingClient();
</span><span class="lines">@@ -370,7 +367,7 @@
</span><span class="cx">     // Allow other plug-ins to win over QuickTime because if the user has installed a plug-in that
</span><span class="cx">     // can handle TIFF (which QuickTime can also handle) they probably intended to override QT.
</span><span class="cx">     if (m_frame.page() &amp;&amp; (mimeType == &quot;image/tiff&quot; || mimeType == &quot;image/tif&quot; || mimeType == &quot;image/x-tiff&quot;)) {
</span><del>-        String pluginName = m_frame.page()-&gt;pluginData().pluginNameForWebVisibleMimeType(mimeType);
</del><ins>+        String pluginName = m_frame.page()-&gt;pluginData().pluginNameForMimeType(mimeType);
</ins><span class="cx">         if (!pluginName.isEmpty() &amp;&amp; !pluginName.contains(&quot;QuickTime&quot;, false)) 
</span><span class="cx">             return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformStrategies.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformStrategies.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/platform/PlatformStrategies.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     PluginStrategy* m_pluginStrategy;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-WEBCORE_EXPORT PlatformStrategies* platformStrategies();
</del><ins>+PlatformStrategies* platformStrategies();
</ins><span class="cx"> WEBCORE_EXPORT void setPlatformStrategies(PlatformStrategies*);
</span><span class="cx"> bool hasPlatformStrategies();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMMimeTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMMimeType.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMMimeType.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMMimeType.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String DOMMimeType::type() const
</del><ins>+const String &amp;DOMMimeType::type() const
</ins><span class="cx"> {
</span><span class="cx">     return mimeClassInfo().type;
</span><span class="cx"> }
</span><span class="lines">@@ -60,28 +60,17 @@
</span><span class="cx">     return builder.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String DOMMimeType::description() const
</del><ins>+const String &amp;DOMMimeType::description() const
</ins><span class="cx"> {
</span><span class="cx">     return mimeClassInfo().desc;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-MimeClassInfo DOMMimeType::mimeClassInfo() const
-{
-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    m_pluginData-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-    return mimes[m_index];
-}
-
</del><span class="cx"> PassRefPtr&lt;DOMPlugin&gt; DOMMimeType::enabledPlugin() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_frame || !m_frame-&gt;page() || !m_frame-&gt;page()-&gt;mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    m_pluginData-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-    return DOMPlugin::create(m_pluginData.get(), m_frame, mimePluginIndices[m_index]);
</del><ins>+    return DOMPlugin::create(m_pluginData.get(), m_frame, m_pluginData-&gt;mimePluginIndices()[m_index]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMMimeTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMMimeType.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMMimeType.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMMimeType.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -37,13 +37,13 @@
</span><span class="cx">     static Ref&lt;DOMMimeType&gt; create(PassRefPtr&lt;PluginData&gt; pluginData, Frame* frame, unsigned index) { return adoptRef(*new DOMMimeType(pluginData, frame, index)); }
</span><span class="cx">     ~DOMMimeType();
</span><span class="cx"> 
</span><del>-    String type() const;
</del><ins>+    const String &amp;type() const;
</ins><span class="cx">     String suffixes() const;
</span><del>-    String description() const;
</del><ins>+    const String &amp;description() const;
</ins><span class="cx">     PassRefPtr&lt;DOMPlugin&gt; enabledPlugin() const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    MimeClassInfo mimeClassInfo() const;
</del><ins>+    const MimeClassInfo&amp; mimeClassInfo() const { return m_pluginData-&gt;mimes()[m_index]; }
</ins><span class="cx"> 
</span><span class="cx">     DOMMimeType(PassRefPtr&lt;PluginData&gt;, Frame*, unsigned index);
</span><span class="cx">     RefPtr&lt;PluginData&gt; m_pluginData;
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMMimeTypeArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMMimeTypeArray.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -48,11 +48,7 @@
</span><span class="cx">     PluginData* data = getPluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    data-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-    return mimes.size();
</del><ins>+    return data-&gt;mimes().size();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;DOMMimeType&gt; DOMMimeTypeArray::item(unsigned index)
</span><span class="lines">@@ -60,11 +56,7 @@
</span><span class="cx">     PluginData* data = getPluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    data-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = data-&gt;mimes();
</ins><span class="cx">     if (index &gt;= mimes.size())
</span><span class="cx">         return 0;
</span><span class="cx">     return DOMMimeType::create(data, m_frame, index);
</span><span class="lines">@@ -75,10 +67,7 @@
</span><span class="cx">     PluginData *data = getPluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    data-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = data-&gt;mimes();
</ins><span class="cx">     for (unsigned i = 0; i &lt; mimes.size(); ++i) {
</span><span class="cx">         if (mimes[i].type == propertyName)
</span><span class="cx">             return true;
</span><span class="lines">@@ -91,10 +80,7 @@
</span><span class="cx">     PluginData *data = getPluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    data-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = data-&gt;mimes();
</ins><span class="cx">     for (unsigned i = 0; i &lt; mimes.size(); ++i) {
</span><span class="cx">         if (mimes[i].type == propertyName)
</span><span class="cx">             return DOMMimeType::create(data, m_frame, i);
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMPlugincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMPlugin.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMPlugin.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMPlugin.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -56,23 +56,16 @@
</span><span class="cx">     return pluginInfo().mimes.size();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PluginInfo DOMPlugin::pluginInfo() const
-{
-    return m_pluginData-&gt;webVisiblePlugins()[m_index];
-}
-
</del><span class="cx"> PassRefPtr&lt;DOMMimeType&gt; DOMPlugin::item(unsigned index)
</span><span class="cx"> {
</span><span class="cx">     if (index &gt;= pluginInfo().mimes.size())
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    MimeClassInfo mime = pluginInfo().mimes[index];
</del><ins>+    const MimeClassInfo&amp; mime = pluginInfo().mimes[index];
</ins><span class="cx"> 
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    m_pluginData-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = m_pluginData-&gt;mimes();
</ins><span class="cx">     for (unsigned i = 0; i &lt; mimes.size(); ++i) {
</span><del>-        if (mimes[i] == mime &amp;&amp; mimePluginIndices[i] == m_index)
</del><ins>+        if (mimes[i] == mime &amp;&amp; m_pluginData-&gt;mimePluginIndices()[i] == m_index)
</ins><span class="cx">             return DOMMimeType::create(m_pluginData.get(), m_frame, i);
</span><span class="cx">     }
</span><span class="cx">     return 0;
</span><span class="lines">@@ -80,9 +73,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool DOMPlugin::canGetItemsForName(const AtomicString&amp; propertyName)
</span><span class="cx"> {
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    m_pluginData-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = m_pluginData-&gt;mimes();
</ins><span class="cx">     for (unsigned i = 0; i &lt; mimes.size(); ++i)
</span><span class="cx">         if (mimes[i].type == propertyName)
</span><span class="cx">             return true;
</span><span class="lines">@@ -91,9 +82,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;DOMMimeType&gt; DOMPlugin::namedItem(const AtomicString&amp; propertyName)
</span><span class="cx"> {
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    m_pluginData-&gt;getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes = m_pluginData-&gt;mimes();
</ins><span class="cx">     for (unsigned i = 0; i &lt; mimes.size(); ++i)
</span><span class="cx">         if (mimes[i].type == propertyName)
</span><span class="cx">             return DOMMimeType::create(m_pluginData.get(), m_frame, i);
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMPluginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMPlugin.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMPlugin.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMPlugin.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     PassRefPtr&lt;DOMMimeType&gt; namedItem(const AtomicString&amp; propertyName);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    PluginInfo pluginInfo() const;
</del><ins>+    const PluginInfo&amp; pluginInfo() const { return m_pluginData-&gt;plugins()[m_index]; }
</ins><span class="cx"> 
</span><span class="cx">     DOMPlugin(PluginData*, Frame*, unsigned index);
</span><span class="cx">     RefPtr&lt;PluginData&gt; m_pluginData;
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsDOMPluginArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/DOMPluginArray.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/DOMPluginArray.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/DOMPluginArray.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -48,8 +48,7 @@
</span><span class="cx">     PluginData* data = pluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    return data-&gt;webVisiblePlugins().size();
</del><ins>+    return data-&gt;plugins().size();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;DOMPlugin&gt; DOMPluginArray::item(unsigned index)
</span><span class="lines">@@ -57,8 +56,7 @@
</span><span class="cx">     PluginData* data = pluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;webVisiblePlugins();
</del><ins>+    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;plugins();
</ins><span class="cx">     if (index &gt;= plugins.size())
</span><span class="cx">         return 0;
</span><span class="cx">     return DOMPlugin::create(data, m_frame, index);
</span><span class="lines">@@ -69,8 +67,7 @@
</span><span class="cx">     PluginData* data = pluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;webVisiblePlugins();
</del><ins>+    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;plugins();
</ins><span class="cx">     for (unsigned i = 0; i &lt; plugins.size(); ++i) {
</span><span class="cx">         if (plugins[i].name == propertyName)
</span><span class="cx">             return true;
</span><span class="lines">@@ -83,8 +80,7 @@
</span><span class="cx">     PluginData* data = pluginData();
</span><span class="cx">     if (!data)
</span><span class="cx">         return 0;
</span><del>-
-    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;webVisiblePlugins();
</del><ins>+    const Vector&lt;PluginInfo&gt;&amp; plugins = data-&gt;plugins();
</ins><span class="cx">     for (unsigned i = 0; i &lt; plugins.size(); ++i) {
</span><span class="cx">         if (plugins[i].name == propertyName)
</span><span class="cx">             return DOMPlugin::create(data, m_frame, i);
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsPluginDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/PluginData.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/PluginData.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/PluginData.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">     Copyright (C) 2000 Harri Porten (porten@kde.org)
</span><span class="cx">     Copyright (C) 2000 Daniel Molkentin (molkentin@kde.org)
</span><span class="cx">     Copyright (C) 2000 Stefan Schimanski (schimmi@kde.org)
</span><del>-    Copyright (C) 2003, 2004, 2005, 2006, 2007, 2015 Apple Inc. All Rights Reserved.
</del><ins>+    Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All Rights Reserved.
</ins><span class="cx">     Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx"> 
</span><span class="cx">     This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -31,75 +31,48 @@
</span><span class="cx"> 
</span><span class="cx"> PluginData::PluginData(const Page* page)
</span><span class="cx"> {
</span><del>-    ASSERT_ARG(page, page);
</del><ins>+    initPlugins(page);
</ins><span class="cx"> 
</span><del>-    m_page = page;
-    initPlugins();
-}
-
-Vector&lt;PluginInfo&gt; PluginData::webVisiblePlugins() const
-{
-    Vector&lt;PluginInfo&gt; plugins;
-    platformStrategies()-&gt;pluginStrategy()-&gt;getWebVisiblePluginInfo(m_page, plugins);
-    return plugins;
-}
-
-void PluginData::getWebVisibleMimesAndPluginIndices(Vector&lt;MimeClassInfo&gt;&amp; mimes, Vector&lt;size_t&gt;&amp; mimePluginIndices) const
-{
-    ASSERT_ARG(mimes, mimes.isEmpty());
-    ASSERT_ARG(mimePluginIndices, mimePluginIndices.isEmpty());
-
-    const Vector&lt;PluginInfo&gt;&amp; plugins = webVisiblePlugins();
-    for (unsigned i = 0; i &lt; plugins.size(); ++i) {
-        const PluginInfo&amp; plugin = plugins[i];
</del><ins>+    for (unsigned i = 0; i &lt; m_plugins.size(); ++i) {
+        const PluginInfo&amp; plugin = m_plugins[i];
</ins><span class="cx">         for (unsigned j = 0; j &lt; plugin.mimes.size(); ++j) {
</span><del>-            mimes.append(plugin.mimes[j]);
-            mimePluginIndices.append(i);
</del><ins>+            m_mimes.append(plugin.mimes[j]);
+            m_mimePluginIndices.append(i);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool PluginData::supportsWebVisibleMimeType(const String&amp; mimeType, const AllowedPluginTypes allowedPluginTypes) const
</del><ins>+bool PluginData::supportsMimeType(const String&amp; mimeType, const AllowedPluginTypes allowedPluginTypes) const
</ins><span class="cx"> {
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    const Vector&lt;PluginInfo&gt;&amp; plugins = webVisiblePlugins();
-    getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
-    for (unsigned i = 0; i &lt; mimes.size(); ++i) {
-        if (mimes[i].type == mimeType &amp;&amp; (allowedPluginTypes == AllPlugins || plugins[mimePluginIndices[i]].isApplicationPlugin))
</del><ins>+    for (unsigned i = 0; i &lt; m_mimes.size(); ++i) {
+        if (m_mimes[i].type == mimeType &amp;&amp; (allowedPluginTypes == AllPlugins || m_plugins[m_mimePluginIndices[i]].isApplicationPlugin))
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const PluginInfo* PluginData::pluginInfoForWebVisibleMimeType(const String&amp; mimeType) const
</del><ins>+const PluginInfo* PluginData::pluginInfoForMimeType(const String&amp; mimeType) const
</ins><span class="cx"> {
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    const Vector&lt;PluginInfo&gt;&amp; plugins = webVisiblePlugins();
-    getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
-    for (unsigned i = 0; i &lt; mimes.size(); ++i) {
-        const MimeClassInfo&amp; info = mimes[i];
-
</del><ins>+    for (unsigned i = 0; i &lt; m_mimes.size(); ++i) {
+        const MimeClassInfo&amp; info = m_mimes[i];
+    
</ins><span class="cx">         if (info.type == mimeType)
</span><del>-            return &amp;plugins[mimePluginIndices[i]];
</del><ins>+            return &amp;m_plugins[m_mimePluginIndices[i]];
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String PluginData::pluginNameForWebVisibleMimeType(const String&amp; mimeType) const
</del><ins>+String PluginData::pluginNameForMimeType(const String&amp; mimeType) const
</ins><span class="cx"> {
</span><del>-    if (const PluginInfo* info = pluginInfoForWebVisibleMimeType(mimeType))
</del><ins>+    if (const PluginInfo* info = pluginInfoForMimeType(mimeType))
</ins><span class="cx">         return info-&gt;name;
</span><span class="cx">     return String();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String PluginData::pluginFileForWebVisibleMimeType(const String&amp; mimeType) const
</del><ins>+String PluginData::pluginFileForMimeType(const String&amp; mimeType) const
</ins><span class="cx"> {
</span><del>-    if (const PluginInfo* info = pluginInfoForWebVisibleMimeType(mimeType))
</del><ins>+    if (const PluginInfo* info = pluginInfoForMimeType(mimeType))
</ins><span class="cx">         return info-&gt;file;
</span><span class="cx">     return String();
</span><span class="cx"> }
</span><span class="lines">@@ -109,11 +82,11 @@
</span><span class="cx">     platformStrategies()-&gt;pluginStrategy()-&gt;refreshPlugins();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PluginData::initPlugins()
</del><ins>+void PluginData::initPlugins(const Page* page)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_plugins.isEmpty());
</span><del>-
-    platformStrategies()-&gt;pluginStrategy()-&gt;getPluginInfo(m_page, m_plugins);
</del><ins>+    
+    platformStrategies()-&gt;pluginStrategy()-&gt;getPluginInfo(page, m_plugins);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsPluginDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/PluginData.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/PluginData.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/PluginData.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -29,24 +29,6 @@
</span><span class="cx"> class Page;
</span><span class="cx"> struct PluginInfo;
</span><span class="cx"> 
</span><del>-enum PluginLoadClientPolicy : uint8_t {
-    // No client-specific plug-in load policy has been defined. The plug-in should be visible in navigator.plugins and WebKit should synchronously
-    // ask the client whether the plug-in should be loaded.
-    PluginLoadClientPolicyUndefined = 0,
-
-    // The plug-in module should be blocked from being instantiated. The plug-in should be hidden in navigator.plugins.
-    PluginLoadClientPolicyBlock,
-
-    // WebKit should synchronously ask the client whether the plug-in should be loaded. The plug-in should be visible in navigator.plugins.
-    PluginLoadClientPolicyAsk,
-
-    // The plug-in module may be loaded if WebKit is not blocking it.
-    PluginLoadClientPolicyAllow,
-
-    // The plug-in module should be loaded irrespective of whether WebKit has asked it to be blocked.
-    PluginLoadClientPolicyAllowAlways,
-};
-
</del><span class="cx"> struct MimeClassInfo {
</span><span class="cx">     String type;
</span><span class="cx">     String desc;
</span><span class="lines">@@ -64,13 +46,6 @@
</span><span class="cx">     String desc;
</span><span class="cx">     Vector&lt;MimeClassInfo&gt; mimes;
</span><span class="cx">     bool isApplicationPlugin;
</span><del>-
-    PluginLoadClientPolicy clientLoadPolicy;
-
-#if PLATFORM(MAC)
-    String bundleIdentifier;
-    String versionString;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // FIXME: merge with PluginDatabase in the future
</span><span class="lines">@@ -79,35 +54,38 @@
</span><span class="cx">     static Ref&lt;PluginData&gt; create(const Page* page) { return adoptRef(*new PluginData(page)); }
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;PluginInfo&gt;&amp; plugins() const { return m_plugins; }
</span><del>-    Vector&lt;PluginInfo&gt; webVisiblePlugins() const;
-    WEBCORE_EXPORT void getWebVisibleMimesAndPluginIndices(Vector&lt;MimeClassInfo&gt;&amp;, Vector&lt;size_t&gt;&amp;) const;
</del><ins>+    const Vector&lt;MimeClassInfo&gt;&amp; mimes() const { return m_mimes; }
+    const Vector&lt;size_t&gt;&amp; mimePluginIndices() const { return m_mimePluginIndices; }
</ins><span class="cx"> 
</span><span class="cx">     enum AllowedPluginTypes {
</span><span class="cx">         AllPlugins,
</span><span class="cx">         OnlyApplicationPlugins
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT bool supportsWebVisibleMimeType(const String&amp; mimeType, const AllowedPluginTypes) const;
-    String pluginNameForWebVisibleMimeType(const String&amp; mimeType) const;
-    String pluginFileForWebVisibleMimeType(const String&amp; mimeType) const;
</del><ins>+    WEBCORE_EXPORT bool supportsMimeType(const String&amp; mimeType, const AllowedPluginTypes) const;
+    String pluginNameForMimeType(const String&amp; mimeType) const;
+    String pluginFileForMimeType(const String&amp; mimeType) const;
</ins><span class="cx"> 
</span><span class="cx">     static void refresh();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit PluginData(const Page*);
</span><del>-    void initPlugins();
-    const PluginInfo* pluginInfoForWebVisibleMimeType(const String&amp; mimeType) const;
</del><ins>+    void initPlugins(const Page*);
+    const PluginInfo* pluginInfoForMimeType(const String&amp; mimeType) const;
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx"> #if defined ENABLE_WEB_REPLAY &amp;&amp; ENABLE_WEB_REPLAY
</span><del>-    PluginData(Vector&lt;PluginInfo&gt; plugins)
</del><ins>+    PluginData(Vector&lt;PluginInfo&gt; plugins, Vector&lt;MimeClassInfo&gt; mimes, Vector&lt;size_t&gt; indices)
</ins><span class="cx">         : m_plugins(plugins)
</span><ins>+        , m_mimes(mimes)
+        , m_mimePluginIndices(indices)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    const Page* m_page;
</del><span class="cx">     Vector&lt;PluginInfo&gt; m_plugins;
</span><ins>+    Vector&lt;MimeClassInfo&gt; m_mimes;
+    Vector&lt;size_t&gt; m_mimePluginIndices;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsPluginStrategyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/PluginStrategy.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/PluginStrategy.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/plugins/PluginStrategy.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -36,11 +36,6 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual void refreshPlugins() = 0;
</span><span class="cx">     virtual void getPluginInfo(const Page*, Vector&lt;PluginInfo&gt;&amp;) = 0;
</span><del>-    virtual void getWebVisiblePluginInfo(const Page*, Vector&lt;PluginInfo&gt;&amp;) = 0;
-#if PLATFORM(MAC)
-    virtual void setPluginLoadClientPolicy(PluginLoadClientPolicy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString) = 0;
-    virtual void clearPluginClientPolicies() = 0;
-#endif
</del><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     virtual ~PluginStrategy() { }
</span></span></pre></div>
<a id="trunkSourceWebCorereplaySerializationMethodscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/replay/SerializationMethods.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/replay/SerializationMethods.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/replay/SerializationMethods.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -53,7 +53,6 @@
</span><span class="cx"> using WebCore::PlatformWheelEvent;
</span><span class="cx"> using WebCore::PlatformWheelEventGranularity;
</span><span class="cx"> using WebCore::PluginData;
</span><del>-using WebCore::PluginLoadClientPolicy;
</del><span class="cx"> using WebCore::PluginInfo;
</span><span class="cx"> using WebCore::SecurityOrigin;
</span><span class="cx"> using WebCore::URL;
</span><span class="lines">@@ -438,18 +437,23 @@
</span><span class="cx"> 
</span><span class="cx"> EncodedValue EncodingTraits&lt;PluginData&gt;::encodeValue(RefPtr&lt;PluginData&gt; input)
</span><span class="cx"> {
</span><del>-    // FIXME: This needs to work in terms of web-visible plug-ins.
</del><span class="cx">     EncodedValue encodedData = EncodedValue::createObject();
</span><span class="cx"> 
</span><ins>+    Vector&lt;uint32_t&gt; castedMimePluginIndices(input-&gt;mimePluginIndices().size());
+    for (uint32_t index : input-&gt;mimePluginIndices())
+        castedMimePluginIndices.append(WTF::safeCast&lt;uint32_t&gt;(index));
+
</ins><span class="cx">     ENCODE_TYPE_WITH_KEY(encodedData, Vector&lt;PluginInfo&gt;, plugins, input-&gt;plugins());
</span><ins>+    ENCODE_TYPE_WITH_KEY(encodedData, Vector&lt;MimeClassInfo&gt;, mimes, input-&gt;mimes());
+    ENCODE_TYPE_WITH_KEY(encodedData, Vector&lt;uint32_t&gt;, mimePluginIndices, castedMimePluginIndices);
</ins><span class="cx"> 
</span><span class="cx">     return encodedData;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class DeserializedPluginData : public PluginData {
</span><span class="cx"> public:
</span><del>-    DeserializedPluginData(Vector&lt;PluginInfo&gt; plugins)
-        : PluginData(plugins)
</del><ins>+    DeserializedPluginData(Vector&lt;PluginInfo&gt; plugins, Vector&lt;MimeClassInfo&gt; mimes, Vector&lt;size_t&gt; indices)
+        : PluginData(plugins, mimes, indices)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="lines">@@ -457,10 +461,15 @@
</span><span class="cx"> bool EncodingTraits&lt;PluginData&gt;::decodeValue(EncodedValue&amp; encodedData, RefPtr&lt;PluginData&gt;&amp; input)
</span><span class="cx"> {
</span><span class="cx">     DECODE_TYPE_WITH_KEY(encodedData, Vector&lt;PluginInfo&gt;, plugins);
</span><ins>+    DECODE_TYPE_WITH_KEY(encodedData, Vector&lt;MimeClassInfo&gt;, mimes);
+    DECODE_TYPE_WITH_KEY(encodedData, Vector&lt;uint32_t&gt;, mimePluginIndices);
</ins><span class="cx"> 
</span><del>-    // FIXME: This needs to work in terms of web-visible plug-ins.
-    input = adoptRef(new DeserializedPluginData(plugins));
</del><ins>+    Vector&lt;size_t&gt; castedMimePluginIndices(mimePluginIndices.size());
+    for (uint32_t index : mimePluginIndices)
+        castedMimePluginIndices.append(WTF::safeCast&lt;size_t&gt;(index));
</ins><span class="cx"> 
</span><ins>+    input = adoptRef(new DeserializedPluginData(plugins, mimes, castedMimePluginIndices));
+
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -474,11 +483,6 @@
</span><span class="cx">     ENCODE_TYPE_WITH_KEY(encodedData, String, desc, input.desc);
</span><span class="cx">     ENCODE_TYPE_WITH_KEY(encodedData, Vector&lt;MimeClassInfo&gt;, mimes, input.mimes);
</span><span class="cx">     ENCODE_TYPE_WITH_KEY(encodedData, bool, isApplicationPlugin, input.isApplicationPlugin);
</span><del>-    ENCODE_TYPE_WITH_KEY(encodedData, PluginLoadClientPolicy, clientLoadPolicy, static_cast&lt;PluginLoadClientPolicy&gt;(input.clientLoadPolicy));
-#if PLATFORM(MAC)
-    ENCODE_TYPE_WITH_KEY(encodedData, String, bundleIdentifier, input.bundleIdentifier);
-    ENCODE_TYPE_WITH_KEY(encodedData, String, versionString, input.versionString);
-#endif
</del><span class="cx"> 
</span><span class="cx">     return encodedData;
</span><span class="cx"> }
</span><span class="lines">@@ -493,11 +497,6 @@
</span><span class="cx">     DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, String, desc, info.desc);
</span><span class="cx">     DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, Vector&lt;MimeClassInfo&gt;, mimes, info.mimes);
</span><span class="cx">     DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, bool, isApplicationPlugin, info.isApplicationPlugin);
</span><del>-    DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, PluginLoadClientPolicy, clientLoadPolicy, info.clientLoadPolicy);
-#if PLATFORM(MAC)
-    DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, String, bundleIdentifier, input.bundleIdentifier);
-    DECODE_TYPE_WITH_KEY_TO_LVALUE(encodedData, String, versionString, input.versionString);
-#endif
</del><span class="cx"> 
</span><span class="cx">     input = info;
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCorereplayWebInputsjson"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/replay/WebInputs.json (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/replay/WebInputs.json        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebCore/replay/WebInputs.json        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -67,13 +67,6 @@
</span><span class="cx">                 &quot;header&quot;: &quot;plugins/PluginData.h&quot;
</span><span class="cx">             },
</span><span class="cx">             {
</span><del>-                &quot;name&quot;: &quot;PluginLoadClientPolicy&quot;, &quot;mode&quot;: &quot;SCALAR&quot;, &quot;storage&quot;: &quot;uint8_t&quot;,
-                &quot;flags&quot;: [&quot;ENUM&quot;],
-                &quot;values&quot;: [&quot;PluginLoadClientPolicyUndefined&quot;, &quot;PluginLoadClientPolicyBlock&quot;, &quot;PluginLoadClientPolicyAsk&quot;, &quot;PluginLoadClientPolicyAllow&quot;, &quot;PluginLoadClientPolicyAllowAlways&quot;],
-                &quot;header&quot;: &quot;plugins/PluginData.h&quot;
-            },
-
-            {
</del><span class="cx">                 &quot;name&quot;: &quot;ScrollDirection&quot;, &quot;mode&quot;: &quot;SCALAR&quot;, &quot;storage&quot;: &quot;uint8_t&quot;,
</span><span class="cx">                 &quot;flags&quot;: [&quot;ENUM&quot;],
</span><span class="cx">                 &quot;values&quot;: [&quot;ScrollUp&quot;, &quot;ScrollDown&quot;, &quot;ScrollLeft&quot;, &quot;ScrollRight&quot;],
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-03-13  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r181483.
+        https://bugs.webkit.org/show_bug.cgi?id=142688
+
+        Caused use-after-free on many tests (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Allow clients to selectively disable plug-ins&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=142506
+        http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Enable WIRELESS_PLAYBACK_TARGET
</span></span></pre></div>
<a id="trunkSourceWebKitmacPluginsWebBasePluginPackagemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -249,11 +249,6 @@
</span><span class="cx">     pluginInfo.desc = description;
</span><span class="cx"> 
</span><span class="cx">     pluginInfo.isApplicationPlugin = false;
</span><del>-    pluginInfo.clientLoadPolicy = PluginLoadClientPolicyUndefined;
-#if PLATFORM(MAC)
-    pluginInfo.bundleIdentifier = self.bundleIdentifier;
-    pluginInfo.versionString = self.bundleVersion;
-#endif
</del><span class="cx"> 
</span><span class="cx">     return YES;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitmacPluginsWebNetscapePluginPackagemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Plugins/WebNetscapePluginPackage.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Plugins/WebNetscapePluginPackage.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/Plugins/WebNetscapePluginPackage.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -146,12 +146,7 @@
</span><span class="cx">     pluginInfo.name = theName;
</span><span class="cx"> 
</span><span class="cx">     pluginInfo.isApplicationPlugin = false;
</span><del>-    pluginInfo.clientLoadPolicy = PluginLoadClientPolicyUndefined;
-#if PLATFORM(MAC)
-    pluginInfo.bundleIdentifier = self.bundleIdentifier;
-    pluginInfo.versionString = self.bundleVersion;
-#endif
-
</del><ins>+    
</ins><span class="cx">     [self closeResourceFile:resRef];
</span><span class="cx">     
</span><span class="cx">     return YES;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -62,11 +62,6 @@
</span><span class="cx">     // WebCore::PluginStrategy
</span><span class="cx">     virtual void refreshPlugins() override;
</span><span class="cx">     virtual void getPluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;) override;
</span><del>-    virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;) override;
-#if PLATFORM(MAC)
-    virtual void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String&amp;, const String&amp;, const String&amp;) override;
-    virtual void clearPluginClientPolicies() override;
-#endif
</del><span class="cx"> 
</span><span class="cx">     // WebCore::LoaderStrategy
</span><span class="cx">     // - Using default implementation.
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -128,21 +128,6 @@
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPlatformStrategies::getWebVisiblePluginInfo(const Page* page, Vector&lt;PluginInfo&gt;&amp; plugins)
-{
-    getPluginInfo(page, plugins);
-}
-
-#if PLATFORM(MAC)
-void WebPlatformStrategies::setPluginLoadClientPolicy(PluginLoadClientPolicy, const String&amp;, const String&amp;, const String&amp;)
-{
-}
-
-void WebPlatformStrategies::clearPluginClientPolicies()
-{
-}
-#endif
-
</del><span class="cx"> void WebPlatformStrategies::getTypes(Vector&lt;String&gt;&amp; types, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     PlatformPasteboard(pasteboardName).getTypes(types);
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -979,8 +979,8 @@
</span><span class="cx"> 
</span><span class="cx">     if (WebCore::DOMImplementation::isTextMIMEType(mimeType)
</span><span class="cx">         || Image::supportsType(mimeType)
</span><del>-        || (pluginData &amp;&amp; pluginData-&gt;supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; frame-&gt;loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
-        || (pluginData &amp;&amp; pluginData-&gt;supportsWebVisibleMimeType(mimeType, PluginData::OnlyApplicationPlugins)))
</del><ins>+        || (pluginData &amp;&amp; pluginData-&gt;supportsMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; frame-&gt;loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
+        || (pluginData &amp;&amp; pluginData-&gt;supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins)))
</ins><span class="cx">         return NO;
</span><span class="cx"> 
</span><span class="cx">     return YES;
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/win/ChangeLog        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-03-13  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r181483.
+        https://bugs.webkit.org/show_bug.cgi?id=142688
+
+        Caused use-after-free on many tests (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Allow clients to selectively disable plug-ins&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=142506
+        http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-10  Conrad Shultz  &lt;conrad_shultz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Allow clients to selectively disable plug-ins
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -134,8 +134,3 @@
</span><span class="cx">         outPlugins[i] = info;
</span><span class="cx">     }
</span><span class="cx"> }
</span><del>-
-void WebPlatformStrategies::getWebVisiblePluginInfo(const Page* page, Vector&lt;PluginInfo&gt;&amp; plugins)
-{
-    getPluginInfo(page, plugins);
-}
</del></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx">     // WebCore::PluginStrategy
</span><span class="cx">     virtual void refreshPlugins();
</span><span class="cx">     virtual void getPluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;);
</span><del>-    virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;);
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> #endif // WebPlatformStrategies_h
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit/win/WebView.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -2629,8 +2629,8 @@
</span><span class="cx">         || MIMETypeRegistry::isSupportedMediaMIMEType(mimeType);
</span><span class="cx"> 
</span><span class="cx">     if (!canShow &amp;&amp; m_page) {
</span><del>-        canShow = (m_page-&gt;pluginData().supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; allowPlugins)
-            || m_page-&gt;pluginData().supportsWebVisibleMimeType(mimeType, PluginData::OnlyApplicationPlugins);
</del><ins>+        canShow = (m_page-&gt;pluginData().supportsMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; allowPlugins)
+            || m_page-&gt;pluginData().supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!canShow)
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/ChangeLog        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-03-13  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r181483.
+        https://bugs.webkit.org/show_bug.cgi?id=142688
+
+        Caused use-after-free on many tests (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        &quot;Allow clients to selectively disable plug-ins&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=142506
+        http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Enable WIRELESS_PLAYBACK_TARGET
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedPluginsNetscapemacNetscapePluginModuleMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -399,12 +399,7 @@
</span><span class="cx">         plugin.info.desc = plugin.info.file;
</span><span class="cx"> 
</span><span class="cx">     plugin.info.isApplicationPlugin = false;
</span><del>-    plugin.info.clientLoadPolicy = PluginLoadClientPolicyUndefined;
-#if PLATFORM(MAC)
-    plugin.info.bundleIdentifier = plugin.bundleIdentifier;
-    plugin.info.versionString = plugin.versionString;
-#endif
-
</del><ins>+    
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebCoreArgumentCoderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -566,18 +566,9 @@
</span><span class="cx"> 
</span><span class="cx"> void ArgumentCoder&lt;PluginInfo&gt;::encode(ArgumentEncoder&amp; encoder, const PluginInfo&amp; pluginInfo)
</span><span class="cx"> {
</span><del>-    encoder &lt;&lt; pluginInfo.name;
-    encoder &lt;&lt; pluginInfo.file;
-    encoder &lt;&lt; pluginInfo.desc;
-    encoder &lt;&lt; pluginInfo.mimes;
-    encoder &lt;&lt; pluginInfo.isApplicationPlugin;
-    encoder.encodeEnum(pluginInfo.clientLoadPolicy);
-#if PLATFORM(MAC)
-    encoder &lt;&lt; pluginInfo.bundleIdentifier;
-    encoder &lt;&lt; pluginInfo.versionString;
-#endif
</del><ins>+    encoder &lt;&lt; pluginInfo.name &lt;&lt; pluginInfo.file &lt;&lt; pluginInfo.desc &lt;&lt; pluginInfo.mimes &lt;&lt; pluginInfo.isApplicationPlugin;
</ins><span class="cx"> }
</span><del>-
</del><ins>+    
</ins><span class="cx"> bool ArgumentCoder&lt;PluginInfo&gt;::decode(ArgumentDecoder&amp; decoder, PluginInfo&amp; pluginInfo)
</span><span class="cx"> {
</span><span class="cx">     if (!decoder.decode(pluginInfo.name))
</span><span class="lines">@@ -590,15 +581,6 @@
</span><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decode(pluginInfo.isApplicationPlugin))
</span><span class="cx">         return false;
</span><del>-    PluginLoadClientPolicy clientLoadPolicy;
-    if (!decoder.decodeEnum(clientLoadPolicy))
-        return false;
-#if PLATFORM(MAC)
-    if (!decoder.decode(pluginInfo.bundleIdentifier))
-        return false;
-    if (!decoder.decode(pluginInfo.versionString))
-        return false;
-#endif
</del><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebProcessCreationParameterscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -144,10 +144,6 @@
</span><span class="cx">     encoder &lt;&lt; hasSelectionServices;
</span><span class="cx">     encoder &lt;&lt; hasRichContentServices;
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    encoder &lt;&lt; pluginLoadClientPolicies;
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder&amp; decoder, WebProcessCreationParameters&amp; parameters)
</span><span class="lines">@@ -306,11 +302,6 @@
</span><span class="cx">         return false;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(NETSCAPE_PLUGIN_API)
-    if (!decoder.decode(parameters.pluginLoadClientPolicies))
-        return false;
-#endif
-
</del><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebProcessCreationParametersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -167,10 +167,6 @@
</span><span class="cx">     bool hasSelectionServices;
</span><span class="cx">     bool hasRichContentServices;
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    HashMap&lt;String, HashMap&lt;String, HashMap&lt;String, uint8_t&gt;&gt;&gt; pluginLoadClientPolicies;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKAPICasth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> #include &quot;WebGrammarDetail.h&quot;
</span><span class="cx"> #include &lt;WebCore/Credential.h&gt;
</span><span class="cx"> #include &lt;WebCore/FrameLoaderTypes.h&gt;
</span><del>-#include &lt;WebCore/PluginData.h&gt;
</del><span class="cx"> #include &lt;WebCore/ProtectionSpace.h&gt;
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -483,25 +482,6 @@
</span><span class="cx">     return kWKPluginLoadPolicyBlocked;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline WKPluginLoadClientPolicy toWKPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy PluginLoadClientPolicy)
-{
-    switch (PluginLoadClientPolicy) {
-    case WebCore::PluginLoadClientPolicyUndefined:
-        return kWKPluginLoadClientPolicyUndefined;
-    case WebCore::PluginLoadClientPolicyBlock:
-        return kWKPluginLoadClientPolicyBlock;
-    case WebCore::PluginLoadClientPolicyAsk:
-        return kWKPluginLoadClientPolicyAsk;
-    case WebCore::PluginLoadClientPolicyAllow:
-        return kWKPluginLoadClientPolicyAllow;
-    case WebCore::PluginLoadClientPolicyAllowAlways:
-        return kWKPluginLoadClientPolicyAllowAlways;
-    }
-
-    ASSERT_NOT_REACHED();
-    return kWKPluginLoadClientPolicyBlock;
-}
-
</del><span class="cx"> inline PluginModuleLoadPolicy toPluginModuleLoadPolicy(WKPluginLoadPolicy pluginLoadPolicy)
</span><span class="cx"> {
</span><span class="cx">     switch (pluginLoadPolicy) {
</span><span class="lines">@@ -517,25 +497,6 @@
</span><span class="cx">     return PluginModuleBlocked;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline WebCore::PluginLoadClientPolicy toPluginLoadClientPolicy(WKPluginLoadClientPolicy pluginLoadClientPolicy)
-{
-    switch (pluginLoadClientPolicy) {
-    case kWKPluginLoadClientPolicyUndefined:
-        return WebCore::PluginLoadClientPolicyUndefined;
-    case kWKPluginLoadClientPolicyBlock:
-        return WebCore::PluginLoadClientPolicyBlock;
-    case kWKPluginLoadClientPolicyAsk:
-        return WebCore::PluginLoadClientPolicyAsk;
-    case kWKPluginLoadClientPolicyAllow:
-        return WebCore::PluginLoadClientPolicyAllow;
-    case kWKPluginLoadClientPolicyAllowAlways:
-        return WebCore::PluginLoadClientPolicyAllowAlways;
-    }
-
-    ASSERT_NOT_REACHED();
-    return WebCore::PluginLoadClientPolicyBlock;
-}
-
</del><span class="cx"> inline WebCore::WebGLLoadPolicy toWebGLLoadPolicy(WKWebGLLoadPolicy webGLLoadPolicy)
</span><span class="cx"> {
</span><span class="cx">     switch (webGLLoadPolicy) {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPluginLoadPolicyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -40,14 +40,6 @@
</span><span class="cx"> };
</span><span class="cx"> typedef uint32_t WKPluginLoadPolicy;
</span><span class="cx"> 
</span><del>-enum WKPluginLoadClientPolicy {
-    kWKPluginLoadClientPolicyUndefined = 0,
-    kWKPluginLoadClientPolicyBlock,
-    kWKPluginLoadClientPolicyAsk,
-    kWKPluginLoadClientPolicyAllow,
-    kWKPluginLoadClientPolicyAllowAlways,
-};
-
</del><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define WKContextPrivateMac_h
</span><span class="cx"> 
</span><span class="cx"> #include &lt;WebKit/WKBase.h&gt;
</span><del>-#include &lt;WebKit/WKPluginLoadPolicy.h&gt;
</del><span class="cx"> 
</span><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> extern &quot;C&quot; {
</span><span class="lines">@@ -38,9 +37,6 @@
</span><span class="cx"> 
</span><span class="cx"> WK_EXPORT bool WKContextIsPlugInUpdateAvailable(WKContextRef context, WKStringRef plugInBundleIdentifier);
</span><span class="cx"> 
</span><del>-WK_EXPORT void WKContextSetPluginLoadClientPolicy(WKContextRef context, WKPluginLoadClientPolicy policy, WKStringRef host, WKStringRef bundleIdentifier, WKStringRef versionString);
-WK_EXPORT void WKContextClearPluginClientPolicies(WKContextRef context);
-
</del><span class="cx"> WK_EXPORT WKDictionaryRef WKContextCopyPlugInInfoForBundleIdentifier(WKContextRef context, WKStringRef plugInBundleIdentifier);
</span><span class="cx"> 
</span><span class="cx"> typedef void (^WKContextGetInfoForInstalledPlugInsBlock)(WKArrayRef, WKErrorRef);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -52,20 +52,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WKContextSetPluginLoadClientPolicy(WKContextRef contextRef, WKPluginLoadClientPolicy policy, WKStringRef host, WKStringRef bundleIdentifier, WKStringRef versionString)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    toImpl(contextRef)-&gt;setPluginLoadClientPolicy(toPluginLoadClientPolicy(policy), toWTFString(host), toWTFString(bundleIdentifier), toWTFString(versionString));
-#endif
-}
-
-void WKContextClearPluginClientPolicies(WKContextRef contextRef)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    toImpl(contextRef)-&gt;clearPluginClientPolicies();
-#endif
-}
-
</del><span class="cx"> WKDictionaryRef WKContextCopyPlugInInfoForBundleIdentifier(WKContextRef contextRef, WKStringRef plugInBundleIdentifierRef)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -683,10 +683,6 @@
</span><span class="cx">     serviceController.refreshExistingServices();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(NETSCAPE_PLUGIN_API)
-    parameters.pluginLoadClientPolicies = m_pluginLoadClientPolicies;
-#endif
-
</del><span class="cx"> #if OS(LINUX)
</span><span class="cx">     parameters.shouldEnableMemoryPressureReliefLogging = true;
</span><span class="cx"> #endif
</span><span class="lines">@@ -1422,34 +1418,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_client.plugInInformationBecameAvailable(this, API::Array::create(WTF::move(plugins)).get());
</span><span class="cx"> }
</span><del>-
-void WebProcessPool::setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy policy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    HashMap&lt;String, HashMap&lt;String, uint8_t&gt;&gt; policiesByIdentifier;
-    if (m_pluginLoadClientPolicies.contains(host))
-        policiesByIdentifier = m_pluginLoadClientPolicies.get(host);
-
-    HashMap&lt;String, uint8_t&gt; versionsToPolicies;
-    if (policiesByIdentifier.contains(bundleIdentifier))
-        versionsToPolicies = policiesByIdentifier.get(bundleIdentifier);
-
-    versionsToPolicies.set(versionString, policy);
-    policiesByIdentifier.set(bundleIdentifier, versionsToPolicies);
-    m_pluginLoadClientPolicies.set(host, policiesByIdentifier);
</del><span class="cx"> #endif
</span><del>-
-    sendToAllProcesses(Messages::WebProcess::SetPluginLoadClientPolicy(policy, host, bundleIdentifier, versionString));
-}
-
-void WebProcessPool::clearPluginClientPolicies()
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    m_pluginLoadClientPolicies.clear();
-#endif
-    sendToAllProcesses(Messages::WebProcess::ClearPluginClientPolicies());
-}
-#endif
</del><span class="cx">     
</span><span class="cx"> void WebProcessPool::setMemoryCacheDisabled(bool disabled)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -183,9 +183,6 @@
</span><span class="cx">     void setAdditionalPluginsDirectory(const String&amp;);
</span><span class="cx"> 
</span><span class="cx">     PluginInfoStore&amp; pluginInfoStore() { return m_pluginInfoStore; }
</span><del>-
-    void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString);
-    void clearPluginClientPolicies();
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="lines">@@ -543,10 +540,6 @@
</span><span class="cx"> #if ENABLE(CONTENT_EXTENSIONS)
</span><span class="cx">     HashMap&lt;String, String&gt; m_encodedContentExtensions;
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    HashMap&lt;String, HashMap&lt;String, HashMap&lt;String, uint8_t&gt;&gt;&gt; m_pluginLoadClientPolicies;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -539,7 +539,6 @@
</span><span class="cx">     PluginInfo info;
</span><span class="cx">     info.name = builtInPDFPluginName();
</span><span class="cx">     info.isApplicationPlugin = true;
</span><del>-    info.clientLoadPolicy = PluginLoadClientPolicyUndefined;
</del><span class="cx"> 
</span><span class="cx">     MimeClassInfo pdfMimeClassInfo;
</span><span class="cx">     pdfMimeClassInfo.type = &quot;application/pdf&quot;;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1447,11 +1447,8 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(extension.lower() == extension);
</span><span class="cx"> 
</span><del>-    Vector&lt;MimeClassInfo&gt; mimes;
-    Vector&lt;size_t&gt; mimePluginIndices;
-    pluginData.getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-    for (size_t i = 0; i &lt; mimes.size(); ++i) {
-        const MimeClassInfo&amp; mimeClassInfo = mimes[i];
</del><ins>+    for (size_t i = 0; i &lt; pluginData.mimes().size(); ++i) {
+        const MimeClassInfo&amp; mimeClassInfo = pluginData.mimes()[i];
</ins><span class="cx"> 
</span><span class="cx">         if (mimeClassInfo.extensions.contains(extension))
</span><span class="cx">             return true;
</span><span class="lines">@@ -1486,9 +1483,9 @@
</span><span class="cx">     bool plugInSupportsMIMEType = false;
</span><span class="cx">     if (WebPage* webPage = m_frame-&gt;page()) {
</span><span class="cx">         const PluginData&amp; pluginData = webPage-&gt;corePage()-&gt;pluginData();
</span><del>-        if (pluginData.supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; webFrame()-&gt;coreFrame()-&gt;loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</del><ins>+        if (pluginData.supportsMimeType(mimeType, PluginData::AllPlugins) &amp;&amp; webFrame()-&gt;coreFrame()-&gt;loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</ins><span class="cx">             plugInSupportsMIMEType = true;
</span><del>-        else if (pluginData.supportsWebVisibleMimeType(mimeType, PluginData::OnlyApplicationPlugins))
</del><ins>+        else if (pluginData.supportsMimeType(mimeType, PluginData::OnlyApplicationPlugins))
</ins><span class="cx">             plugInSupportsMIMEType = true;
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2010, 2011, 2012, 2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -44,7 +44,6 @@
</span><span class="cx"> #include &quot;WebProcess.h&quot;
</span><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &lt;WebCore/Color.h&gt;
</span><del>-#include &lt;WebCore/DocumentLoader.h&gt;
</del><span class="cx"> #include &lt;WebCore/IDBFactoryBackendInterface.h&gt;
</span><span class="cx"> #include &lt;WebCore/LoaderStrategy.h&gt;
</span><span class="cx"> #include &lt;WebCore/MainFrame.h&gt;
</span><span class="lines">@@ -267,8 +266,7 @@
</span><span class="cx"> void WebPlatformStrategies::getPluginInfo(const WebCore::Page* page, Vector&lt;WebCore::PluginInfo&gt;&amp; plugins)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    ASSERT_ARG(page, page);
-    populatePluginCache(*page);
</del><ins>+    populatePluginCache();
</ins><span class="cx"> 
</span><span class="cx">     if (page-&gt;mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin)) {
</span><span class="cx">         plugins = m_cachedPlugins;
</span><span class="lines">@@ -282,104 +280,21 @@
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPlatformStrategies::getWebVisiblePluginInfo(const Page* page, Vector&lt;PluginInfo&gt;&amp; plugins)
-{
-    ASSERT_ARG(page, page);
-    ASSERT_ARG(plugins, plugins.isEmpty());
-
-    getPluginInfo(page, plugins);
-
-#if PLATFORM(MAC)
-    for (int32_t i = plugins.size() - 1; i &gt;= 0; --i) {
-        PluginInfo&amp; info = plugins.at(i);
-        PluginLoadClientPolicy clientPolicy = info.clientLoadPolicy;
-        // Allow built-in plugins. Also tentatively allow plugins that the client might later selectively permit.
-        if (info.isApplicationPlugin || clientPolicy == PluginLoadClientPolicyAsk)
-            continue;
-
-        if (clientPolicy == PluginLoadClientPolicyBlock)
-            plugins.remove(i);
-    }
-#endif
-}
-
-#if PLATFORM(MAC)
-void WebPlatformStrategies::setPluginLoadClientPolicy(PluginLoadClientPolicy clientPolicy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString)
-{
-    String hostToSet = host.isNull() || !host.length() ? &quot;*&quot; : host;
-    String bundleIdentifierToSet = bundleIdentifier.isNull() || !bundleIdentifier.length() ? &quot;*&quot; : bundleIdentifier;
-    String versionStringToSet = versionString.isNull() || !versionString.length() ? &quot;*&quot; : versionString;
-
-    PluginPolicyMapsByIdentifier policiesByIdentifier;
-    if (m_hostsToPluginIdentifierData.contains(hostToSet))
-        policiesByIdentifier = m_hostsToPluginIdentifierData.get(hostToSet);
-
-    PluginLoadClientPoliciesByBundleVersion versionsToPolicies;
-    if (policiesByIdentifier.contains(bundleIdentifierToSet))
-        versionsToPolicies = policiesByIdentifier.get(bundleIdentifierToSet);
-
-    versionsToPolicies.set(versionStringToSet, clientPolicy);
-    policiesByIdentifier.set(bundleIdentifierToSet, versionsToPolicies);
-    m_hostsToPluginIdentifierData.set(hostToSet, policiesByIdentifier);
-}
-
-void WebPlatformStrategies::clearPluginClientPolicies()
-{
-    m_hostsToPluginIdentifierData.clear();
-}
-
-#endif
-
</del><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-#if PLATFORM(MAC)
-bool WebPlatformStrategies::pluginLoadClientPolicyForHost(const String&amp; host, const PluginInfo&amp; info, PluginLoadClientPolicy&amp; policy) const
</del><ins>+void WebPlatformStrategies::populatePluginCache()
</ins><span class="cx"> {
</span><del>-    String hostToLookUp = host;
-    if (!m_hostsToPluginIdentifierData.contains(hostToLookUp))
-        hostToLookUp = &quot;*&quot;;
-    if (!m_hostsToPluginIdentifierData.contains(hostToLookUp))
-        return false;
</del><ins>+    if (m_pluginCacheIsPopulated)
+        return;
</ins><span class="cx"> 
</span><del>-    PluginPolicyMapsByIdentifier policiesByIdentifier = m_hostsToPluginIdentifierData.get(hostToLookUp);
-    String identifier = info.bundleIdentifier;
-    if (!identifier || !policiesByIdentifier.contains(identifier))
-        identifier = &quot;*&quot;;
-    if (!policiesByIdentifier.contains(identifier))
-        return false;
</del><ins>+    ASSERT(m_cachedPlugins.isEmpty());
+    
+    // FIXME: Should we do something in case of error here?
+    if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebProcessProxy::GetPlugins(m_shouldRefreshPlugins), Messages::WebProcessProxy::GetPlugins::Reply(m_cachedPlugins, m_cachedApplicationPlugins), 0))
+        return;
</ins><span class="cx"> 
</span><del>-    PluginLoadClientPoliciesByBundleVersion versionsToPolicies = policiesByIdentifier.get(identifier);
-    String version = info.versionString;
-    if (!version || !versionsToPolicies.contains(version))
-        version = &quot;*&quot;;
-    if (!versionsToPolicies.contains(version))
-        return false;
-
-    policy = versionsToPolicies.get(version);
-    return true;
</del><ins>+    m_shouldRefreshPlugins = false;
+    m_pluginCacheIsPopulated = true;
</ins><span class="cx"> }
</span><del>-#endif // PLATFORM(MAC)
-
-void WebPlatformStrategies::populatePluginCache(const WebCore::Page&amp; page)
-{
-    if (!m_pluginCacheIsPopulated) {
-        if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebProcessProxy::GetPlugins(m_shouldRefreshPlugins), Messages::WebProcessProxy::GetPlugins::Reply(m_cachedPlugins, m_cachedApplicationPlugins), 0))
-            return;
-
-        m_shouldRefreshPlugins = false;
-        m_pluginCacheIsPopulated = true;
-    }
-
-#if PLATFORM(MAC)
-    String pageHost = page.mainFrame().loader().documentLoader()-&gt;responseURL().host();
-    for (PluginInfo&amp; info : m_cachedPlugins) {
-        PluginLoadClientPolicy clientPolicy;
-        if (pluginLoadClientPolicyForHost(pageHost, info, clientPolicy))
-            info.clientLoadPolicy = clientPolicy;
-    }
-#else
-    UNUSED_PARAM(page);
-#endif // not PLATFORM(MAC)
-}
</del><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &lt;WebCore/PasteboardStrategy.h&gt;
</span><span class="cx"> #include &lt;WebCore/PlatformStrategies.h&gt;
</span><span class="cx"> #include &lt;WebCore/PluginStrategy.h&gt;
</span><del>-#include &lt;wtf/HashMap.h&gt;
</del><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -68,16 +67,7 @@
</span><span class="cx">     // WebCore::PluginStrategy
</span><span class="cx">     virtual void refreshPlugins() override;
</span><span class="cx">     virtual void getPluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;) override;
</span><del>-    virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector&lt;WebCore::PluginInfo&gt;&amp;) override;
</del><span class="cx"> 
</span><del>-#if PLATFORM(MAC)
-    typedef HashMap&lt;String, WebCore::PluginLoadClientPolicy&gt; PluginLoadClientPoliciesByBundleVersion;
-    typedef HashMap&lt;String, PluginLoadClientPoliciesByBundleVersion&gt; PluginPolicyMapsByIdentifier;
-
-    virtual void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString) override;
-    virtual void clearPluginClientPolicies() override;
-#endif
-
</del><span class="cx">     // WebCore::PasteboardStrategy
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     virtual void writeToPasteboard(const WebCore::PasteboardWebContent&amp;) override;
</span><span class="lines">@@ -109,16 +99,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     // WebCore::PluginStrategy implementation.
</span><del>-    void populatePluginCache(const WebCore::Page&amp;);
</del><ins>+    void populatePluginCache();
</ins><span class="cx">     bool m_pluginCacheIsPopulated;
</span><span class="cx">     bool m_shouldRefreshPlugins;
</span><span class="cx">     Vector&lt;WebCore::PluginInfo&gt; m_cachedPlugins;
</span><span class="cx">     Vector&lt;WebCore::PluginInfo&gt; m_cachedApplicationPlugins;
</span><del>-
-#if PLATFORM(MAC)
-    HashMap&lt;String, PluginPolicyMapsByIdentifier&gt; m_hostsToPluginIdentifierData;
-    bool pluginLoadClientPolicyForHost(const String&amp;, const WebCore::PluginInfo&amp;, WebCore::PluginLoadClientPolicy&amp;) const;
-#endif // PLATFORM(MAC)
</del><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -4426,11 +4426,11 @@
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     const PluginData&amp; pluginData = m_page-&gt;pluginData();
</span><del>-    if (pluginData.supportsWebVisibleMimeType(MIMEType, PluginData::AllPlugins) &amp;&amp; corePage()-&gt;mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</del><ins>+    if (pluginData.supportsMimeType(MIMEType, PluginData::AllPlugins) &amp;&amp; corePage()-&gt;mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // We can use application plugins even if plugins aren't enabled.
</span><del>-    if (pluginData.supportsWebVisibleMimeType(MIMEType, PluginData::OnlyApplicationPlugins))
</del><ins>+    if (pluginData.supportsMimeType(MIMEType, PluginData::OnlyApplicationPlugins))
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -384,15 +384,6 @@
</span><span class="cx">         Inspector::RemoteInspector::singleton().setParentProcessInformation(presenterApplicationPid(), auditData);
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API) &amp;&amp; PLATFORM(MAC)
-    for (const auto&amp; hostKeyValue : parameters.pluginLoadClientPolicies) {
-        for (const auto&amp; bundleIdentifierKeyValue : hostKeyValue.value) {
-            for (const auto&amp; versionStringKeyValue : bundleIdentifierKeyValue.value)
-                platformStrategies()-&gt;pluginStrategy()-&gt;setPluginLoadClientPolicy(static_cast&lt;PluginLoadClientPolicy&gt;(versionStringKeyValue.value), hostKeyValue.key, bundleIdentifierKeyValue.key, versionStringKeyValue.key);
-        }
-    }
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="lines">@@ -871,20 +862,6 @@
</span><span class="cx">     parentProcessConnection()-&gt;send(Messages::WebProcessPool::PlugInDidReceiveUserInteraction(plugInOriginHash, sessionID), 0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebProcess::setPluginLoadClientPolicy(uint8_t policy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API) &amp;&amp; PLATFORM(MAC)
-    platformStrategies()-&gt;pluginStrategy()-&gt;setPluginLoadClientPolicy(static_cast&lt;PluginLoadClientPolicy&gt;(policy), host, bundleIdentifier, versionString);
-#endif
-}
-
-void WebProcess::clearPluginClientPolicies()
-{
-#if ENABLE(NETSCAPE_PLUGIN_API) &amp;&amp; PLATFORM(MAC)
-    platformStrategies()-&gt;pluginStrategy()-&gt;clearPluginClientPolicies();
-#endif
-}
-
</del><span class="cx"> static void fromCountedSetToHashMap(TypeCountSet* countedSet, HashMap&lt;String, uint64_t&gt;&amp; map)
</span><span class="cx"> {
</span><span class="cx">     TypeCountSet::const_iterator end = countedSet-&gt;end();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.h        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -123,8 +123,6 @@
</span><span class="cx">     bool shouldPlugInAutoStartFromOrigin(WebPage&amp;, const String&amp; pageOrigin, const String&amp; pluginOrigin, const String&amp; mimeType);
</span><span class="cx">     void plugInDidStartFromOrigin(const String&amp; pageOrigin, const String&amp; pluginOrigin, const String&amp; mimeType, WebCore::SessionID);
</span><span class="cx">     void plugInDidReceiveUserInteraction(const String&amp; pageOrigin, const String&amp; pluginOrigin, const String&amp; mimeType, WebCore::SessionID);
</span><del>-    void setPluginLoadClientPolicy(uint8_t policy, const String&amp; host, const String&amp; bundleIdentifier, const String&amp; versionString);
-    void clearPluginClientPolicies();
</del><span class="cx"> 
</span><span class="cx">     bool fullKeyboardAccessEnabled() const { return m_fullKeyboardAccessEnabled; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcessmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (181493 => 181494)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in        2015-03-14 01:44:54 UTC (rev 181493)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in        2015-03-14 02:50:28 UTC (rev 181494)
</span><span class="lines">@@ -56,8 +56,6 @@
</span><span class="cx">     DidAddPlugInAutoStartOriginHash(uint32_t hash, double expirationTime, WebCore::SessionID sessionID)
</span><span class="cx">     ResetPlugInAutoStartOriginDefaultHashes(HashMap&lt;uint32_t,double&gt; hashes)
</span><span class="cx">     ResetPlugInAutoStartOriginHashes(HashMap&lt;WebCore::SessionID, HashMap&lt;uint32_t,double&gt;&gt; hashes)
</span><del>-    SetPluginLoadClientPolicy(uint8_t policy, String host, String bundleIdentifier, String versionString)
-    ClearPluginClientPolicies()
</del><span class="cx"> 
</span><span class="cx">     void StartMemorySampler(WebKit::SandboxExtension::Handle sampleLogFileHandle, String sampleLogFilePath, double interval);
</span><span class="cx">     void StopMemorySampler();
</span></span></pre>
</div>
</div>

</body>
</html>