mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			213 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc
 | |
| index 22e8a17b5e2cc..859cd6712debe 100644
 | |
| --- chrome/browser/plugins/plugin_info_host_impl.cc
 | |
| +++ chrome/browser/plugins/plugin_info_host_impl.cc
 | |
| @@ -17,6 +17,7 @@
 | |
|  #include "base/task/task_runner_util.h"
 | |
|  #include "build/branding_buildflags.h"
 | |
|  #include "build/build_config.h"
 | |
| +#include "cef/libcef/features/runtime.h"
 | |
|  #include "chrome/browser/browser_process.h"
 | |
|  #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 | |
|  #include "chrome/browser/plugins/chrome_plugin_service_filter.h"
 | |
| @@ -51,6 +52,10 @@
 | |
|  #include "url/gurl.h"
 | |
|  #include "url/origin.h"
 | |
|  
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +#include "cef/libcef/common/extensions/extensions_util.h"
 | |
| +#endif
 | |
| +
 | |
|  #if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
|  #include "components/guest_view/browser/guest_view_base.h"
 | |
|  #include "extensions/browser/extension_registry.h"
 | |
| @@ -100,6 +105,9 @@ bool IsPluginLoadingAccessibleResourceInWebView(
 | |
|      extensions::ExtensionRegistry* extension_registry,
 | |
|      int process_id,
 | |
|      const GURL& resource) {
 | |
| +  if (!extension_registry)
 | |
| +    return false;
 | |
| +
 | |
|    extensions::WebViewRendererState* renderer_state =
 | |
|        extensions::WebViewRendererState::GetInstance();
 | |
|    std::string partition_id;
 | |
| @@ -128,14 +136,18 @@ bool IsPluginLoadingAccessibleResourceInWebView(
 | |
|  
 | |
|  PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile)
 | |
|      : render_process_id_(render_process_id),
 | |
| -#if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
| -      extension_registry_(extensions::ExtensionRegistry::Get(profile)),
 | |
| -#endif
 | |
|        host_content_settings_map_(
 | |
|            HostContentSettingsMapFactory::GetForProfile(profile)),
 | |
|        plugin_prefs_(PluginPrefs::GetForProfile(profile)) {
 | |
|    allow_outdated_plugins_.Init(prefs::kPluginsAllowOutdated,
 | |
|                                 profile->GetPrefs());
 | |
| +
 | |
| +#if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +  if (!cef::IsAlloyRuntimeEnabled() || extensions::ExtensionsEnabled())
 | |
| +#endif
 | |
| +    extension_registry_ = extensions::ExtensionRegistry::Get(profile);
 | |
| +#endif
 | |
|  }
 | |
|  
 | |
|  PluginInfoHostImpl::Context::~Context() {}
 | |
| diff --git chrome/browser/plugins/plugin_utils.cc chrome/browser/plugins/plugin_utils.cc
 | |
| index b594c68673c19..b0e3cd149f760 100644
 | |
| --- chrome/browser/plugins/plugin_utils.cc
 | |
| +++ chrome/browser/plugins/plugin_utils.cc
 | |
| @@ -5,6 +5,7 @@
 | |
|  #include "chrome/browser/plugins/plugin_utils.h"
 | |
|  
 | |
|  #include "base/values.h"
 | |
| +#include "cef/libcef/features/runtime.h"
 | |
|  #include "chrome/browser/profiles/profile.h"
 | |
|  #include "components/content_settings/core/browser/host_content_settings_map.h"
 | |
|  #include "components/content_settings/core/common/content_settings_types.h"
 | |
| @@ -14,6 +15,10 @@
 | |
|  #include "url/gurl.h"
 | |
|  #include "url/origin.h"
 | |
|  
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +#include "cef/libcef/common/extensions/extensions_util.h"
 | |
| +#endif
 | |
| +
 | |
|  #if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
|  #include "chrome/common/pref_names.h"
 | |
|  #include "components/prefs/pref_service.h"
 | |
| @@ -68,6 +73,12 @@ base::flat_map<std::string, std::string>
 | |
|  PluginUtils::GetMimeTypeToExtensionIdMap(
 | |
|      content::BrowserContext* browser_context) {
 | |
|    base::flat_map<std::string, std::string> mime_type_to_extension_id_map;
 | |
| +
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +  if (cef::IsAlloyRuntimeEnabled() && !extensions::ExtensionsEnabled())
 | |
| +    return mime_type_to_extension_id_map;
 | |
| +#endif
 | |
| +
 | |
|  #if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
|    Profile* profile = Profile::FromBrowserContext(browser_context);
 | |
|    const std::vector<std::string>& allowlist =
 | |
| diff --git chrome/common/google_url_loader_throttle.cc chrome/common/google_url_loader_throttle.cc
 | |
| index 8b72897491669..546919dd70afc 100644
 | |
| --- chrome/common/google_url_loader_throttle.cc
 | |
| +++ chrome/common/google_url_loader_throttle.cc
 | |
| @@ -7,6 +7,7 @@
 | |
|  #include "base/feature_list.h"
 | |
|  #include "base/metrics/histogram_functions.h"
 | |
|  #include "build/build_config.h"
 | |
| +#include "cef/libcef/features/runtime.h"
 | |
|  #include "chrome/common/chrome_features.h"
 | |
|  #include "chrome/common/net/safe_search_util.h"
 | |
|  #include "components/google/core/common/google_util.h"
 | |
| @@ -19,6 +20,10 @@
 | |
|  #include "ui/base/device_form_factor.h"
 | |
|  #endif
 | |
|  
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +#include "cef/libcef/common/extensions/extensions_util.h"
 | |
| +#endif
 | |
| +
 | |
|  #if BUILDFLAG(ENABLE_EXTENSIONS)
 | |
|  #include "extensions/common/extension_urls.h"
 | |
|  #endif
 | |
| @@ -158,6 +163,11 @@ void GoogleURLLoaderThrottle::WillProcessResponse(
 | |
|      const GURL& response_url,
 | |
|      network::mojom::URLResponseHead* response_head,
 | |
|      bool* defer) {
 | |
| +#if BUILDFLAG(ENABLE_CEF)
 | |
| +  if (cef::IsAlloyRuntimeEnabled() && !extensions::ExtensionsEnabled())
 | |
| +    return;
 | |
| +#endif
 | |
| +
 | |
|    // Built-in additional protection for the chrome web store origin by ensuring
 | |
|    // that the X-Frame-Options protection mechanism is set to either DENY or
 | |
|    // SAMEORIGIN.
 | |
| diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
 | |
| index bbfb9e5e65480..aa5e4ad3cb17d 100644
 | |
| --- chrome/renderer/chrome_content_renderer_client.cc
 | |
| +++ chrome/renderer/chrome_content_renderer_client.cc
 | |
| @@ -946,6 +946,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
 | |
|  
 | |
|      if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
 | |
|           status == chrome::mojom::PluginStatus::kBlocked) &&
 | |
| +        content_settings_agent_delegate &&
 | |
|          content_settings_agent_delegate->IsPluginTemporarilyAllowed(
 | |
|              identifier)) {
 | |
|        status = chrome::mojom::PluginStatus::kAllowed;
 | |
| @@ -1147,7 +1148,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
 | |
|          render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
 | |
|              plugin_auth_host.BindNewEndpointAndPassReceiver());
 | |
|          plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
 | |
| -        content_settings_agent->DidBlockContentType(content_type);
 | |
| +        if (content_settings_agent)
 | |
| +          content_settings_agent->DidBlockContentType(content_type);
 | |
|          break;
 | |
|        }
 | |
|        case chrome::mojom::PluginStatus::kBlocked: {
 | |
| @@ -1156,7 +1158,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
 | |
|              l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name));
 | |
|          placeholder->AllowLoading();
 | |
|          RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked"));
 | |
| -        content_settings_agent->DidBlockContentType(content_type);
 | |
| +        if (content_settings_agent)
 | |
| +          content_settings_agent->DidBlockContentType(content_type);
 | |
|          break;
 | |
|        }
 | |
|        case chrome::mojom::PluginStatus::kBlockedByPolicy: {
 | |
| @@ -1166,7 +1169,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
 | |
|                                         group_name));
 | |
|          RenderThread::Get()->RecordAction(
 | |
|              UserMetricsAction("Plugin_BlockedByPolicy"));
 | |
| -        content_settings_agent->DidBlockContentType(content_type);
 | |
| +        if (content_settings_agent)
 | |
| +          content_settings_agent->DidBlockContentType(content_type);
 | |
|          break;
 | |
|        }
 | |
|        case chrome::mojom::PluginStatus::kBlockedNoLoading: {
 | |
| @@ -1174,7 +1178,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
 | |
|              IDR_BLOCKED_PLUGIN_HTML,
 | |
|              l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING,
 | |
|                                         group_name));
 | |
| -        content_settings_agent->DidBlockContentType(content_type);
 | |
| +        if (content_settings_agent)
 | |
| +          content_settings_agent->DidBlockContentType(content_type);
 | |
|          break;
 | |
|        }
 | |
|      }
 | |
| diff --git content/browser/browser_plugin/browser_plugin_embedder.h content/browser/browser_plugin/browser_plugin_embedder.h
 | |
| index f2f7e4228f134..e724b36143238 100644
 | |
| --- content/browser/browser_plugin/browser_plugin_embedder.h
 | |
| +++ content/browser/browser_plugin/browser_plugin_embedder.h
 | |
| @@ -15,6 +15,7 @@
 | |
|  #define CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_EMBEDDER_H_
 | |
|  
 | |
|  #include "base/memory/raw_ptr.h"
 | |
| +#include "content/common/content_export.h"
 | |
|  
 | |
|  namespace content {
 | |
|  
 | |
| @@ -26,7 +27,7 @@ struct NativeWebKeyboardEvent;
 | |
|  
 | |
|  // TODO(wjmaclean): Get rid of "BrowserPlugin" in the name of this class.
 | |
|  // Perhaps "WebContentsEmbedderDelegate" would be better?
 | |
| -class BrowserPluginEmbedder {
 | |
| +class CONTENT_EXPORT BrowserPluginEmbedder {
 | |
|   public:
 | |
|    BrowserPluginEmbedder(const BrowserPluginEmbedder&) = delete;
 | |
|    BrowserPluginEmbedder& operator=(const BrowserPluginEmbedder&) = delete;
 | |
| diff --git content/browser/browser_plugin/browser_plugin_guest.h content/browser/browser_plugin/browser_plugin_guest.h
 | |
| index 066c66c1a2d1b..428cb1871a6af 100644
 | |
| --- content/browser/browser_plugin/browser_plugin_guest.h
 | |
| +++ content/browser/browser_plugin/browser_plugin_guest.h
 | |
| @@ -116,6 +116,8 @@ class BrowserPluginGuest : public GuestHost, public WebContentsObserver {
 | |
|  
 | |
|    gfx::Point GetScreenCoordinates(const gfx::Point& relative_position) const;
 | |
|  
 | |
| +  WebContentsImpl* owner_web_contents() const { return owner_web_contents_; }
 | |
| +
 | |
|   protected:
 | |
|    // BrowserPluginGuest is a WebContentsObserver of |web_contents| and
 | |
|    // |web_contents| has to stay valid for the lifetime of BrowserPluginGuest.
 |