<!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:
"Allow clients to selectively disable plug-ins"
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 <commit-queue@webkit.org>
+
+ 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:
+
+ "Allow clients to selectively disable plug-ins"
+ https://bugs.webkit.org/show_bug.cgi?id=142506
+ http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13 Antti Koivisto <antti@apple.com>
</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) && pluginData && pluginData->supportsWebVisibleMimeType(type, allowedPluginTypes))
</del><ins>+ if (MIMETypeRegistry::isPDFOrPostScriptMIMEType(type) && pluginData && pluginData->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 != "text/plain" && ((pluginData && pluginData->supportsWebVisibleMimeType(type, allowedPluginTypes)) || (frame && frame->loader().client().shouldAlwaysUsePluginDocument(type))))
</del><ins>+ if (type != "text/plain" && ((pluginData && pluginData->supportsMimeType(type, allowedPluginTypes)) || (frame && frame->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& pluginData = page->pluginData();
</span><span class="cx">
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- pluginData.getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
- for (size_t i = 0; i < mimes.size(); ++i) {
- const MimeClassInfo& mimeClassInfo = mimes[i];
</del><ins>+ for (size_t i = 0; i < pluginData.mimes().size(); ++i) {
+ const MimeClassInfo& mimeClassInfo = pluginData.mimes()[i];
</ins><span class="cx"> for (size_t j = 0; j < 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->pluginData().pluginFileForWebVisibleMimeType(newMIMEType);
</del><ins>+ String pluginFile = page->pluginData().pluginFileForMimeType(newMIMEType);
</ins><span class="cx"> String description = !pluginFile ? newMIMEType : pluginFile;
</span><span class="cx">
</span><span class="cx"> DiagnosticLoggingClient& diagnosticLoggingClient = page->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() && (mimeType == "image/tiff" || mimeType == "image/tif" || mimeType == "image/x-tiff")) {
</span><del>- String pluginName = m_frame.page()->pluginData().pluginNameForWebVisibleMimeType(mimeType);
</del><ins>+ String pluginName = m_frame.page()->pluginData().pluginNameForMimeType(mimeType);
</ins><span class="cx"> if (!pluginName.isEmpty() && !pluginName.contains("QuickTime", 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 &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 &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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
- return mimes[m_index];
-}
-
</del><span class="cx"> PassRefPtr<DOMPlugin> DOMMimeType::enabledPlugin() const
</span><span class="cx"> {
</span><span class="cx"> if (!m_frame || !m_frame->page() || !m_frame->page()->mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</span><span class="cx"> return 0;
</span><span class="cx">
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- m_pluginData->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->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<DOMMimeType> create(PassRefPtr<PluginData> 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 &type() const;
</ins><span class="cx"> String suffixes() const;
</span><del>- String description() const;
</del><ins>+ const String &description() const;
</ins><span class="cx"> PassRefPtr<DOMPlugin> enabledPlugin() const;
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- MimeClassInfo mimeClassInfo() const;
</del><ins>+ const MimeClassInfo& mimeClassInfo() const { return m_pluginData->mimes()[m_index]; }
</ins><span class="cx">
</span><span class="cx"> DOMMimeType(PassRefPtr<PluginData>, Frame*, unsigned index);
</span><span class="cx"> RefPtr<PluginData> 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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- data->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
- return mimes.size();
</del><ins>+ return data->mimes().size();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<DOMMimeType> 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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- data->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
</del><ins>+ const Vector<MimeClassInfo>& mimes = data->mimes();
</ins><span class="cx"> if (index >= 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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- data->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+ const Vector<MimeClassInfo>& mimes = data->mimes();
</ins><span class="cx"> for (unsigned i = 0; i < 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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- data->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+ const Vector<MimeClassInfo>& mimes = data->mimes();
</ins><span class="cx"> for (unsigned i = 0; i < 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->webVisiblePlugins()[m_index];
-}
-
</del><span class="cx"> PassRefPtr<DOMMimeType> DOMPlugin::item(unsigned index)
</span><span class="cx"> {
</span><span class="cx"> if (index >= pluginInfo().mimes.size())
</span><span class="cx"> return 0;
</span><span class="cx">
</span><del>- MimeClassInfo mime = pluginInfo().mimes[index];
</del><ins>+ const MimeClassInfo& mime = pluginInfo().mimes[index];
</ins><span class="cx">
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+ const Vector<MimeClassInfo>& mimes = m_pluginData->mimes();
</ins><span class="cx"> for (unsigned i = 0; i < mimes.size(); ++i) {
</span><del>- if (mimes[i] == mime && mimePluginIndices[i] == m_index)
</del><ins>+ if (mimes[i] == mime && m_pluginData->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& propertyName)
</span><span class="cx"> {
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+ const Vector<MimeClassInfo>& mimes = m_pluginData->mimes();
</ins><span class="cx"> for (unsigned i = 0; i < 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<DOMMimeType> DOMPlugin::namedItem(const AtomicString& propertyName)
</span><span class="cx"> {
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- m_pluginData->getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
</del><ins>+ const Vector<MimeClassInfo>& mimes = m_pluginData->mimes();
</ins><span class="cx"> for (unsigned i = 0; i < 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<DOMMimeType> namedItem(const AtomicString& propertyName);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- PluginInfo pluginInfo() const;
</del><ins>+ const PluginInfo& pluginInfo() const { return m_pluginData->plugins()[m_index]; }
</ins><span class="cx">
</span><span class="cx"> DOMPlugin(PluginData*, Frame*, unsigned index);
</span><span class="cx"> RefPtr<PluginData> 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->webVisiblePlugins().size();
</del><ins>+ return data->plugins().size();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<DOMPlugin> 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<PluginInfo>& plugins = data->webVisiblePlugins();
</del><ins>+ const Vector<PluginInfo>& plugins = data->plugins();
</ins><span class="cx"> if (index >= 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<PluginInfo>& plugins = data->webVisiblePlugins();
</del><ins>+ const Vector<PluginInfo>& plugins = data->plugins();
</ins><span class="cx"> for (unsigned i = 0; i < 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<PluginInfo>& plugins = data->webVisiblePlugins();
</del><ins>+ const Vector<PluginInfo>& plugins = data->plugins();
</ins><span class="cx"> for (unsigned i = 0; i < 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<PluginInfo> PluginData::webVisiblePlugins() const
-{
- Vector<PluginInfo> plugins;
- platformStrategies()->pluginStrategy()->getWebVisiblePluginInfo(m_page, plugins);
- return plugins;
-}
-
-void PluginData::getWebVisibleMimesAndPluginIndices(Vector<MimeClassInfo>& mimes, Vector<size_t>& mimePluginIndices) const
-{
- ASSERT_ARG(mimes, mimes.isEmpty());
- ASSERT_ARG(mimePluginIndices, mimePluginIndices.isEmpty());
-
- const Vector<PluginInfo>& plugins = webVisiblePlugins();
- for (unsigned i = 0; i < plugins.size(); ++i) {
- const PluginInfo& plugin = plugins[i];
</del><ins>+ for (unsigned i = 0; i < m_plugins.size(); ++i) {
+ const PluginInfo& plugin = m_plugins[i];
</ins><span class="cx"> for (unsigned j = 0; j < 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& mimeType, const AllowedPluginTypes allowedPluginTypes) const
</del><ins>+bool PluginData::supportsMimeType(const String& mimeType, const AllowedPluginTypes allowedPluginTypes) const
</ins><span class="cx"> {
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- const Vector<PluginInfo>& plugins = webVisiblePlugins();
- getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
- for (unsigned i = 0; i < mimes.size(); ++i) {
- if (mimes[i].type == mimeType && (allowedPluginTypes == AllPlugins || plugins[mimePluginIndices[i]].isApplicationPlugin))
</del><ins>+ for (unsigned i = 0; i < m_mimes.size(); ++i) {
+ if (m_mimes[i].type == mimeType && (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& mimeType) const
</del><ins>+const PluginInfo* PluginData::pluginInfoForMimeType(const String& mimeType) const
</ins><span class="cx"> {
</span><del>- Vector<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- const Vector<PluginInfo>& plugins = webVisiblePlugins();
- getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
-
- for (unsigned i = 0; i < mimes.size(); ++i) {
- const MimeClassInfo& info = mimes[i];
-
</del><ins>+ for (unsigned i = 0; i < m_mimes.size(); ++i) {
+ const MimeClassInfo& info = m_mimes[i];
+
</ins><span class="cx"> if (info.type == mimeType)
</span><del>- return &plugins[mimePluginIndices[i]];
</del><ins>+ return &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& mimeType) const
</del><ins>+String PluginData::pluginNameForMimeType(const String& 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->name;
</span><span class="cx"> return String();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String PluginData::pluginFileForWebVisibleMimeType(const String& mimeType) const
</del><ins>+String PluginData::pluginFileForMimeType(const String& 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->file;
</span><span class="cx"> return String();
</span><span class="cx"> }
</span><span class="lines">@@ -109,11 +82,11 @@
</span><span class="cx"> platformStrategies()->pluginStrategy()->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()->pluginStrategy()->getPluginInfo(m_page, m_plugins);
</del><ins>+
+ platformStrategies()->pluginStrategy()->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<MimeClassInfo> 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<PluginData> create(const Page* page) { return adoptRef(*new PluginData(page)); }
</span><span class="cx">
</span><span class="cx"> const Vector<PluginInfo>& plugins() const { return m_plugins; }
</span><del>- Vector<PluginInfo> webVisiblePlugins() const;
- WEBCORE_EXPORT void getWebVisibleMimesAndPluginIndices(Vector<MimeClassInfo>&, Vector<size_t>&) const;
</del><ins>+ const Vector<MimeClassInfo>& mimes() const { return m_mimes; }
+ const Vector<size_t>& 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& mimeType, const AllowedPluginTypes) const;
- String pluginNameForWebVisibleMimeType(const String& mimeType) const;
- String pluginFileForWebVisibleMimeType(const String& mimeType) const;
</del><ins>+ WEBCORE_EXPORT bool supportsMimeType(const String& mimeType, const AllowedPluginTypes) const;
+ String pluginNameForMimeType(const String& mimeType) const;
+ String pluginFileForMimeType(const String& 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& mimeType) const;
</del><ins>+ void initPlugins(const Page*);
+ const PluginInfo* pluginInfoForMimeType(const String& mimeType) const;
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> #if defined ENABLE_WEB_REPLAY && ENABLE_WEB_REPLAY
</span><del>- PluginData(Vector<PluginInfo> plugins)
</del><ins>+ PluginData(Vector<PluginInfo> plugins, Vector<MimeClassInfo> mimes, Vector<size_t> 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<PluginInfo> m_plugins;
</span><ins>+ Vector<MimeClassInfo> m_mimes;
+ Vector<size_t> 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<PluginInfo>&) = 0;
</span><del>- virtual void getWebVisiblePluginInfo(const Page*, Vector<PluginInfo>&) = 0;
-#if PLATFORM(MAC)
- virtual void setPluginLoadClientPolicy(PluginLoadClientPolicy, const String& host, const String& bundleIdentifier, const String& 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<PluginData>::encodeValue(RefPtr<PluginData> 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<uint32_t> castedMimePluginIndices(input->mimePluginIndices().size());
+ for (uint32_t index : input->mimePluginIndices())
+ castedMimePluginIndices.append(WTF::safeCast<uint32_t>(index));
+
</ins><span class="cx"> ENCODE_TYPE_WITH_KEY(encodedData, Vector<PluginInfo>, plugins, input->plugins());
</span><ins>+ ENCODE_TYPE_WITH_KEY(encodedData, Vector<MimeClassInfo>, mimes, input->mimes());
+ ENCODE_TYPE_WITH_KEY(encodedData, Vector<uint32_t>, 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<PluginInfo> plugins)
- : PluginData(plugins)
</del><ins>+ DeserializedPluginData(Vector<PluginInfo> plugins, Vector<MimeClassInfo> mimes, Vector<size_t> 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<PluginData>::decodeValue(EncodedValue& encodedData, RefPtr<PluginData>& input)
</span><span class="cx"> {
</span><span class="cx"> DECODE_TYPE_WITH_KEY(encodedData, Vector<PluginInfo>, plugins);
</span><ins>+ DECODE_TYPE_WITH_KEY(encodedData, Vector<MimeClassInfo>, mimes);
+ DECODE_TYPE_WITH_KEY(encodedData, Vector<uint32_t>, 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<size_t> castedMimePluginIndices(mimePluginIndices.size());
+ for (uint32_t index : mimePluginIndices)
+ castedMimePluginIndices.append(WTF::safeCast<size_t>(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<MimeClassInfo>, 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<PluginLoadClientPolicy>(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<MimeClassInfo>, 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"> "header": "plugins/PluginData.h"
</span><span class="cx"> },
</span><span class="cx"> {
</span><del>- "name": "PluginLoadClientPolicy", "mode": "SCALAR", "storage": "uint8_t",
- "flags": ["ENUM"],
- "values": ["PluginLoadClientPolicyUndefined", "PluginLoadClientPolicyBlock", "PluginLoadClientPolicyAsk", "PluginLoadClientPolicyAllow", "PluginLoadClientPolicyAllowAlways"],
- "header": "plugins/PluginData.h"
- },
-
- {
</del><span class="cx"> "name": "ScrollDirection", "mode": "SCALAR", "storage": "uint8_t",
</span><span class="cx"> "flags": ["ENUM"],
</span><span class="cx"> "values": ["ScrollUp", "ScrollDown", "ScrollLeft", "ScrollRight"],
</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 <commit-queue@webkit.org>
+
+ 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:
+
+ "Allow clients to selectively disable plug-ins"
+ https://bugs.webkit.org/show_bug.cgi?id=142506
+ http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13 Eric Carlson <eric.carlson@apple.com>
</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<WebCore::PluginInfo>&) override;
</span><del>- virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&) override;
-#if PLATFORM(MAC)
- virtual void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String&, const String&, const String&) 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<PluginInfo>& plugins)
-{
- getPluginInfo(page, plugins);
-}
-
-#if PLATFORM(MAC)
-void WebPlatformStrategies::setPluginLoadClientPolicy(PluginLoadClientPolicy, const String&, const String&, const String&)
-{
-}
-
-void WebPlatformStrategies::clearPluginClientPolicies()
-{
-}
-#endif
-
</del><span class="cx"> void WebPlatformStrategies::getTypes(Vector<String>& types, const String& 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 && pluginData->supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) && frame->loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
- || (pluginData && pluginData->supportsWebVisibleMimeType(mimeType, PluginData::OnlyApplicationPlugins)))
</del><ins>+ || (pluginData && pluginData->supportsMimeType(mimeType, PluginData::AllPlugins) && frame->loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
+ || (pluginData && pluginData->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 <commit-queue@webkit.org>
+
+ 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:
+
+ "Allow clients to selectively disable plug-ins"
+ https://bugs.webkit.org/show_bug.cgi?id=142506
+ http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-10 Conrad Shultz <conrad_shultz@apple.com>
</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<PluginInfo>& 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<WebCore::PluginInfo>&);
</span><del>- virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&);
</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 && m_page) {
</span><del>- canShow = (m_page->pluginData().supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) && allowPlugins)
- || m_page->pluginData().supportsWebVisibleMimeType(mimeType, PluginData::OnlyApplicationPlugins);
</del><ins>+ canShow = (m_page->pluginData().supportsMimeType(mimeType, PluginData::AllPlugins) && allowPlugins)
+ || m_page->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 <commit-queue@webkit.org>
+
+ 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:
+
+ "Allow clients to selectively disable plug-ins"
+ https://bugs.webkit.org/show_bug.cgi?id=142506
+ http://trac.webkit.org/changeset/181483
+
</ins><span class="cx"> 2015-03-13 Eric Carlson <eric.carlson@apple.com>
</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<PluginInfo>::encode(ArgumentEncoder& encoder, const PluginInfo& pluginInfo)
</span><span class="cx"> {
</span><del>- encoder << pluginInfo.name;
- encoder << pluginInfo.file;
- encoder << pluginInfo.desc;
- encoder << pluginInfo.mimes;
- encoder << pluginInfo.isApplicationPlugin;
- encoder.encodeEnum(pluginInfo.clientLoadPolicy);
-#if PLATFORM(MAC)
- encoder << pluginInfo.bundleIdentifier;
- encoder << pluginInfo.versionString;
-#endif
</del><ins>+ encoder << pluginInfo.name << pluginInfo.file << pluginInfo.desc << pluginInfo.mimes << pluginInfo.isApplicationPlugin;
</ins><span class="cx"> }
</span><del>-
</del><ins>+
</ins><span class="cx"> bool ArgumentCoder<PluginInfo>::decode(ArgumentDecoder& decoder, PluginInfo& 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 << hasSelectionServices;
</span><span class="cx"> encoder << hasRichContentServices;
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API)
- encoder << pluginLoadClientPolicies;
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProcessCreationParameters& 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<String, HashMap<String, HashMap<String, uint8_t>>> 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 "WebGrammarDetail.h"
</span><span class="cx"> #include <WebCore/Credential.h>
</span><span class="cx"> #include <WebCore/FrameLoaderTypes.h>
</span><del>-#include <WebCore/PluginData.h>
</del><span class="cx"> #include <WebCore/ProtectionSpace.h>
</span><span class="cx"> #include <WebCore/Settings.h>
</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 <WebKit/WKBase.h>
</span><del>-#include <WebKit/WKPluginLoadPolicy.h>
</del><span class="cx">
</span><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> extern "C" {
</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)->setPluginLoadClientPolicy(toPluginLoadClientPolicy(policy), toWTFString(host), toWTFString(bundleIdentifier), toWTFString(versionString));
-#endif
-}
-
-void WKContextClearPluginClientPolicies(WKContextRef contextRef)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
- toImpl(contextRef)->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& host, const String& bundleIdentifier, const String& versionString)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API)
- HashMap<String, HashMap<String, uint8_t>> policiesByIdentifier;
- if (m_pluginLoadClientPolicies.contains(host))
- policiesByIdentifier = m_pluginLoadClientPolicies.get(host);
-
- HashMap<String, uint8_t> 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&);
</span><span class="cx">
</span><span class="cx"> PluginInfoStore& pluginInfoStore() { return m_pluginInfoStore; }
</span><del>-
- void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String& host, const String& bundleIdentifier, const String& 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<String, String> m_encodedContentExtensions;
</span><span class="cx"> #endif
</span><del>-
-#if ENABLE(NETSCAPE_PLUGIN_API)
- HashMap<String, HashMap<String, HashMap<String, uint8_t>>> m_pluginLoadClientPolicies;
-#endif
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> template<typename T>
</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 = "application/pdf";
</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<MimeClassInfo> mimes;
- Vector<size_t> mimePluginIndices;
- pluginData.getWebVisibleMimesAndPluginIndices(mimes, mimePluginIndices);
- for (size_t i = 0; i < mimes.size(); ++i) {
- const MimeClassInfo& mimeClassInfo = mimes[i];
</del><ins>+ for (size_t i = 0; i < pluginData.mimes().size(); ++i) {
+ const MimeClassInfo& 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->page()) {
</span><span class="cx"> const PluginData& pluginData = webPage->corePage()->pluginData();
</span><del>- if (pluginData.supportsWebVisibleMimeType(mimeType, PluginData::AllPlugins) && webFrame()->coreFrame()->loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</del><ins>+ if (pluginData.supportsMimeType(mimeType, PluginData::AllPlugins) && webFrame()->coreFrame()->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 "WebProcess.h"
</span><span class="cx"> #include "WebProcessProxyMessages.h"
</span><span class="cx"> #include <WebCore/Color.h>
</span><del>-#include <WebCore/DocumentLoader.h>
</del><span class="cx"> #include <WebCore/IDBFactoryBackendInterface.h>
</span><span class="cx"> #include <WebCore/LoaderStrategy.h>
</span><span class="cx"> #include <WebCore/MainFrame.h>
</span><span class="lines">@@ -267,8 +266,7 @@
</span><span class="cx"> void WebPlatformStrategies::getPluginInfo(const WebCore::Page* page, Vector<WebCore::PluginInfo>& 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->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<PluginInfo>& plugins)
-{
- ASSERT_ARG(page, page);
- ASSERT_ARG(plugins, plugins.isEmpty());
-
- getPluginInfo(page, plugins);
-
-#if PLATFORM(MAC)
- for (int32_t i = plugins.size() - 1; i >= 0; --i) {
- PluginInfo& 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& host, const String& bundleIdentifier, const String& versionString)
-{
- String hostToSet = host.isNull() || !host.length() ? "*" : host;
- String bundleIdentifierToSet = bundleIdentifier.isNull() || !bundleIdentifier.length() ? "*" : bundleIdentifier;
- String versionStringToSet = versionString.isNull() || !versionString.length() ? "*" : 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& host, const PluginInfo& info, PluginLoadClientPolicy& policy) const
</del><ins>+void WebPlatformStrategies::populatePluginCache()
</ins><span class="cx"> {
</span><del>- String hostToLookUp = host;
- if (!m_hostsToPluginIdentifierData.contains(hostToLookUp))
- hostToLookUp = "*";
- 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 = "*";
- 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()->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 = "*";
- 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& page)
-{
- if (!m_pluginCacheIsPopulated) {
- if (!WebProcess::singleton().parentProcessConnection()->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()->responseURL().host();
- for (PluginInfo& 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 <WebCore/PasteboardStrategy.h>
</span><span class="cx"> #include <WebCore/PlatformStrategies.h>
</span><span class="cx"> #include <WebCore/PluginStrategy.h>
</span><del>-#include <wtf/HashMap.h>
</del><span class="cx"> #include <wtf/NeverDestroyed.h>
</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<WebCore::PluginInfo>&) override;
</span><del>- virtual void getWebVisiblePluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&) override;
</del><span class="cx">
</span><del>-#if PLATFORM(MAC)
- typedef HashMap<String, WebCore::PluginLoadClientPolicy> PluginLoadClientPoliciesByBundleVersion;
- typedef HashMap<String, PluginLoadClientPoliciesByBundleVersion> PluginPolicyMapsByIdentifier;
-
- virtual void setPluginLoadClientPolicy(WebCore::PluginLoadClientPolicy, const String& host, const String& bundleIdentifier, const String& 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&) 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&);
</del><ins>+ void populatePluginCache();
</ins><span class="cx"> bool m_pluginCacheIsPopulated;
</span><span class="cx"> bool m_shouldRefreshPlugins;
</span><span class="cx"> Vector<WebCore::PluginInfo> m_cachedPlugins;
</span><span class="cx"> Vector<WebCore::PluginInfo> m_cachedApplicationPlugins;
</span><del>-
-#if PLATFORM(MAC)
- HashMap<String, PluginPolicyMapsByIdentifier> m_hostsToPluginIdentifierData;
- bool pluginLoadClientPolicyForHost(const String&, const WebCore::PluginInfo&, WebCore::PluginLoadClientPolicy&) 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& pluginData = m_page->pluginData();
</span><del>- if (pluginData.supportsWebVisibleMimeType(MIMEType, PluginData::AllPlugins) && corePage()->mainFrame().loader().subframeLoader().allowPlugins(NotAboutToInstantiatePlugin))
</del><ins>+ if (pluginData.supportsMimeType(MIMEType, PluginData::AllPlugins) && corePage()->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) && PLATFORM(MAC)
- for (const auto& hostKeyValue : parameters.pluginLoadClientPolicies) {
- for (const auto& bundleIdentifierKeyValue : hostKeyValue.value) {
- for (const auto& versionStringKeyValue : bundleIdentifierKeyValue.value)
- platformStrategies()->pluginStrategy()->setPluginLoadClientPolicy(static_cast<PluginLoadClientPolicy>(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()->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& host, const String& bundleIdentifier, const String& versionString)
-{
-#if ENABLE(NETSCAPE_PLUGIN_API) && PLATFORM(MAC)
- platformStrategies()->pluginStrategy()->setPluginLoadClientPolicy(static_cast<PluginLoadClientPolicy>(policy), host, bundleIdentifier, versionString);
-#endif
-}
-
-void WebProcess::clearPluginClientPolicies()
-{
-#if ENABLE(NETSCAPE_PLUGIN_API) && PLATFORM(MAC)
- platformStrategies()->pluginStrategy()->clearPluginClientPolicies();
-#endif
-}
-
</del><span class="cx"> static void fromCountedSetToHashMap(TypeCountSet* countedSet, HashMap<String, uint64_t>& map)
</span><span class="cx"> {
</span><span class="cx"> TypeCountSet::const_iterator end = countedSet->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&, const String& pageOrigin, const String& pluginOrigin, const String& mimeType);
</span><span class="cx"> void plugInDidStartFromOrigin(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID);
</span><span class="cx"> void plugInDidReceiveUserInteraction(const String& pageOrigin, const String& pluginOrigin, const String& mimeType, WebCore::SessionID);
</span><del>- void setPluginLoadClientPolicy(uint8_t policy, const String& host, const String& bundleIdentifier, const String& 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<uint32_t,double> hashes)
</span><span class="cx"> ResetPlugInAutoStartOriginHashes(HashMap<WebCore::SessionID, HashMap<uint32_t,double>> 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>