diff options
7 files changed, 10 insertions, 4 deletions
diff --git a/chromium/content/browser/loader/navigation_url_loader_impl.cc b/chromium/content/browser/loader/navigation_url_loader_impl.cc index 10ec894cb10..ea60b5a7253 100644 --- a/chromium/content/browser/loader/navigation_url_loader_impl.cc +++ b/chromium/content/browser/loader/navigation_url_loader_impl.cc @@ -838,8 +838,9 @@ void NavigationURLLoaderImpl::CheckPluginAndContinueOnReceiveResponse( FrameTreeNode::GloballyFindByID(frame_tree_node_id_); int render_process_id = frame_tree_node->current_frame_host()->GetProcess()->GetID(); + int routing_id = frame_tree_node->current_frame_host()->GetRoutingID(); bool has_plugin = PluginService::GetInstance()->GetPluginInfo( - render_process_id, resource_request_->url, head->mime_type, + render_process_id, routing_id, resource_request_->url, head->mime_type, /*allow_wildcard=*/false, &stale, &plugin, nullptr); if (stale) { diff --git a/chromium/content/browser/plugin_service_impl.cc b/chromium/content/browser/plugin_service_impl.cc index 00106b9b1f1..c1be5915185 100644 --- a/chromium/content/browser/plugin_service_impl.cc +++ b/chromium/content/browser/plugin_service_impl.cc @@ -234,6 +234,7 @@ bool PluginServiceImpl::GetPluginInfoArray( } bool PluginServiceImpl::GetPluginInfo(int render_process_id, + int render_frame_id, const GURL& url, const std::string& mime_type, bool allow_wildcard, @@ -249,7 +250,7 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, *is_stale = stale; for (size_t i = 0; i < plugins.size(); ++i) { - if (!filter_ || filter_->IsPluginAvailable(render_process_id, plugins[i])) { + if (!filter_ || filter_->IsPluginAvailable(render_process_id, render_frame_id, plugins[i])) { *info = plugins[i]; if (actual_mime_type) *actual_mime_type = mime_types[i]; diff --git a/chromium/content/browser/plugin_service_impl.h b/chromium/content/browser/plugin_service_impl.h index 9f256a7fe48..04546b3687b 100644 --- a/chromium/content/browser/plugin_service_impl.h +++ b/chromium/content/browser/plugin_service_impl.h @@ -54,6 +54,7 @@ class CONTENT_EXPORT PluginServiceImpl : public PluginService { std::vector<WebPluginInfo>* info, std::vector<std::string>* actual_mime_types) override; bool GetPluginInfo(int render_process_id, + int render_frame_id, const GURL& url, const std::string& mime_type, bool allow_wildcard, diff --git a/chromium/content/browser/renderer_host/plugin_registry_impl.cc b/chromium/content/browser/renderer_host/plugin_registry_impl.cc index 0df9fd09a22..6a249566464 100644 --- a/chromium/content/browser/renderer_host/plugin_registry_impl.cc +++ b/chromium/content/browser/renderer_host/plugin_registry_impl.cc @@ -70,8 +70,9 @@ void PluginRegistryImpl::GetPluginsComplete( GetContentClient()->browser()->GetPluginMimeTypesWithExternalHandlers( rph->GetBrowserContext()); + const int routing_id = MSG_ROUTING_NONE; for (const auto& plugin : all_plugins) { - if (!filter || filter->IsPluginAvailable(render_process_id_, plugin)) { + if (!filter || filter->IsPluginAvailable(render_process_id_, routing_id, plugin)) { auto plugin_blink = blink::mojom::PluginInfo::New(); plugin_blink->name = plugin.name; plugin_blink->description = plugin.desc; diff --git a/chromium/content/browser/renderer_host/render_frame_host_impl.cc b/chromium/content/browser/renderer_host/render_frame_host_impl.cc index 1005687a68a..8f5f3408a53 100644 --- a/chromium/content/browser/renderer_host/render_frame_host_impl.cc +++ b/chromium/content/browser/renderer_host/render_frame_host_impl.cc @@ -12541,7 +12541,7 @@ void RenderFrameHostImpl::GetPluginInfo(const GURL& url, WebPluginInfo info; std::string actual_mime_type; bool found = PluginServiceImpl::GetInstance()->GetPluginInfo( - GetProcess()->GetID(), url, mime_type, allow_wildcard, nullptr, &info, + GetProcess()->GetID(), routing_id_, url, mime_type, allow_wildcard, nullptr, &info, &actual_mime_type); std::move(callback).Run(found, info, actual_mime_type); } diff --git a/chromium/content/public/browser/plugin_service.h b/chromium/content/public/browser/plugin_service.h index d7621a6d931..b9a635448e7 100644 --- a/chromium/content/public/browser/plugin_service.h +++ b/chromium/content/public/browser/plugin_service.h @@ -72,6 +72,7 @@ class CONTENT_EXPORT PluginService { // via |is_stale| and returns whether or not the plugin can be found. // This must be called from the UI thread. virtual bool GetPluginInfo(int render_process_id, + int render_frame_id, const GURL& url, const std::string& mime_type, bool allow_wildcard, diff --git a/chromium/content/public/browser/plugin_service_filter.h b/chromium/content/public/browser/plugin_service_filter.h index 8730ea5ad41..0c4a73ce750 100644 --- a/chromium/content/public/browser/plugin_service_filter.h +++ b/chromium/content/public/browser/plugin_service_filter.h @@ -22,6 +22,7 @@ class PluginServiceFilter { // Whether `plugin` is available. The client can return false to hide the // plugin. The result may be cached, and should be consistent between calls. virtual bool IsPluginAvailable(int render_process_id, + int render_frame_id, const WebPluginInfo& plugin) = 0; // Whether the renderer has permission to load available `plugin`. |