| diff --git chrome/browser/download/download_target_determiner.cc chrome/browser/download/download_target_determiner.cc |
| index 1b5b71193d02..05dad7a969d5 100644 |
| --- chrome/browser/download/download_target_determiner.cc |
| +++ chrome/browser/download/download_target_determiner.cc |
| @@ -657,7 +657,7 @@ void IsHandledBySafePlugin(int render_process_id, |
| content::PluginService* plugin_service = |
| content::PluginService::GetInstance(); |
| bool plugin_found = plugin_service->GetPluginInfo( |
| - render_process_id, routing_id, url, url::Origin(), mime_type, false, |
| + render_process_id, routing_id, url, true, url::Origin(), mime_type, false, |
| &is_stale, &plugin_info, &actual_mime_type); |
| if (is_stale && stale_plugin_action == RETRY_IF_STALE_PLUGIN_LIST) { |
| // The GetPlugins call causes the plugin list to be refreshed. Once that's |
| diff --git chrome/browser/plugins/chrome_plugin_service_filter.cc chrome/browser/plugins/chrome_plugin_service_filter.cc |
| index e46003ea5e4a..503876cf7725 100644 |
| --- chrome/browser/plugins/chrome_plugin_service_filter.cc |
| +++ chrome/browser/plugins/chrome_plugin_service_filter.cc |
| @@ -163,6 +163,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable( |
| int render_process_id, |
| int render_frame_id, |
| const GURL& plugin_content_url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| content::WebPluginInfo* plugin) { |
| base::AutoLock auto_lock(lock_); |
| diff --git chrome/browser/plugins/chrome_plugin_service_filter.h chrome/browser/plugins/chrome_plugin_service_filter.h |
| index 937d3d5bc84f..ac327392dcf3 100644 |
| --- chrome/browser/plugins/chrome_plugin_service_filter.h |
| +++ chrome/browser/plugins/chrome_plugin_service_filter.h |
| @@ -64,6 +64,7 @@ class ChromePluginServiceFilter : public content::PluginServiceFilter, |
| bool IsPluginAvailable(int render_process_id, |
| int render_frame_id, |
| const GURL& plugin_content_url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| content::WebPluginInfo* plugin) override; |
| |
| diff --git chrome/browser/plugins/pdf_iframe_navigation_throttle.cc chrome/browser/plugins/pdf_iframe_navigation_throttle.cc |
| index 5b780f8bf34c..a75d0da983b4 100644 |
| --- chrome/browser/plugins/pdf_iframe_navigation_throttle.cc |
| +++ chrome/browser/plugins/pdf_iframe_navigation_throttle.cc |
| @@ -65,7 +65,7 @@ bool IsPDFPluginEnabled(content::NavigationHandle* navigation_handle, |
| |
| content::WebPluginInfo plugin_info; |
| return content::PluginService::GetInstance()->GetPluginInfo( |
| - process_id, routing_id, navigation_handle->GetURL(), |
| + process_id, routing_id, navigation_handle->GetURL(), false, |
| web_contents->GetMainFrame()->GetLastCommittedOrigin(), kPDFMimeType, |
| false /* allow_wildcard */, is_stale, &plugin_info, |
| nullptr /* actual_mime_type */); |
| diff --git chrome/browser/ui/views/frame/browser_root_view.cc chrome/browser/ui/views/frame/browser_root_view.cc |
| index 2277ac1008af..db0c90677538 100644 |
| --- chrome/browser/ui/views/frame/browser_root_view.cc |
| +++ chrome/browser/ui/views/frame/browser_root_view.cc |
| @@ -76,7 +76,7 @@ void OnFindURLMimeType(const GURL& url, |
| #if BUILDFLAG(ENABLE_PLUGINS) |
| content::WebPluginInfo plugin; |
| result = result || content::PluginService::GetInstance()->GetPluginInfo( |
| - process_id, routing_id, url, url::Origin(), mime_type, |
| + process_id, routing_id, url, true, url::Origin(), mime_type, |
| false, nullptr, &plugin, nullptr); |
| #endif |
| |
| diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc |
| index 4956b35c1278..2f9c0621f53e 100644 |
| --- content/browser/devtools/devtools_http_handler.cc |
| +++ content/browser/devtools/devtools_http_handler.cc |
| @@ -571,7 +571,7 @@ void DevToolsHttpHandler::OnJsonRequest( |
| version.SetString("Protocol-Version", |
| DevToolsAgentHost::GetProtocolVersion()); |
| version.SetString("WebKit-Version", GetWebKitVersion()); |
| - version.SetString("Browser", GetContentClient()->browser()->GetProduct()); |
| + version.SetString("Browser", GetContentClient()->browser()->GetChromeProduct()); |
| version.SetString("User-Agent", |
| GetContentClient()->browser()->GetUserAgent()); |
| version.SetString("V8-Version", V8_VERSION_STRING); |
| diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc |
| index f6511e22ab05..0ccf811d7b22 100644 |
| --- content/browser/frame_host/render_frame_message_filter.cc |
| +++ content/browser/frame_host/render_frame_message_filter.cc |
| @@ -298,6 +298,7 @@ void RenderFrameMessageFilter::OnCreateChildFrame( |
| void RenderFrameMessageFilter::OnGetPluginInfo( |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool* found, |
| @@ -305,8 +306,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo( |
| std::string* actual_mime_type) { |
| bool allow_wildcard = true; |
| *found = plugin_service_->GetPluginInfo( |
| - render_process_id_, render_frame_id, url, main_frame_origin, mime_type, |
| - allow_wildcard, nullptr, info, actual_mime_type); |
| + render_process_id_, render_frame_id, url, is_main_frame, |
| + main_frame_origin, mime_type, allow_wildcard, nullptr, info, |
| + actual_mime_type); |
| } |
| |
| void RenderFrameMessageFilter::OnOpenChannelToPepperPlugin( |
| diff --git content/browser/frame_host/render_frame_message_filter.h content/browser/frame_host/render_frame_message_filter.h |
| index 451bfecfa4b1..b7cddcbaca66 100644 |
| --- content/browser/frame_host/render_frame_message_filter.h |
| +++ content/browser/frame_host/render_frame_message_filter.h |
| @@ -83,6 +83,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter : public BrowserMessageFilter { |
| #if BUILDFLAG(ENABLE_PLUGINS) |
| void OnGetPluginInfo(int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool* found, |
| diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc |
| index 2be5d4400de9..14ece86df0e3 100644 |
| --- content/browser/loader/navigation_url_loader_impl.cc |
| +++ content/browser/loader/navigation_url_loader_impl.cc |
| @@ -722,6 +722,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController |
| resource_request_->has_user_gesture, |
| resource_request_->request_initiator, &loader_factory); |
| |
| + if (!handled) { |
| + handled = GetContentClient()->browser()->HandleExternalProtocol( |
| + web_contents_getter_, frame_tree_node_id_, |
| + navigation_ui_data_.get(), *resource_request_, |
| + &loader_factory); |
| + } |
| + |
| if (loader_factory) { |
| factory = |
| base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>( |
| @@ -932,7 +939,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController |
| 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, routing_id, resource_request_->url, url::Origin(), |
| + render_process_id, routing_id, resource_request_->url, true, url::Origin(), |
| head->mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr); |
| |
| if (stale) { |
| diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc |
| index 8f0f145f9760..49f0698c89f5 100644 |
| --- content/browser/plugin_service_impl.cc |
| +++ content/browser/plugin_service_impl.cc |
| @@ -340,6 +340,7 @@ bool PluginServiceImpl::GetPluginInfoArray( |
| bool PluginServiceImpl::GetPluginInfo(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool allow_wildcard, |
| @@ -357,7 +358,8 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id, |
| for (size_t i = 0; i < plugins.size(); ++i) { |
| if (!filter_ || |
| filter_->IsPluginAvailable(render_process_id, render_frame_id, url, |
| - main_frame_origin, &plugins[i])) { |
| + is_main_frame, main_frame_origin, |
| + &plugins[i])) { |
| *info = plugins[i]; |
| if (actual_mime_type) |
| *actual_mime_type = mime_types[i]; |
| diff --git content/browser/plugin_service_impl.h content/browser/plugin_service_impl.h |
| index 79ac3b705511..71d73d3da158 100644 |
| --- content/browser/plugin_service_impl.h |
| +++ content/browser/plugin_service_impl.h |
| @@ -54,6 +54,7 @@ class CONTENT_EXPORT PluginServiceImpl : public PluginService { |
| bool GetPluginInfo(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool allow_wildcard, |
| diff --git content/browser/renderer_host/plugin_registry_impl.cc content/browser/renderer_host/plugin_registry_impl.cc |
| index a6d6188fb139..7ac57de6fd55 100644 |
| --- content/browser/renderer_host/plugin_registry_impl.cc |
| +++ content/browser/renderer_host/plugin_registry_impl.cc |
| @@ -29,6 +29,7 @@ void PluginRegistryImpl::Bind( |
| } |
| |
| void PluginRegistryImpl::GetPlugins(bool refresh, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| GetPluginsCallback callback) { |
| auto* plugin_service = PluginServiceImpl::GetInstance(); |
| @@ -50,10 +51,11 @@ void PluginRegistryImpl::GetPlugins(bool refresh, |
| |
| plugin_service->GetPlugins(base::BindOnce( |
| &PluginRegistryImpl::GetPluginsComplete, weak_factory_.GetWeakPtr(), |
| - main_frame_origin, std::move(callback))); |
| + is_main_frame, main_frame_origin, std::move(callback))); |
| } |
| |
| void PluginRegistryImpl::GetPluginsComplete( |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| GetPluginsCallback callback, |
| const std::vector<WebPluginInfo>& all_plugins) { |
| @@ -76,6 +78,7 @@ void PluginRegistryImpl::GetPluginsComplete( |
| // TODO(crbug.com/621724): Pass an url::Origin instead of a GURL. |
| if (!filter || filter->IsPluginAvailable(render_process_id_, routing_id, |
| main_frame_origin.GetURL(), |
| + is_main_frame, |
| main_frame_origin, &plugin)) { |
| auto plugin_blink = blink::mojom::PluginInfo::New(); |
| plugin_blink->name = plugin.name; |
| diff --git content/browser/renderer_host/plugin_registry_impl.h content/browser/renderer_host/plugin_registry_impl.h |
| index 632ae86c6fd6..55b749ec1242 100644 |
| --- content/browser/renderer_host/plugin_registry_impl.h |
| +++ content/browser/renderer_host/plugin_registry_impl.h |
| @@ -24,11 +24,13 @@ class PluginRegistryImpl : public blink::mojom::PluginRegistry { |
| |
| // blink::mojom::PluginRegistry |
| void GetPlugins(bool refresh, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| GetPluginsCallback callback) override; |
| |
| private: |
| - void GetPluginsComplete(const url::Origin& main_frame_origin, |
| + void GetPluginsComplete(bool is_main_frame, |
| + const url::Origin& main_frame_origin, |
| GetPluginsCallback callback, |
| const std::vector<WebPluginInfo>& all_plugins); |
| |
| diff --git content/common/frame_messages.h content/common/frame_messages.h |
| index 118765f9323f..614830e4f406 100644 |
| --- content/common/frame_messages.h |
| +++ content/common/frame_messages.h |
| @@ -687,9 +687,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, |
| // type. If there is no matching plugin, |found| is false. |
| // |actual_mime_type| is the actual mime type supported by the |
| // found plugin. |
| -IPC_SYNC_MESSAGE_CONTROL4_3(FrameHostMsg_GetPluginInfo, |
| +IPC_SYNC_MESSAGE_CONTROL5_3(FrameHostMsg_GetPluginInfo, |
| int /* render_frame_id */, |
| GURL /* url */, |
| + bool /* is_main_frame */, |
| url::Origin /* main_frame_origin */, |
| std::string /* mime_type */, |
| bool /* found */, |
| diff --git content/public/browser/content_browser_client.cc content/public/browser/content_browser_client.cc |
| index 89f33b33f8c8..30512bab9b12 100644 |
| --- content/public/browser/content_browser_client.cc |
| +++ content/public/browser/content_browser_client.cc |
| @@ -9,7 +9,7 @@ |
| // declarations instead of including more headers. If that is infeasible, adjust |
| // the limit. For more info, see |
| // https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md |
| -#pragma clang max_tokens_here 820000 |
| +// #pragma clang max_tokens_here 820000 |
| |
| #include <utility> |
| |
| diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h |
| index 26cd6d1afcb8..5ac45c794daf 100644 |
| --- content/public/browser/content_browser_client.h |
| +++ content/public/browser/content_browser_client.h |
| @@ -26,6 +26,7 @@ |
| #include "content/common/content_export.h" |
| #include "content/public/browser/certificate_request_result_type.h" |
| #include "content/public/browser/generated_code_cache_settings.h" |
| +#include "content/public/browser/web_contents.h" |
| #include "content/public/common/page_visibility_state.h" |
| #include "content/public/common/previews_state.h" |
| #include "content/public/common/window_container_type.mojom-forward.h" |
| @@ -1631,6 +1632,14 @@ class CONTENT_EXPORT ContentBrowserClient { |
| const base::Optional<url::Origin>& initiating_origin, |
| mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory); |
| |
| + // Same as above, but exposing the whole ResourceRequest object. |
| + virtual bool HandleExternalProtocol( |
| + WebContents::Getter web_contents_getter, |
| + int frame_tree_node_id, |
| + NavigationUIData* navigation_data, |
| + const network::ResourceRequest& request, |
| + mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) { return false; } |
| + |
| // Creates an OverlayWindow to be used for Picture-in-Picture. This window |
| // will house the content shown when in Picture-in-Picture mode. This will |
| // return a new OverlayWindow. |
| @@ -1699,6 +1708,10 @@ class CONTENT_EXPORT ContentBrowserClient { |
| // Used as part of the user agent string. |
| virtual std::string GetProduct(); |
| |
| + // Returns the Chrome-specific product string. This is used for compatibility |
| + // purposes with external tools like Selenium. |
| + virtual std::string GetChromeProduct() { return GetProduct(); } |
| + |
| // Returns the user agent. Content may cache this value. |
| virtual std::string GetUserAgent(); |
| |
| diff --git content/public/browser/plugin_service.h content/public/browser/plugin_service.h |
| index dcfd3ff37186..4e822ee5f750 100644 |
| --- content/public/browser/plugin_service.h |
| +++ content/public/browser/plugin_service.h |
| @@ -74,6 +74,7 @@ class CONTENT_EXPORT PluginService { |
| virtual bool GetPluginInfo(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool allow_wildcard, |
| diff --git content/public/browser/plugin_service_filter.h content/public/browser/plugin_service_filter.h |
| index 98c59005599e..69752184745d 100644 |
| --- content/public/browser/plugin_service_filter.h |
| +++ content/public/browser/plugin_service_filter.h |
| @@ -32,6 +32,7 @@ class PluginServiceFilter { |
| virtual bool IsPluginAvailable(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| WebPluginInfo* plugin) = 0; |
| |
| diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h |
| index 764556d80f1b..7267aa6c26f6 100644 |
| --- content/public/renderer/content_renderer_client.h |
| +++ content/public/renderer/content_renderer_client.h |
| @@ -81,6 +81,9 @@ class CONTENT_EXPORT ContentRendererClient { |
| // binding requests from RenderProcessHost::BindReceiver(). |
| virtual void ExposeInterfacesToBrowser(mojo::BinderMap* binders) {} |
| |
| + // Notifies that the RenderThread can now send sync IPC messages. |
| + virtual void RenderThreadConnected() {} |
| + |
| // Notifies that a new RenderFrame has been created. |
| virtual void RenderFrameCreated(RenderFrame* render_frame) {} |
| |
| @@ -310,6 +313,10 @@ class CONTENT_EXPORT ContentRendererClient { |
| // This method may invalidate the frame. |
| virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} |
| |
| + // Notifies that a DevTools agent has attached or detached. |
| + virtual void DevToolsAgentAttached() {} |
| + virtual void DevToolsAgentDetached() {} |
| + |
| // Allows subclasses to enable some runtime features before Blink has |
| // started. |
| virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} |
| diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc |
| index 2ab5e79b71cc..51cd9556a884 100644 |
| --- content/renderer/render_frame_impl.cc |
| +++ content/renderer/render_frame_impl.cc |
| @@ -3742,7 +3742,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( |
| std::string mime_type; |
| bool found = false; |
| Send(new FrameHostMsg_GetPluginInfo( |
| - routing_id_, params.url, frame_->Top()->GetSecurityOrigin(), |
| + routing_id_, params.url, frame_->Parent() == nullptr, |
| + frame_->Top()->GetSecurityOrigin(), |
| params.mime_type.Utf8(), &found, &info, &mime_type)); |
| if (!found) |
| return nullptr; |
| diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc |
| index 76176518dfe4..b7d8dc75a23a 100644 |
| --- content/renderer/render_thread_impl.cc |
| +++ content/renderer/render_thread_impl.cc |
| @@ -630,6 +630,8 @@ void RenderThreadImpl::Init() { |
| GetContentClient()->renderer()->CreateURLLoaderThrottleProvider( |
| URLLoaderThrottleProviderType::kFrame); |
| |
| + GetContentClient()->renderer()->RenderThreadConnected(); |
| + |
| GetAssociatedInterfaceRegistry()->AddInterface(base::BindRepeating( |
| &RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this))); |
| |
| diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc |
| index 8c641e6e3a6f..d2d1a7c2b6de 100644 |
| --- content/renderer/renderer_blink_platform_impl.cc |
| +++ content/renderer/renderer_blink_platform_impl.cc |
| @@ -899,6 +899,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() { |
| |
| //------------------------------------------------------------------------------ |
| |
| +void RendererBlinkPlatformImpl::DevToolsAgentAttached() { |
| + GetContentClient()->renderer()->DevToolsAgentAttached(); |
| +} |
| +void RendererBlinkPlatformImpl::DevToolsAgentDetached() { |
| + GetContentClient()->renderer()->DevToolsAgentDetached(); |
| +} |
| + |
| +//------------------------------------------------------------------------------ |
| + |
| blink::mojom::CodeCacheHost& RendererBlinkPlatformImpl::GetCodeCacheHost() { |
| if (!code_cache_host_) { |
| code_cache_host_ = mojo::SharedRemote<blink::mojom::CodeCacheHost>( |
| diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h |
| index 80490f5b8d52..8c07dc87edbb 100644 |
| --- content/renderer/renderer_blink_platform_impl.h |
| +++ content/renderer/renderer_blink_platform_impl.h |
| @@ -198,6 +198,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { |
| |
| media::GpuVideoAcceleratorFactories* GetGpuFactories() override; |
| |
| + void DevToolsAgentAttached() override; |
| + void DevToolsAgentDetached() override; |
| + |
| // Returns non-null. |
| // It is invalid to call this in an incomplete env where |
| // RenderThreadImpl::current() returns nullptr (e.g. in some tests). |
| diff --git content/shell/browser/shell_plugin_service_filter.cc content/shell/browser/shell_plugin_service_filter.cc |
| index 427132c6920e..4809ddaf21e1 100644 |
| --- content/shell/browser/shell_plugin_service_filter.cc |
| +++ content/shell/browser/shell_plugin_service_filter.cc |
| @@ -17,6 +17,7 @@ bool ShellPluginServiceFilter::IsPluginAvailable( |
| int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| WebPluginInfo* plugin) { |
| return plugin->name == base::ASCIIToUTF16("Blink Test Plugin") || |
| diff --git content/shell/browser/shell_plugin_service_filter.h content/shell/browser/shell_plugin_service_filter.h |
| index 337b4b0653fe..107ab4c9d8a8 100644 |
| --- content/shell/browser/shell_plugin_service_filter.h |
| +++ content/shell/browser/shell_plugin_service_filter.h |
| @@ -20,6 +20,7 @@ class ShellPluginServiceFilter : public PluginServiceFilter { |
| bool IsPluginAvailable(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| WebPluginInfo* plugin) override; |
| |
| diff --git content/test/fake_plugin_service.cc content/test/fake_plugin_service.cc |
| index eb280cd21c6d..b499b2536b2d 100644 |
| --- content/test/fake_plugin_service.cc |
| +++ content/test/fake_plugin_service.cc |
| @@ -28,6 +28,7 @@ bool FakePluginService::GetPluginInfoArray( |
| bool FakePluginService::GetPluginInfo(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool allow_wildcard, |
| diff --git content/test/fake_plugin_service.h content/test/fake_plugin_service.h |
| index df49da7cbec0..edf526fff7f8 100644 |
| --- content/test/fake_plugin_service.h |
| +++ content/test/fake_plugin_service.h |
| @@ -29,6 +29,7 @@ class FakePluginService : public PluginService { |
| bool GetPluginInfo(int render_process_id, |
| int render_frame_id, |
| const GURL& url, |
| + bool is_main_frame, |
| const url::Origin& main_frame_origin, |
| const std::string& mime_type, |
| bool allow_wildcard, |