Update to Chromium version 78.0.3904.0 (#693954)

This commit is contained in:
Marshall Greenblatt
2019-10-01 13:55:16 +00:00
parent c8b457da38
commit f8e0797773
151 changed files with 1485 additions and 2238 deletions

View File

@@ -1,5 +1,5 @@
diff --git base/values.cc base/values.cc
index 7d042cdcd459..09eb01af5745 100644
index 02e92b7e082b..b227923a6220 100644
--- base/values.cc
+++ base/values.cc
@@ -23,20 +23,6 @@

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc
index fbb86a38a7ac..bd1c70e53371 100644
index 2531e9d6b344..87cadc541057 100644
--- content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -613,6 +613,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
@@ -598,6 +598,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
"RenderWidgetHostViewChildFrame::OnSwapCompositorFrame");
support_->SubmitCompositorFrame(local_surface_id, std::move(frame),
std::move(hit_test_region_list));
@@ -10,7 +10,7 @@ index fbb86a38a7ac..bd1c70e53371 100644
}
void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
@@ -621,6 +622,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
@@ -606,6 +607,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
support_->DidNotProduceFrame(ack);
}
@@ -26,7 +26,7 @@ index fbb86a38a7ac..bd1c70e53371 100644
void RenderWidgetHostViewChildFrame::TransformPointToRootSurface(
gfx::PointF* point) {
// This function is called by RenderWidgetHostInputEventRouter only for
@@ -818,6 +828,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
@@ -802,6 +812,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
void RenderWidgetHostViewChildFrame::SpeakSelection() {}
#endif // defined(OS_MACOSX)

View File

@@ -12,7 +12,7 @@ index de89d291e5cb..9ce7bf4cb250 100644
// Force a new surface id to be allocated. Returns true if the
// RenderWidgetHostImpl sent the resulting surface id to the renderer.
diff --git content/browser/renderer_host/browser_compositor_view_mac.mm content/browser/renderer_host/browser_compositor_view_mac.mm
index 4b3f3c7e97e7..0ce693402b99 100644
index 8ddd790decc4..3ffd3db8da4b 100644
--- content/browser/renderer_host/browser_compositor_view_mac.mm
+++ content/browser/renderer_host/browser_compositor_view_mac.mm
@@ -85,6 +85,12 @@ DelegatedFrameHost* BrowserCompositorMac::GetDelegatedFrameHost() {

View File

@@ -1,8 +1,8 @@
diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc
index ddb17ac729df..255d2ec9729d 100644
index 6eb21be63dec..87ccc46f4d43 100644
--- content/browser/browser_plugin/browser_plugin_guest.cc
+++ content/browser/browser_plugin/browser_plugin_guest.cc
@@ -307,8 +307,11 @@ void BrowserPluginGuest::InitInternal(
@@ -306,8 +306,11 @@ void BrowserPluginGuest::InitInternal(
static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
}
@@ -15,7 +15,7 @@ index ddb17ac729df..255d2ec9729d 100644
// Once a BrowserPluginGuest has an embedder WebContents, it's considered to
// be attached.
@@ -821,10 +824,19 @@ void BrowserPluginGuest::OnWillAttachComplete(
@@ -820,10 +823,19 @@ void BrowserPluginGuest::OnWillAttachComplete(
static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) {
web_contents_view->CreateViewForWidget(
@@ -37,10 +37,10 @@ index ddb17ac729df..255d2ec9729d 100644
attached_ = true;
diff --git content/browser/frame_host/interstitial_page_impl.cc content/browser/frame_host/interstitial_page_impl.cc
index 875ec8ce299b..a8e1119d4b03 100644
index be1334c46132..60abcebf7422 100644
--- content/browser/frame_host/interstitial_page_impl.cc
+++ content/browser/frame_host/interstitial_page_impl.cc
@@ -624,7 +624,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() {
@@ -622,7 +622,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() {
WebContentsView* wcv =
static_cast<WebContentsImpl*>(web_contents())->GetView();
RenderWidgetHostViewBase* view =
@@ -79,10 +79,10 @@ index bfb918a2cba3..a193b5a0fed8 100644
// Creates a new View that holds a non-top-level widget and receives messages
// for it.
diff --git content/browser/web_contents/web_contents_view_aura.cc content/browser/web_contents/web_contents_view_aura.cc
index ab27502c3509..282985c05c45 100644
index dda92e4006db..23f86f9f1564 100644
--- content/browser/web_contents/web_contents_view_aura.cc
+++ content/browser/web_contents/web_contents_view_aura.cc
@@ -947,7 +947,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size,
@@ -948,7 +948,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size,
}
RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@@ -92,7 +92,7 @@ index ab27502c3509..282985c05c45 100644
if (render_widget_host->GetView()) {
// During testing, the view will already be set up in most cases to the
// test view, so we don't want to clobber it with a real one. To verify that
@@ -959,6 +960,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@@ -960,6 +961,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
render_widget_host->GetView());
}
@@ -101,7 +101,7 @@ index ab27502c3509..282985c05c45 100644
g_create_render_widget_host_view
? g_create_render_widget_host_view(render_widget_host,
diff --git content/browser/web_contents/web_contents_view_aura.h content/browser/web_contents/web_contents_view_aura.h
index 9be20d50ba4b..84c5106d15f2 100644
index ed3c8d86cacc..70f869da762f 100644
--- content/browser/web_contents/web_contents_view_aura.h
+++ content/browser/web_contents/web_contents_view_aura.h
@@ -122,7 +122,7 @@ class CONTENT_EXPORT WebContentsViewAura
@@ -221,7 +221,7 @@ index 35da7e53b6a6..df938f455be2 100644
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_mac.mm content/browser/web_contents/web_contents_view_mac.mm
index 1d1f44d6a943..275e928d6bd1 100644
index b35b9b48b53c..bfa5f5409d5d 100644
--- content/browser/web_contents/web_contents_view_mac.mm
+++ content/browser/web_contents/web_contents_view_mac.mm
@@ -327,7 +327,8 @@ void WebContentsViewMac::CreateView(
@@ -266,7 +266,7 @@ index ea12af6b86b8..f1211f374328 100644
// a BrowserPlugin even when we are using cross process frames for guests. It
// should be removed after resolving https://crbug.com/642826).
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index b7cb9fc9df13..a4a81ee1c863 100644
index 1578ad4f86bd..a07ed1044d60 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -212,6 +212,8 @@ void MimeHandlerViewGuest::CreateWebContents(

View File

@@ -1,8 +1,8 @@
diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc
index 3025bd308a4a..f7fb156a75d8 100644
index f2ddb987a4de..a309caf4c670 100644
--- content/browser/scheduler/browser_task_executor.cc
+++ content/browser/scheduler/browser_task_executor.cc
@@ -135,10 +135,11 @@ void BrowserTaskExecutor::PostFeatureListSetup() {
@@ -136,10 +136,11 @@ void BrowserTaskExecutor::PostFeatureListSetup() {
// static
void BrowserTaskExecutor::Shutdown() {

View File

@@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 66f3b325be58..b3bdbd5c39d9 100644
index d1a9bfa30cb2..3c74d4acdda2 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -160,7 +160,7 @@ declare_args() {
@@ -152,7 +152,7 @@ declare_args() {
!use_clang_coverage && !(is_android && use_order_profiling) &&
(use_lld ||
(use_gold &&
@@ -11,7 +11,7 @@ index 66f3b325be58..b3bdbd5c39d9 100644
!(current_cpu == "x86" || current_cpu == "x64"))))
}
@@ -1734,8 +1734,6 @@ config("thin_archive") {
@@ -1728,8 +1728,6 @@ config("thin_archive") {
# archive names to 16 characters, which is not what we want).
if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
arflags = [ "-T" ]

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index 8ce5e842bbb2..95b0356cab27 100644
index 0bc6da647d95..aa57c4d046d5 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -9,6 +9,7 @@ import("//build/config/jumbo.gni")
@@ -10,6 +10,7 @@ import("//build/config/jumbo.gni")
import("//build/config/linux/gtk/gtk.gni")
import("//build/config/ui.gni")
import("//build/split_static_library.gni")
@@ -10,7 +10,7 @@ index 8ce5e842bbb2..95b0356cab27 100644
import("//chrome/common/features.gni")
import("//components/feature_engagement/features.gni")
import("//components/feed/features.gni")
@@ -1889,6 +1890,7 @@ jumbo_split_static_library("browser") {
@@ -1938,6 +1939,7 @@ jumbo_split_static_library("browser") {
"//base/util/values:values_util",
"//build:branding_buildflags",
"//cc",
@@ -18,7 +18,7 @@ index 8ce5e842bbb2..95b0356cab27 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2192,6 +2194,10 @@ jumbo_split_static_library("browser") {
@@ -2238,6 +2240,10 @@ jumbo_split_static_library("browser") {
]
}

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index 50f7329cca40..c6cae9beda15 100644
index 3b387d754736..2c537f9c15c1 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -10,6 +10,7 @@ import("//build/config/jumbo.gni")
@@ -10,7 +10,7 @@ index 50f7329cca40..c6cae9beda15 100644
import("//chrome/common/features.gni")
import("//chromeos/assistant/assistant.gni")
import("//components/feature_engagement/features.gni")
@@ -368,6 +369,10 @@ jumbo_split_static_library("ui") {
@@ -370,6 +371,10 @@ jumbo_split_static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@@ -21,7 +21,7 @@ index 50f7329cca40..c6cae9beda15 100644
# Since browser and browser_ui actually depend on each other,
# we must omit the dependency from browser_ui to browser.
# However, this means browser_ui and browser should more or less
@@ -385,6 +390,7 @@ jumbo_split_static_library("ui") {
@@ -388,6 +393,7 @@ jumbo_split_static_library("ui") {
"//base:i18n",
"//base/allocator:buildflags",
"//cc/paint",
@@ -30,7 +30,7 @@ index 50f7329cca40..c6cae9beda15 100644
"//chrome:resources",
"//chrome:strings",
diff --git chrome/browser/ui/webui/net_export_ui.cc chrome/browser/ui/webui/net_export_ui.cc
index c50cd8b8f779..31aa7a2a696b 100644
index 081ef17bf0d9..46b1d1af2baa 100644
--- chrome/browser/ui/webui/net_export_ui.cc
+++ chrome/browser/ui/webui/net_export_ui.cc
@@ -20,13 +20,12 @@

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index 0b29bc11f07c..9c0ffba4dc20 100644
index b1d5ac049933..cfb78bb97597 100644
--- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc
@@ -1067,10 +1067,6 @@ void LaunchURL(
@@ -1013,10 +1013,6 @@ void LaunchURL(const GURL& url,
}
}
@@ -13,7 +13,7 @@ index 0b29bc11f07c..9c0ffba4dc20 100644
void MaybeAppendSecureOriginsAllowlistSwitch(base::CommandLine* cmdline) {
// |allowlist| combines pref/policy + cmdline switch in the browser process.
// For renderer and utility (e.g. NetworkService) processes the switch is the
@@ -1088,6 +1084,14 @@ void MaybeAppendSecureOriginsAllowlistSwitch(base::CommandLine* cmdline) {
@@ -1059,6 +1055,14 @@ base::FilePath GetModulePath(base::StringPiece16 module_name) {
} // namespace
@@ -29,10 +29,10 @@ index 0b29bc11f07c..9c0ffba4dc20 100644
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kUserAgent)) {
diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h
index 069f597633a2..e81d7718cfca 100644
index 6bb50192ce17..6cb6a28d3114 100644
--- chrome/browser/chrome_content_browser_client.h
+++ chrome/browser/chrome_content_browser_client.h
@@ -84,7 +84,8 @@ enum class Channel;
@@ -85,7 +85,8 @@ enum class Channel;
class ChromeHidDelegate;
class ChromeSerialDelegate;

View File

@@ -1,10 +1,10 @@
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index bd2715738d89..a61a0765301f 100644
index 5fb5b84258a8..e28db2e984f6 100644
--- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc
@@ -375,7 +375,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
content::NotificationService::AllSources());
@@ -359,7 +359,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
content::NotificationService::AllSources());
- if (ProfileShortcutManager::IsFeatureEnabled() && !user_data_dir_.empty())
+ if (!user_data_dir_.empty() && ProfileShortcutManager::IsFeatureEnabled())
@@ -12,10 +12,10 @@ index bd2715738d89..a61a0765301f 100644
}
diff --git chrome/browser/profiles/profile_manager.h chrome/browser/profiles/profile_manager.h
index 985c64458bdf..f46ddbb8c05d 100644
index 87ecf1fc998b..924c24fa42a2 100644
--- chrome/browser/profiles/profile_manager.h
+++ chrome/browser/profiles/profile_manager.h
@@ -94,7 +94,7 @@ class ProfileManager : public content::NotificationObserver,
@@ -99,7 +99,7 @@ class ProfileManager : public content::NotificationObserver,
// acceptable. Returns null if creation of the new profile fails.
// TODO(bauerb): Migrate calls from other code to GetProfileByPath(), then
// make this method private.
@@ -24,7 +24,7 @@ index 985c64458bdf..f46ddbb8c05d 100644
// Returns total number of profiles available on this machine.
size_t GetNumberOfProfiles();
@@ -124,7 +124,7 @@ class ProfileManager : public content::NotificationObserver,
@@ -129,7 +129,7 @@ class ProfileManager : public content::NotificationObserver,
// Returns true if the profile pointer is known to point to an existing
// profile.
@@ -33,7 +33,7 @@ index 985c64458bdf..f46ddbb8c05d 100644
// Returns the directory where the first created profile is stored,
// relative to the user data directory currently in use.
@@ -133,7 +133,7 @@ class ProfileManager : public content::NotificationObserver,
@@ -138,7 +138,7 @@ class ProfileManager : public content::NotificationObserver,
// Get the Profile last used (the Profile to which owns the most recently
// focused window) with this Chrome build. If no signed profile has been
// stored in Local State, hand back the Default profile.

View File

@@ -1,10 +1,10 @@
diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc
index f2223e24ec7c..8374b7f0d56d 100644
index 865ca9288de7..8f736f081b86 100644
--- chrome/browser/plugins/plugin_info_host_impl.cc
+++ chrome/browser/plugins/plugin_info_host_impl.cc
@@ -18,6 +18,7 @@
#include "base/task_runner_util.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/branding_buildflags.h"
#include "build/build_config.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/browser_process.h"
@@ -32,38 +32,42 @@ index f2223e24ec7c..8374b7f0d56d 100644
extensions::WebViewRendererState* renderer_state =
extensions::WebViewRendererState::GetInstance();
std::string partition_id;
@@ -130,12 +139,16 @@ bool IsPluginLoadingAccessibleResourceInWebView(
@@ -129,9 +138,6 @@ bool IsPluginLoadingAccessibleResourceInWebView(
PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile)
: render_process_id_(render_process_id),
resource_context_(profile->GetResourceContext()),
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- extension_registry_(extensions::ExtensionRegistry::Get(profile)),
-#endif
host_content_settings_map_(
HostContentSettingsMapFactory::GetForProfile(profile)),
plugin_prefs_(PluginPrefs::GetForProfile(profile)) {
@@ -139,6 +145,13 @@ PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile)
profile->GetPrefs());
run_all_flash_in_allow_mode_.Init(prefs::kRunAllFlashInAllowMode,
profile->GetPrefs());
+
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_CEF)
+ if (extensions::ExtensionsEnabled())
+#endif
+ extension_registry_ = extensions::ExtensionRegistry::Get(profile);
+#endif
+
allow_outdated_plugins_.Init(prefs::kPluginsAllowOutdated,
profile->GetPrefs());
allow_outdated_plugins_.MoveToSequence(
@@ -234,6 +247,7 @@ void PluginInfoHostImpl::PluginsLoaded(
}
PluginInfoHostImpl::Context::~Context() {}
@@ -209,6 +222,7 @@ void PluginInfoHostImpl::PluginsLoaded(
plugin_metadata->identifier(), &output->status);
}
+#if !BUILDFLAG(ENABLE_CEF)
if (output->status == chrome::mojom::PluginStatus::kNotFound) {
// Check to see if the component updater can fetch an implementation.
base::PostTaskAndReplyWithResult(
@@ -245,7 +259,9 @@ void PluginInfoHostImpl::PluginsLoaded(
base::BindOnce(&PluginInfoHostImpl::ComponentPluginLookupDone, this,
params, std::move(output), std::move(callback),
std::move(plugin_metadata)));
std::unique_ptr<component_updater::ComponentInfo> cus_plugin_info =
@@ -217,7 +231,9 @@ void PluginInfoHostImpl::PluginsLoaded(
ComponentPluginLookupDone(params, std::move(output), std::move(callback),
std::move(plugin_metadata),
std::move(cus_plugin_info));
- } else {
+ } else
+#endif // !BUILDFLAG(ENABLE_CEF)
@@ -71,7 +75,7 @@ index f2223e24ec7c..8374b7f0d56d 100644
GetPluginInfoFinish(params, std::move(output), std::move(callback),
std::move(plugin_metadata));
}
@@ -258,6 +274,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus(
@@ -230,6 +246,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus(
PluginMetadata::SecurityStatus security_status,
const std::string& plugin_identifier,
chrome::mojom::PluginStatus* status) const {
@@ -86,7 +90,7 @@ index f2223e24ec7c..8374b7f0d56d 100644
if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) {
*status = chrome::mojom::PluginStatus::kAllowed;
return;
@@ -366,16 +390,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin(
@@ -338,16 +362,35 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin(
return false;
}
@@ -101,9 +105,8 @@ index f2223e24ec7c..8374b7f0d56d 100644
+ size_t i = 0;
+ for (; i < matching_plugins.size(); ++i) {
+ if (filter->IsPluginAvailable(render_process_id_, render_frame_id,
+ resource_context_, url, is_main_frame,
+ main_frame_origin, &matching_plugins[i],
+ status)) {
+ url, is_main_frame, main_frame_origin,
+ &matching_plugins[i], status)) {
+ break;
+ }
+ }
@@ -112,11 +115,11 @@ index f2223e24ec7c..8374b7f0d56d 100644
PluginService::GetInstance()->GetFilter();
size_t i = 0;
for (; i < matching_plugins.size(); ++i) {
if (!filter || filter->IsPluginAvailable(
render_process_id_, render_frame_id, resource_context_,
- url, main_frame_origin, &matching_plugins[i])) {
+ url, is_main_frame, main_frame_origin,
+ &matching_plugins[i])) {
if (!filter ||
filter->IsPluginAvailable(render_process_id_, render_frame_id, url,
- main_frame_origin, &matching_plugins[i])) {
+ is_main_frame, main_frame_origin,
+ &matching_plugins[i])) {
break;
}
}
@@ -125,7 +128,7 @@ index f2223e24ec7c..8374b7f0d56d 100644
// If we broke out of the loop, we have found an enabled plugin.
bool enabled = i < matching_plugins.size();
diff --git chrome/browser/plugins/plugin_utils.cc chrome/browser/plugins/plugin_utils.cc
index 73d60aa7f77c..89bff0de7186 100644
index 56f147d2fc56..90553ec27d23 100644
--- chrome/browser/plugins/plugin_utils.cc
+++ chrome/browser/plugins/plugin_utils.cc
@@ -5,6 +5,7 @@
@@ -148,40 +151,8 @@ index 73d60aa7f77c..89bff0de7186 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
@@ -251,12 +257,29 @@ base::flat_map<std::string, std::string>
PluginUtils::GetMimeTypeToExtensionIdMap(
content::ResourceContext* resource_context) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
+
+#if BUILDFLAG(ENABLE_CEF)
+ if (!extensions::ExtensionsEnabled())
+ return {};
+
+ CefResourceContext* context =
+ static_cast<CefResourceContext*>(resource_context);
+ bool profile_is_off_the_record = context->IsOffTheRecord();
+ scoped_refptr<extensions::InfoMap> extension_info_map(
+ const_cast<extensions::InfoMap*>(context->GetExtensionInfoMap()));
+ bool always_open_pdf_externally = !extensions::PdfExtensionEnabled();
+#else
ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
scoped_refptr<extensions::InfoMap> extension_info_map(
io_data->GetExtensionInfoMap());
+ bool profile_is_off_the_record = io_data->IsOffTheRecord();
+ bool always_open_pdf_externally =
+ io_data->always_open_pdf_externally()->GetValue();
+#endif
+
return GetMimeTypeToExtensionIdMapInternal(
- io_data->IsOffTheRecord(),
- io_data->always_open_pdf_externally()->GetValue(),
+ profile_is_off_the_record,
+ always_open_pdf_externally,
base::BindRepeating(
[](const scoped_refptr<extensions::InfoMap>& info_map,
const std::string& extension_id) {
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index ae7e07340ea4..f193040e8bca 100644
index 03781c0b08e0..37dc3e93c7d9 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -794,6 +794,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(

View File

@@ -1,10 +1,10 @@
diff --git chrome/browser/ui/prefs/pref_watcher.h chrome/browser/ui/prefs/pref_watcher.h
index b5ccdc521a36..716117c141cc 100644
index dd06c6d22b16..1f3a5aa7ac2b 100644
--- chrome/browser/ui/prefs/pref_watcher.h
+++ chrome/browser/ui/prefs/pref_watcher.h
@@ -29,10 +29,10 @@ class PrefWatcher : public KeyedService {
void RegisterRendererPreferenceWatcher(
blink::mojom::RendererPreferenceWatcherPtr watcher);
mojo::PendingRemote<blink::mojom::RendererPreferenceWatcher> watcher);
- private:
// KeyedService overrides:

View File

@@ -1,5 +1,5 @@
diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn
index 4f3ed79d0500..357a0b260e85 100644
index a008c196d020..bf91ed98b864 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -4,6 +4,7 @@
@@ -10,7 +10,7 @@ index 4f3ed79d0500..357a0b260e85 100644
import("//chrome/common/features.gni")
import("//components/nacl/features.gni")
import("//components/offline_pages/buildflags/features.gni")
@@ -125,6 +126,7 @@ jumbo_static_library("renderer") {
@@ -118,6 +119,7 @@ jumbo_static_library("renderer") {
defines = []
deps = [
@@ -18,7 +18,7 @@ index 4f3ed79d0500..357a0b260e85 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
@@ -190,6 +192,10 @@ jumbo_static_library("renderer") {
@@ -185,6 +187,10 @@ jumbo_static_library("renderer") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]

View File

@@ -1,8 +1,8 @@
diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc
index 1e9bc3b924db..eaf4ac0f22f8 100644
index fb0059b3e652..452f58ab4a0a 100644
--- chrome/common/chrome_content_client.cc
+++ chrome/common/chrome_content_client.cc
@@ -92,7 +92,8 @@
@@ -93,7 +93,8 @@
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
// bundled and not a component. When the Widevine CDM is a component, it is
// registered in widevine_cdm_component_installer.cc.
@@ -13,7 +13,7 @@ index 1e9bc3b924db..eaf4ac0f22f8 100644
#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
// TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
diff --git third_party/widevine/cdm/BUILD.gn third_party/widevine/cdm/BUILD.gn
index 27b3e9150832..bf5b96c5f69f 100644
index 18177ec2e536..dca927a726b9 100644
--- third_party/widevine/cdm/BUILD.gn
+++ third_party/widevine/cdm/BUILD.gn
@@ -5,6 +5,7 @@
@@ -24,3 +24,12 @@ index 27b3e9150832..bf5b96c5f69f 100644
import("//media/cdm/library_cdm/cdm_paths.gni")
import("//media/media_options.gni")
import("//third_party/widevine/cdm/widevine.gni")
@@ -106,8 +107,6 @@ if (widevine_cdm_manifest_and_license_files != []) {
]
}
} else {
- assert(!enable_widevine_cdm_component,
- "Widevine as a component requires a manifest.")
group("widevine_cdm_manifest_and_license") {
# NOP
}

View File

@@ -1,75 +1,73 @@
diff --git chrome/browser/download/download_target_determiner.cc chrome/browser/download/download_target_determiner.cc
index e0d2c5c42517..0849c5bf6b7e 100644
index 2d5b195caecb..827fcc962640 100644
--- chrome/browser/download/download_target_determiner.cc
+++ chrome/browser/download/download_target_determiner.cc
@@ -631,8 +631,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context,
@@ -636,7 +636,7 @@ void IsHandledBySafePlugin(int render_process_id,
content::PluginService* plugin_service =
content::PluginService::GetInstance();
bool plugin_found = plugin_service->GetPluginInfo(
- -1, -1, resource_context, url, url::Origin(), mime_type, false, &is_stale,
- &plugin_info, &actual_mime_type);
+ -1, -1, resource_context, url, true, url::Origin(), mime_type, false,
+ &is_stale, &plugin_info, &actual_mime_type);
- 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
// done we can retry the GetPluginInfo call. We break out of this cycle
diff --git chrome/browser/plugins/chrome_plugin_service_filter.cc chrome/browser/plugins/chrome_plugin_service_filter.cc
index 55801ac0fee7..8e993e959ca2 100644
index 8916d9329a6c..bd1174231578 100644
--- chrome/browser/plugins/chrome_plugin_service_filter.cc
+++ chrome/browser/plugins/chrome_plugin_service_filter.cc
@@ -167,6 +167,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable(
@@ -163,6 +163,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable(
int render_process_id,
int render_frame_id,
const void* context,
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 c707c8773a74..20bdf74abf01 100644
index 937d3d5bc84f..ac327392dcf3 100644
--- chrome/browser/plugins/chrome_plugin_service_filter.h
+++ chrome/browser/plugins/chrome_plugin_service_filter.h
@@ -65,6 +65,7 @@ class ChromePluginServiceFilter : public content::PluginServiceFilter,
@@ -64,6 +64,7 @@ class ChromePluginServiceFilter : public content::PluginServiceFilter,
bool IsPluginAvailable(int render_process_id,
int render_frame_id,
const void* context,
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 2eb7f21919fd..4218d3352d70 100644
index 2c66cd46d84b..f81854a7b25f 100644
--- chrome/browser/plugins/pdf_iframe_navigation_throttle.cc
+++ chrome/browser/plugins/pdf_iframe_navigation_throttle.cc
@@ -71,8 +71,8 @@ bool IsPDFPluginEnabled(content::NavigationHandle* navigation_handle,
@@ -68,7 +68,7 @@ bool IsPDFPluginEnabled(content::NavigationHandle* navigation_handle,
content::WebPluginInfo plugin_info;
return content::PluginService::GetInstance()->GetPluginInfo(
process_id, routing_id, resource_context, navigation_handle->GetURL(),
- web_contents->GetMainFrame()->GetLastCommittedOrigin(), kPDFMimeType,
- false /* allow_wildcard */, is_stale, &plugin_info,
+ false, web_contents->GetMainFrame()->GetLastCommittedOrigin(),
+ kPDFMimeType, false /* allow_wildcard */, is_stale, &plugin_info,
- 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 */);
}
#endif
diff --git chrome/browser/ui/views/frame/browser_root_view.cc chrome/browser/ui/views/frame/browser_root_view.cc
index 786365927e71..27d32872d8d0 100644
index e7f241e8db68..fe0b6e546b86 100644
--- chrome/browser/ui/views/frame/browser_root_view.cc
+++ chrome/browser/ui/views/frame/browser_root_view.cc
@@ -70,7 +70,7 @@ void OnFindURLMimeType(const GURL& url,
content::PluginService::GetInstance()->GetPluginInfo(
-1, // process ID
MSG_ROUTING_NONE, // routing ID
- profile->GetResourceContext(), url, url::Origin(), mime_type,
+ profile->GetResourceContext(), url, true, url::Origin(), mime_type,
false, nullptr, &plugin, nullptr));
@@ -69,8 +69,8 @@ void OnFindURLMimeType(const GURL& url,
std::move(callback).Run(
url, mime_type.empty() || blink::IsSupportedMimeType(mime_type) ||
content::PluginService::GetInstance()->GetPluginInfo(
- process_id, routing_id, url, url::Origin(), mime_type, false,
- nullptr, &plugin, nullptr));
+ process_id, routing_id, url, true, url::Origin(), mime_type,
+ false, nullptr, &plugin, nullptr));
}
bool GetURLForDrop(const ui::DropTargetEvent& event, GURL* url) {
diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc
index 83772ae8cca7..0eadd7c9a37a 100644
index 569503d5f870..26e8b0c207c6 100644
--- content/browser/devtools/devtools_http_handler.cc
+++ content/browser/devtools/devtools_http_handler.cc
@@ -572,7 +572,7 @@ void DevToolsHttpHandler::OnJsonRequest(
@@ -570,7 +570,7 @@ void DevToolsHttpHandler::OnJsonRequest(
version.SetString("Protocol-Version",
DevToolsAgentHost::GetProtocolVersion());
version.SetString("WebKit-Version", GetWebKitVersion());
@@ -79,10 +77,10 @@ index 83772ae8cca7..0eadd7c9a37a 100644
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 5815fdfd6259..307c222c0d40 100644
index 1202e49da23f..a829f2f6b1ad 100644
--- content/browser/frame_host/render_frame_message_filter.cc
+++ content/browser/frame_host/render_frame_message_filter.cc
@@ -493,6 +493,7 @@ void RenderFrameMessageFilter::OnAre3DAPIsBlocked(int render_frame_id,
@@ -468,6 +468,7 @@ void RenderFrameMessageFilter::OnAre3DAPIsBlocked(int render_frame_id,
void RenderFrameMessageFilter::OnGetPluginInfo(
int render_frame_id,
const GURL& url,
@@ -90,22 +88,23 @@ index 5815fdfd6259..307c222c0d40 100644
const url::Origin& main_frame_origin,
const std::string& mime_type,
bool* found,
@@ -504,8 +505,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
@@ -475,8 +476,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
std::string* actual_mime_type) {
bool allow_wildcard = true;
*found = plugin_service_->GetPluginInfo(
render_process_id_, render_frame_id, resource_context_, url,
- main_frame_origin, mime_type, allow_wildcard, nullptr, info,
- actual_mime_type);
+ is_main_frame, main_frame_origin, mime_type, allow_wildcard, nullptr,
+ info, actual_mime_type);
- 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 e7900ef22a0d..f05d2ee128bd 100644
index d3510133b2dc..ebcfb56a6034 100644
--- content/browser/frame_host/render_frame_message_filter.h
+++ content/browser/frame_host/render_frame_message_filter.h
@@ -113,6 +113,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter : public BrowserMessageFilter {
@@ -111,6 +111,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter : public BrowserMessageFilter {
#if BUILDFLAG(ENABLE_PLUGINS)
void OnGetPluginInfo(int render_frame_id,
const GURL& url,
@@ -113,26 +112,11 @@ index e7900ef22a0d..f05d2ee128bd 100644
const url::Origin& main_frame_origin,
const std::string& mime_type,
bool* found,
diff --git content/browser/loader/mime_sniffing_resource_handler.cc content/browser/loader/mime_sniffing_resource_handler.cc
index b0458c1168d9..98f7ae7b7899 100644
--- content/browser/loader/mime_sniffing_resource_handler.cc
+++ content/browser/loader/mime_sniffing_resource_handler.cc
@@ -510,8 +510,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler(
WebPluginInfo plugin;
bool has_plugin = plugin_service_->GetPluginInfo(
info->GetChildID(), info->GetRenderFrameID(), info->GetContext(),
- request()->url(), url::Origin(), response_->head.mime_type,
- allow_wildcard, &stale, &plugin, nullptr);
+ request()->url(), info->IsMainFrame(), url::Origin(),
+ response_->head.mime_type, allow_wildcard, &stale, &plugin, nullptr);
if (stale) {
// Refresh the plugins asynchronously.
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 7dafa5c27290..14d97d465f2c 100644
index c82860885d1b..db78f147b39a 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -1061,6 +1061,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
@@ -661,6 +661,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
static_cast<ui::PageTransition>(resource_request_->transition_type),
resource_request_->has_user_gesture, &loader_factory);
@@ -146,22 +130,25 @@ index 7dafa5c27290..14d97d465f2c 100644
if (loader_factory) {
factory =
base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
@@ -1310,7 +1317,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
// path does as well for navigations.
@@ -874,8 +881,9 @@ 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(
-1 /* render_process_id */, -1 /* render_frame_id */, resource_context_,
- resource_request_->url, url::Origin(), head.mime_type,
+ resource_request_->url, true, url::Origin(), head.mime_type,
false /* allow_wildcard */, &stale, &plugin, nullptr);
- render_process_id, routing_id, resource_request_->url, url::Origin(),
- head.mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr);
+ render_process_id, routing_id, resource_request_->url, true,
+ url::Origin(), head.mime_type, false /* allow_wildcard */, &stale,
+ &plugin, nullptr);
if (stale) {
// Refresh the plugins asynchronously.
diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc
index a599f989065f..115867edec92 100644
index 06bd3e74a1cb..a6d3a0956c7e 100644
--- content/browser/plugin_service_impl.cc
+++ content/browser/plugin_service_impl.cc
@@ -302,6 +302,7 @@ bool PluginServiceImpl::GetPluginInfo(int render_process_id,
@@ -301,6 +301,7 @@ bool PluginServiceImpl::GetPluginInfoArray(
bool PluginServiceImpl::GetPluginInfo(int render_process_id,
int render_frame_id,
ResourceContext* context,
const GURL& url,
+ bool is_main_frame,
const url::Origin& main_frame_origin,
@@ -170,30 +157,30 @@ index a599f989065f..115867edec92 100644
@@ -318,7 +319,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, context,
- url, main_frame_origin, &plugins[i])) {
+ url, is_main_frame, main_frame_origin,
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 c4c0ed551697..b234e239bba4 100644
index 6c39259a2c67..b3d18b1135d3 100644
--- content/browser/plugin_service_impl.h
+++ content/browser/plugin_service_impl.h
@@ -57,6 +57,7 @@ class CONTENT_EXPORT PluginServiceImpl : public PluginService {
@@ -54,6 +54,7 @@ class CONTENT_EXPORT PluginServiceImpl : public PluginService {
bool GetPluginInfo(int render_process_id,
int render_frame_id,
ResourceContext* context,
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 717db1507d66..d44142b67ff7 100644
index a6d6188fb139..7ac57de6fd55 100644
--- content/browser/renderer_host/plugin_registry_impl.cc
+++ content/browser/renderer_host/plugin_registry_impl.cc
@@ -27,6 +27,7 @@ void PluginRegistryImpl::Bind(blink::mojom::PluginRegistryRequest request) {
@@ -29,6 +29,7 @@ void PluginRegistryImpl::Bind(
}
void PluginRegistryImpl::GetPlugins(bool refresh,
@@ -201,7 +188,7 @@ index 717db1507d66..d44142b67ff7 100644
const url::Origin& main_frame_origin,
GetPluginsCallback callback) {
auto* plugin_service = PluginServiceImpl::GetInstance();
@@ -48,10 +49,11 @@ void PluginRegistryImpl::GetPlugins(bool refresh,
@@ -50,10 +51,11 @@ void PluginRegistryImpl::GetPlugins(bool refresh,
plugin_service->GetPlugins(base::BindOnce(
&PluginRegistryImpl::GetPluginsComplete, weak_factory_.GetWeakPtr(),
@@ -214,29 +201,19 @@ index 717db1507d66..d44142b67ff7 100644
const url::Origin& main_frame_origin,
GetPluginsCallback callback,
const std::vector<WebPluginInfo>& all_plugins) {
@@ -61,7 +63,7 @@ void PluginRegistryImpl::GetPluginsComplete(
GetContentClient()->browser()->GetPluginMimeTypesWithExternalHandlers(
resource_context_);
- const int child_process_id = -1;
+ const int child_process_id = render_process_id_;
const int routing_id = MSG_ROUTING_NONE;
// In this loop, copy the WebPluginInfo (and do not use a reference) because
// the filter might mutate it.
@@ -70,7 +72,7 @@ void PluginRegistryImpl::GetPluginsComplete(
if (!filter ||
filter->IsPluginAvailable(child_process_id, routing_id,
resource_context_, main_frame_origin.GetURL(),
- main_frame_origin, &plugin)) {
+ is_main_frame, main_frame_origin, &plugin)) {
@@ -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;
plugin_blink->description = plugin.desc;
diff --git content/browser/renderer_host/plugin_registry_impl.h content/browser/renderer_host/plugin_registry_impl.h
index 061dd21cbbd1..a418b8d08091 100644
index 632ae86c6fd6..55b749ec1242 100644
--- content/browser/renderer_host/plugin_registry_impl.h
+++ content/browser/renderer_host/plugin_registry_impl.h
@@ -24,17 +24,24 @@ class PluginRegistryImpl : public blink::mojom::PluginRegistry {
@@ -24,11 +24,13 @@ class PluginRegistryImpl : public blink::mojom::PluginRegistry {
// blink::mojom::PluginRegistry
void GetPlugins(bool refresh,
@@ -244,10 +221,6 @@ index 061dd21cbbd1..a418b8d08091 100644
const url::Origin& main_frame_origin,
GetPluginsCallback callback) override;
+ void set_render_process_id(int render_process_id) {
+ render_process_id_ = render_process_id;
+ }
+
private:
- void GetPluginsComplete(const url::Origin& main_frame_origin,
+ void GetPluginsComplete(bool is_main_frame,
@@ -255,18 +228,11 @@ index 061dd21cbbd1..a418b8d08091 100644
GetPluginsCallback callback,
const std::vector<WebPluginInfo>& all_plugins);
ResourceContext* const resource_context_;
mojo::BindingSet<PluginRegistry> bindings_;
base::TimeTicks last_plugin_refresh_time_;
+ int render_process_id_ = -1;
base::WeakPtrFactory<PluginRegistryImpl> weak_factory_{this};
};
diff --git content/common/frame_messages.h content/common/frame_messages.h
index 60077e7ec11a..1e703ba07b4d 100644
index 318e199de304..2baed51cc931 100644
--- content/common/frame_messages.h
+++ content/common/frame_messages.h
@@ -1228,9 +1228,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback,
@@ -1146,9 +1146,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.
@@ -279,16 +245,16 @@ index 60077e7ec11a..1e703ba07b4d 100644
std::string /* mime_type */,
bool /* found */,
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index a14b357dca01..780861333a4b 100644
index dcb77c781146..50d54464e790 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -1492,6 +1492,15 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1512,6 +1512,15 @@ class CONTENT_EXPORT ContentBrowserClient {
bool has_user_gesture,
network::mojom::URLLoaderFactoryPtr* out_factory);
+ // Same as above, but exposing the whole ResourceRequest object.
+ virtual bool HandleExternalProtocol(
+ ResourceRequestInfo::WebContentsGetter web_contents_getter,
+ WebContents::Getter web_contents_getter,
+ int frame_tree_node_id,
+ NavigationUIData* navigation_data,
+ const network::ResourceRequest& request,
@@ -298,7 +264,7 @@ index a14b357dca01..780861333a4b 100644
// 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.
@@ -1562,6 +1571,10 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1579,6 +1588,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct();
@@ -310,34 +276,34 @@ index a14b357dca01..780861333a4b 100644
virtual std::string GetUserAgent();
diff --git content/public/browser/plugin_service.h content/public/browser/plugin_service.h
index 7646bdad2061..887ac022f2a1 100644
index dcfd3ff37186..4e822ee5f750 100644
--- content/public/browser/plugin_service.h
+++ content/public/browser/plugin_service.h
@@ -75,6 +75,7 @@ class CONTENT_EXPORT PluginService {
@@ -74,6 +74,7 @@ class CONTENT_EXPORT PluginService {
virtual bool GetPluginInfo(int render_process_id,
int render_frame_id,
ResourceContext* context,
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 3b610b1f554e..7c439e060779 100644
index 98c59005599e..69752184745d 100644
--- content/public/browser/plugin_service_filter.h
+++ content/public/browser/plugin_service_filter.h
@@ -33,6 +33,7 @@ class PluginServiceFilter {
@@ -32,6 +32,7 @@ class PluginServiceFilter {
virtual bool IsPluginAvailable(int render_process_id,
int render_frame_id,
const void* context,
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 bfc62d176668..b9f695eaad5a 100644
index 7d53414dfbe7..fdbe566ee2bb 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -74,6 +74,9 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -72,6 +72,9 @@ class CONTENT_EXPORT ContentRendererClient {
// Notifies us that the RenderThread has been created.
virtual void RenderThreadStarted() {}
@@ -347,7 +313,7 @@ index bfc62d176668..b9f695eaad5a 100644
// Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -326,6 +329,10 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -318,6 +321,10 @@ class CONTENT_EXPORT ContentRendererClient {
// This method may invalidate the frame.
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
@@ -359,10 +325,10 @@ index bfc62d176668..b9f695eaad5a 100644
// started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/public/renderer/render_frame_observer.h content/public/renderer/render_frame_observer.h
index 0e2e86e6a2af..b44e90f69263 100644
index 1f4868132226..96a0fbfd8188 100644
--- content/public/renderer/render_frame_observer.h
+++ content/public/renderer/render_frame_observer.h
@@ -214,6 +214,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
@@ -216,6 +216,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
virtual void DidReceiveTransferSizeUpdate(int resource_id,
int received_data_length) {}
@@ -373,10 +339,10 @@ index 0e2e86e6a2af..b44e90f69263 100644
virtual void FocusedElementChanged(const blink::WebElement& element) {}
diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc
index e2a9d4a370f3..2919772fef77 100644
index f8f8209786ff..c181986c246a 100644
--- content/renderer/render_frame_impl.cc
+++ content/renderer/render_frame_impl.cc
@@ -4095,7 +4095,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
@@ -4166,7 +4166,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
std::string mime_type;
bool found = false;
Send(new FrameHostMsg_GetPluginInfo(
@@ -386,20 +352,20 @@ index e2a9d4a370f3..2919772fef77 100644
params.mime_type.Utf8(), &found, &info, &mime_type));
if (!found)
return nullptr;
@@ -4510,6 +4511,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) {
@@ -4586,6 +4587,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) {
void RenderFrameImpl::FrameFocused() {
Send(new FrameHostMsg_FrameFocused(routing_id_));
GetFrameHost()->FrameFocused();
+ for (auto& observer : observers_)
+ observer.FrameFocused();
}
void RenderFrameImpl::DidChangeName(const blink::WebString& name) {
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index f2d4f932341e..409eabcdabc3 100644
index f133e1651a27..1785e961f089 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -786,6 +786,8 @@ void RenderThreadImpl::Init() {
@@ -790,6 +790,8 @@ void RenderThreadImpl::Init() {
StartServiceManagerConnection();
@@ -409,10 +375,10 @@ index f2d4f932341e..409eabcdabc3 100644
&RenderThreadImpl::OnRendererInterfaceRequest, base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index a89a61d35a4b..5d8369cc2eda 100644
index 6a81c4a2a94e..2c52d6085df9 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -949,6 +949,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() {
@@ -959,6 +959,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() {
//------------------------------------------------------------------------------
@@ -427,12 +393,12 @@ index a89a61d35a4b..5d8369cc2eda 100644
+
blink::mojom::CodeCacheHost& RendererBlinkPlatformImpl::GetCodeCacheHost() {
if (!code_cache_host_) {
code_cache_host_ = blink::mojom::ThreadSafeCodeCacheHostPtr::Create(
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 f1bc21b53606..0706ff050349 100644
index 0db3cf9498a1..a13458688a08 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -211,6 +211,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -205,6 +205,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
media::GpuVideoAcceleratorFactories* GetGpuFactories() override;
@@ -443,48 +409,48 @@ index f1bc21b53606..0706ff050349 100644
// 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 3a48c59b7e3e..d10ef64adbba 100644
index 427132c6920e..4809ddaf21e1 100644
--- content/shell/browser/shell_plugin_service_filter.cc
+++ content/shell/browser/shell_plugin_service_filter.cc
@@ -18,6 +18,7 @@ bool ShellPluginServiceFilter::IsPluginAvailable(
@@ -17,6 +17,7 @@ bool ShellPluginServiceFilter::IsPluginAvailable(
int render_process_id,
int render_frame_id,
const void* context,
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 7767a620a9fd..8a95377f5f3b 100644
index 337b4b0653fe..107ab4c9d8a8 100644
--- content/shell/browser/shell_plugin_service_filter.h
+++ content/shell/browser/shell_plugin_service_filter.h
@@ -21,6 +21,7 @@ class ShellPluginServiceFilter : public PluginServiceFilter {
@@ -20,6 +20,7 @@ class ShellPluginServiceFilter : public PluginServiceFilter {
bool IsPluginAvailable(int render_process_id,
int render_frame_id,
const void* context,
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 6500af1d859f..0d078a4a4281 100644
index eb280cd21c6d..b499b2536b2d 100644
--- content/test/fake_plugin_service.cc
+++ content/test/fake_plugin_service.cc
@@ -29,6 +29,7 @@ bool FakePluginService::GetPluginInfo(int render_process_id,
@@ -28,6 +28,7 @@ bool FakePluginService::GetPluginInfoArray(
bool FakePluginService::GetPluginInfo(int render_process_id,
int render_frame_id,
ResourceContext* context,
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 205dfc39dfa7..ec250828b0ba 100644
index df49da7cbec0..edf526fff7f8 100644
--- content/test/fake_plugin_service.h
+++ content/test/fake_plugin_service.h
@@ -30,6 +30,7 @@ class FakePluginService : public PluginService {
@@ -29,6 +29,7 @@ class FakePluginService : public PluginService {
bool GetPluginInfo(int render_process_id,
int render_frame_id,
ResourceContext* context,
const GURL& url,
+ bool is_main_frame,
const url::Origin& main_frame_origin,

View File

@@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/pepper/pepper_flash_file_message_filter.cc content/browser/renderer_host/pepper/pepper_flash_file_message_filter.cc
index 3619dfae8c83..7efdf571dec8 100644
index 6c40589cc989..a34b0eb0eb15 100644
--- content/browser/renderer_host/pepper/pepper_flash_file_message_filter.cc
+++ content/browser/renderer_host/pepper/pepper_flash_file_message_filter.cc
@@ -55,7 +55,7 @@ PepperFlashFileMessageFilter::PepperFlashFileMessageFilter(

View File

@@ -1,5 +1,5 @@
diff --git chrome/chrome_elf/BUILD.gn chrome/chrome_elf/BUILD.gn
index 9c59c4b5e7a6..e470635e88d2 100644
index 99ef45605fb5..2e16fc44a242 100644
--- chrome/chrome_elf/BUILD.gn
+++ chrome/chrome_elf/BUILD.gn
@@ -7,6 +7,7 @@
@@ -10,7 +10,7 @@ index 9c59c4b5e7a6..e470635e88d2 100644
import("//chrome/process_version_rc_template.gni")
import("//testing/test.gni")
@@ -132,9 +133,6 @@ source_set("constants") {
@@ -110,9 +111,6 @@ source_set("constants") {
static_library("crash") {
sources = [
@@ -20,7 +20,7 @@ index 9c59c4b5e7a6..e470635e88d2 100644
"crash/crash_helper.cc",
"crash/crash_helper.h",
]
@@ -142,6 +140,7 @@ static_library("crash") {
@@ -120,6 +118,7 @@ static_library("crash") {
":hook_util",
"//base", # This needs to go. DEP of app, crash_keys, client.
"//base:base_static", # pe_image
@@ -28,7 +28,7 @@ index 9c59c4b5e7a6..e470635e88d2 100644
"//chrome/install_static:install_static_util",
"//components/crash/content/app",
"//components/crash/core/common", # crash_keys
@@ -149,6 +148,17 @@ static_library("crash") {
@@ -127,6 +126,17 @@ static_library("crash") {
"//content/public/common:result_codes",
"//third_party/crashpad/crashpad/client", # DumpWithoutCrash
]
@@ -127,7 +127,7 @@ index bcf172e645a2..f879aa745adf 100644
// on the given |command_line|.
void SetCrashKeysFromCommandLine(const base::CommandLine& command_line);
diff --git components/crash/content/app/breakpad_linux.cc components/crash/content/app/breakpad_linux.cc
index bb5ee46d3f2b..639958e189ad 100644
index 505156ada2d8..34ad815d20c6 100644
--- components/crash/content/app/breakpad_linux.cc
+++ components/crash/content/app/breakpad_linux.cc
@@ -28,6 +28,7 @@
@@ -138,7 +138,7 @@ index bb5ee46d3f2b..639958e189ad 100644
#include "base/files/file_path.h"
#include "base/lazy_instance.h"
#include "base/linux_util.h"
@@ -101,6 +102,7 @@ namespace {
@@ -104,6 +105,7 @@ namespace {
uint64_t g_crash_loop_before_time = 0;
#else
const char kUploadURL[] = "https://clients2.google.com/cr/report";
@@ -146,7 +146,7 @@ index bb5ee46d3f2b..639958e189ad 100644
#endif
bool g_is_crash_reporter_enabled = false;
@@ -714,7 +716,7 @@ bool CrashDone(const MinidumpDescriptor& minidump,
@@ -717,7 +719,7 @@ bool CrashDone(const MinidumpDescriptor& minidump,
info.process_type_length = 7;
info.distro = base::g_linux_distro;
info.distro_length = my_strlen(base::g_linux_distro);
@@ -155,7 +155,7 @@ index bb5ee46d3f2b..639958e189ad 100644
info.process_start_time = g_process_start_time;
info.oom_size = base::g_oom_size;
info.pid = g_pid;
@@ -1400,7 +1402,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info,
@@ -1404,7 +1406,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info,
header_content_encoding,
header_content_type,
post_file,
@@ -164,7 +164,7 @@ index bb5ee46d3f2b..639958e189ad 100644
"--timeout=10", // Set a timeout so we don't hang forever.
"--tries=1", // Don't retry if the upload fails.
"-O", // Output reply to the file descriptor path.
@@ -1740,10 +1742,19 @@ void HandleCrashDump(const BreakpadInfo& info) {
@@ -1744,10 +1746,19 @@ void HandleCrashDump(const BreakpadInfo& info) {
GetCrashReporterClient()->GetProductNameAndVersion(&product_name, &version);
writer.AddBoundary();
@@ -186,7 +186,7 @@ index bb5ee46d3f2b..639958e189ad 100644
if (info.pid > 0) {
char pid_value_buf[kUint64StringSize];
uint64_t pid_value_len = my_uint64_len(info.pid);
@@ -1860,10 +1871,20 @@ void HandleCrashDump(const BreakpadInfo& info) {
@@ -1864,10 +1875,20 @@ void HandleCrashDump(const BreakpadInfo& info) {
crash_reporter::internal::TransitionalCrashKeyStorage;
CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys);
const CrashKeyStorage::Entry* entry;
@@ -208,7 +208,7 @@ index bb5ee46d3f2b..639958e189ad 100644
writer.AddBoundary();
writer.Flush();
}
@@ -2075,6 +2096,17 @@ void SetChannelCrashKey(const std::string& channel) {
@@ -2079,6 +2100,17 @@ void SetChannelCrashKey(const std::string& channel) {
channel_key.Set(channel);
}
@@ -227,7 +227,7 @@ index bb5ee46d3f2b..639958e189ad 100644
void InitNonBrowserCrashReporterForAndroid(const std::string& process_type) {
SanitizationInfo sanitization_info;
diff --git components/crash/content/app/breakpad_linux.h components/crash/content/app/breakpad_linux.h
index fb7f0a8af261..0d25d227fb8a 100644
index 6e95af6ca7f5..061fb189d60f 100644
--- components/crash/content/app/breakpad_linux.h
+++ components/crash/content/app/breakpad_linux.h
@@ -20,6 +20,9 @@ extern void InitCrashReporter(const std::string& process_type);
@@ -402,10 +402,10 @@ index 5eba3742684b..9bc66b0dbfb9 100644
->set_system_crash_reporter_forwarding(crashpad::TriState::kDisabled);
}
diff --git components/crash/content/app/crashpad_mac.mm components/crash/content/app/crashpad_mac.mm
index a76d264648d2..ff9a19e259fb 100644
index c2de9fe867c5..29cda67a1f72 100644
--- components/crash/content/app/crashpad_mac.mm
+++ components/crash/content/app/crashpad_mac.mm
@@ -16,11 +16,14 @@
@@ -16,12 +16,15 @@
#include "base/logging.h"
#include "base/mac/bundle_locations.h"
#include "base/mac/foundation_util.h"
@@ -414,13 +414,14 @@ index a76d264648d2..ff9a19e259fb 100644
#include "base/strings/string_piece.h"
#include "base/strings/stringprintf.h"
#include "base/strings/sys_string_conversions.h"
#include "build/branding_buildflags.h"
#include "components/crash/content/app/crash_reporter_client.h"
+#include "components/crash/content/app/crash_switches.h"
+#include "content/public/common/content_paths.h"
#include "third_party/crashpad/crashpad/client/crash_report_database.h"
#include "third_party/crashpad/crashpad/client/crashpad_client.h"
#include "third_party/crashpad/crashpad/client/crashpad_info.h"
@@ -36,12 +39,25 @@ namespace {
@@ -37,12 +40,25 @@ namespace {
std::map<std::string, std::string> GetProcessSimpleAnnotations() {
static std::map<std::string, std::string> annotations = []() -> auto {
std::map<std::string, std::string> process_annotations;
@@ -448,9 +449,9 @@ index a76d264648d2..ff9a19e259fb 100644
+ process_annotations["product"] = product_name;
+ }
#if defined(GOOGLE_CHROME_BUILD)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
// Empty means stable.
@@ -57,12 +73,16 @@ std::map<std::string, std::string> GetProcessSimpleAnnotations() {
@@ -58,12 +74,16 @@ std::map<std::string, std::string> GetProcessSimpleAnnotations() {
process_annotations["channel"] = "";
}
@@ -472,7 +473,7 @@ index a76d264648d2..ff9a19e259fb 100644
} // @autoreleasepool
return process_annotations;
}();
@@ -122,10 +142,10 @@ base::FilePath PlatformCrashpadInitialization(
@@ -123,10 +143,10 @@ base::FilePath PlatformCrashpadInitialization(
if (initial_client) {
@autoreleasepool {
@@ -487,7 +488,7 @@ index a76d264648d2..ff9a19e259fb 100644
// Is there a way to recover if this fails?
CrashReporterClient* crash_reporter_client = GetCrashReporterClient();
@@ -137,7 +157,7 @@ base::FilePath PlatformCrashpadInitialization(
@@ -138,7 +158,7 @@ base::FilePath PlatformCrashpadInitialization(
// crash server won't have symbols for any other build types.
std::string url = "https://clients2.google.com/cr/report";
#else
@@ -496,7 +497,7 @@ index a76d264648d2..ff9a19e259fb 100644
#endif
std::vector<std::string> arguments;
@@ -160,6 +180,12 @@ base::FilePath PlatformCrashpadInitialization(
@@ -161,6 +181,12 @@ base::FilePath PlatformCrashpadInitialization(
"--reset-own-crash-exception-port-to-system-default");
}
@@ -510,10 +511,10 @@ index a76d264648d2..ff9a19e259fb 100644
handler_path, database_path, metrics_path, url,
GetProcessSimpleAnnotations(), arguments, true, false);
diff --git components/crash/content/app/crashpad_win.cc components/crash/content/app/crashpad_win.cc
index 8f55759a6f4a..5d60fc3f84eb 100644
index d13ae5cf7e40..f87f84d3121c 100644
--- components/crash/content/app/crashpad_win.cc
+++ components/crash/content/app/crashpad_win.cc
@@ -35,8 +35,8 @@ void GetPlatformCrashpadAnnotations(
@@ -36,8 +36,8 @@ void GetPlatformCrashpadAnnotations(
base::string16 product_name, version, special_build, channel_name;
crash_reporter_client->GetProductNameAndVersion(
exe_file, &product_name, &version, &special_build, &channel_name);
@@ -521,10 +522,10 @@ index 8f55759a6f4a..5d60fc3f84eb 100644
- (*annotations)["ver"] = base::UTF16ToUTF8(version);
+ (*annotations)["product"] = base::UTF16ToUTF8(product_name);
+ (*annotations)["version"] = base::UTF16ToUTF8(version);
#if defined(GOOGLE_CHROME_BUILD)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
// Empty means stable.
const bool allow_empty_channel = true;
@@ -48,9 +48,9 @@ void GetPlatformCrashpadAnnotations(
@@ -49,9 +49,9 @@ void GetPlatformCrashpadAnnotations(
if (!special_build.empty())
(*annotations)["special"] = base::UTF16ToUTF8(special_build);
#if defined(ARCH_CPU_X86)
@@ -536,7 +537,7 @@ index 8f55759a6f4a..5d60fc3f84eb 100644
#endif
}
@@ -65,7 +65,9 @@ base::FilePath PlatformCrashpadInitialization(
@@ -66,7 +66,9 @@ base::FilePath PlatformCrashpadInitialization(
base::FilePath metrics_path; // Only valid in the browser process.
const char kPipeNameVar[] = "CHROME_CRASHPAD_PIPE_NAME";
@@ -546,9 +547,9 @@ index 8f55759a6f4a..5d60fc3f84eb 100644
std::unique_ptr<base::Environment> env(base::Environment::Create());
if (initial_client) {
CrashReporterClient* crash_reporter_client = GetCrashReporterClient();
@@ -85,13 +87,13 @@ base::FilePath PlatformCrashpadInitialization(
@@ -86,13 +88,13 @@ base::FilePath PlatformCrashpadInitialization(
#if defined(GOOGLE_CHROME_BUILD)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
std::string url = "https://clients2.google.com/cr/report";
-#else
- std::string url;
@@ -563,7 +564,7 @@ index 8f55759a6f4a..5d60fc3f84eb 100644
base::FilePath exe_file(exe_path);
if (exe_file.empty()) {
@@ -109,13 +111,14 @@ base::FilePath PlatformCrashpadInitialization(
@@ -110,13 +112,14 @@ base::FilePath PlatformCrashpadInitialization(
crashpad::TriState::kEnabled, kIndirectMemoryLimit);
}
@@ -583,7 +584,7 @@ index 8f55759a6f4a..5d60fc3f84eb 100644
if (!user_data_dir.empty()) {
start_arguments.push_back(std::string("--user-data-dir=") +
user_data_dir);
@@ -126,9 +129,12 @@ base::FilePath PlatformCrashpadInitialization(
@@ -127,9 +130,12 @@ base::FilePath PlatformCrashpadInitialization(
start_arguments.push_back("/prefetch:7");
} else {
base::FilePath exe_dir = exe_file.DirName();

View File

@@ -146,7 +146,7 @@ index a2b0c74636f4..01370fdc20d9 100644
struct Data;
diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn
index b841b0ccd3a2..94ff9177d842 100644
index 550f686a4562..b6cc04846d42 100644
--- third_party/crashpad/crashpad/handler/BUILD.gn
+++ third_party/crashpad/crashpad/handler/BUILD.gn
@@ -12,6 +12,7 @@
@@ -157,7 +157,7 @@ index b841b0ccd3a2..94ff9177d842 100644
import("../build/crashpad_buildconfig.gni")
static_library("handler") {
@@ -65,6 +66,17 @@ static_library("handler") {
@@ -74,6 +75,17 @@ static_library("handler") {
]
}
@@ -175,7 +175,7 @@ index b841b0ccd3a2..94ff9177d842 100644
public_configs = [ "..:crashpad_config" ]
public_deps = [
@@ -77,6 +89,7 @@ static_library("handler") {
@@ -86,6 +98,7 @@ static_library("handler") {
"../minidump",
"../snapshot",
"../tools:tool_support",
@@ -248,7 +248,7 @@ index 2ec1147d2620..8ff9a72e0bd7 100644
//! \brief Calls ProcessPendingReports() in response to ReportPending() having
//! been called on any thread, as well as periodically on a timer.
diff --git third_party/crashpad/crashpad/handler/handler_main.cc third_party/crashpad/crashpad/handler/handler_main.cc
index 05a2e7b44e41..6e72c17a57e6 100644
index 7b69e8481ffa..2cee1da0dc4b 100644
--- third_party/crashpad/crashpad/handler/handler_main.cc
+++ third_party/crashpad/crashpad/handler/handler_main.cc
@@ -36,8 +36,10 @@
@@ -262,7 +262,7 @@ index 05a2e7b44e41..6e72c17a57e6 100644
#include "client/crash_report_database.h"
#include "client/crashpad_client.h"
#include "client/crashpad_info.h"
@@ -96,6 +98,10 @@
@@ -100,6 +102,10 @@
#include "handler/linux/exception_handler_server.h"
#endif // OS_MACOSX
@@ -273,28 +273,28 @@ index 05a2e7b44e41..6e72c17a57e6 100644
namespace crashpad {
namespace {
@@ -188,6 +194,9 @@ struct Options {
@@ -195,6 +201,9 @@ struct Options {
bool periodic_tasks;
bool rate_limit;
bool upload_gzip;
+ int max_uploads;
+ int max_database_size;
+ int max_database_age;
};
// Splits |key_value| on '=' and inserts the resulting key and value into |map|.
@@ -553,6 +562,9 @@ int HandlerMain(int argc,
#if defined(OS_CHROMEOS)
bool use_cros_crash_reporter;
#endif // OS_CHROMEOS
@@ -569,6 +578,9 @@ int HandlerMain(int argc,
kOptionTraceParentWithException,
#endif
kOptionURL,
+ kOptionMaxUploads,
+ kOptionMaxDatabaseSize,
+ kOptionMaxDatabaseAge,
// Standard options.
kOptionHelp = -2,
@@ -620,6 +632,9 @@ int HandlerMain(int argc,
{"url", required_argument, nullptr, kOptionURL},
#if defined(OS_CHROMEOS)
kOptionUseCrosCrashReporter,
#endif // OS_CHROMEOS
@@ -645,6 +657,9 @@ int HandlerMain(int argc,
#endif // OS_CHROMEOS
{"help", no_argument, nullptr, kOptionHelp},
{"version", no_argument, nullptr, kOptionVersion},
+ {"max-uploads", required_argument, nullptr, kOptionMaxUploads},
@@ -303,7 +303,7 @@ index 05a2e7b44e41..6e72c17a57e6 100644
{nullptr, 0, nullptr, 0},
};
@@ -759,6 +774,27 @@ int HandlerMain(int argc,
@@ -784,6 +799,27 @@ int HandlerMain(int argc,
options.url = optarg;
break;
}
@@ -328,10 +328,10 @@ index 05a2e7b44e41..6e72c17a57e6 100644
+ }
+ break;
+ }
case kOptionHelp: {
Usage(me);
MetricsRecordExit(Metrics::LifetimeMilestone::kExitedEarly);
@@ -879,8 +915,14 @@ int HandlerMain(int argc,
#if defined(OS_CHROMEOS)
case kOptionUseCrosCrashReporter: {
options.use_cros_crash_reporter = true;
@@ -910,8 +946,14 @@ int HandlerMain(int argc,
upload_thread_options.upload_gzip = options.upload_gzip;
upload_thread_options.watch_pending_reports = options.periodic_tasks;
@@ -346,7 +346,7 @@ index 05a2e7b44e41..6e72c17a57e6 100644
upload_thread.Get()->Start();
}
@@ -908,7 +950,8 @@ int HandlerMain(int argc,
@@ -961,7 +1003,8 @@ int HandlerMain(int argc,
ScopedStoppable prune_thread;
if (options.periodic_tasks) {
prune_thread.Reset(new PruneCrashReportThread(

View File

@@ -132,7 +132,7 @@ index c0f80fd848d6..75b0e53ae68e 100644
// A weak pointer to the current or pending RenderViewHost. We don't access
// this through the host_contents because we want to deal with the pending
diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h
index 2f4890b54897..84164c1170a3 100644
index ed47ee5227ac..6b9e93784eaf 100644
--- extensions/browser/extensions_browser_client.h
+++ extensions/browser/extensions_browser_client.h
@@ -54,6 +54,7 @@ class ComponentExtensionResourceManager;
@@ -141,9 +141,9 @@ index 2f4890b54897..84164c1170a3 100644
class ExtensionError;
+class ExtensionHost;
class ExtensionHostDelegate;
class ExtensionApiFrameIdMap;
class ExtensionApiFrameIdMapHelper;
@@ -195,6 +196,14 @@ class ExtensionsBrowserClient {
class ExtensionSet;
class ExtensionSystem;
@@ -193,6 +194,14 @@ class ExtensionsBrowserClient {
virtual std::unique_ptr<ExtensionHostDelegate>
CreateExtensionHostDelegate() = 0;
@@ -159,10 +159,10 @@ index 2f4890b54897..84164c1170a3 100644
// once each time the extensions system is loaded per browser_context. The
// implementation may wish to use the BrowserContext to record the current
diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc
index e0f053ce45bd..3bf13bc0ad03 100644
index 55dcd62be9fc..c19fa68da048 100644
--- extensions/browser/process_manager.cc
+++ extensions/browser/process_manager.cc
@@ -382,9 +382,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
@@ -380,9 +380,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
return true; // TODO(kalman): return false here? It might break things...
DVLOG(1) << "CreateBackgroundHost " << extension->id();

View File

@@ -1,8 +1,8 @@
diff --git .gn .gn
index 70856f65e720..649c347a899b 100644
index b66e15317bb2..79f09da67517 100644
--- .gn
+++ .gn
@@ -670,6 +670,8 @@ exec_script_whitelist =
@@ -667,6 +667,8 @@ exec_script_whitelist =
"//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
@@ -12,10 +12,10 @@ index 70856f65e720..649c347a899b 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 19fd588dfed1..30d3a9774eb3 100644
index 5e2f6b9b0f41..8ce1c0d77f76 100644
--- BUILD.gn
+++ BUILD.gn
@@ -204,6 +204,7 @@ group("gn_all") {
@@ -209,6 +209,7 @@ group("gn_all") {
if (!is_ios && !is_fuchsia) {
deps += [
@@ -100,7 +100,7 @@ index ef8aeda56458..5b7f057311b9 100644
diff --git build/vs_toolchain.py build/vs_toolchain.py
index 97f503bff408..fe1f0344dd77 100755
index 3f2506128643..bf3a34778458 100755
--- build/vs_toolchain.py
+++ build/vs_toolchain.py
@@ -81,11 +81,18 @@ def SetEnvironmentAndGetRuntimeDllDirs():
@@ -123,10 +123,10 @@ index 97f503bff408..fe1f0344dd77 100755
# directory in order to run binaries locally, but they are needed in order
# to create isolates or the mini_installer. Copying them to the output
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index 93af4dcd03bb..e1a8543a5f14 100644
index 5b58ed59878e..2e45266d21db 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -271,7 +271,7 @@ template("chrome_paks") {
@@ -277,7 +277,7 @@ template("chrome_paks") {
}
input_locales = locales
@@ -136,10 +136,10 @@ index 93af4dcd03bb..e1a8543a5f14 100644
if (is_mac) {
output_locales = locales_as_mac_outputs
diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn
index 7a779fc3ce1a..2ba4d85fa276 100644
index cc2bfe0642d1..688ae4d8be2c 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -133,7 +133,7 @@ template("generate_mini_installer") {
@@ -138,7 +138,7 @@ template("generate_mini_installer") {
inputs = [
"$chrome_dll_file",
"$root_out_dir/chrome.exe",

View File

@@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids
index 7ac3cf37b481..0ad6d1b8c31d 100644
index a4c39b1f6b14..5706254c1ec4 100644
--- tools/gritsettings/resource_ids
+++ tools/gritsettings/resource_ids
@@ -466,4 +466,11 @@
@@ -472,4 +472,11 @@
# Please read the header and find the right section above instead.
# Resource ids starting at 31000 are reserved for projects built on Chromium.

View File

@@ -1,8 +1,8 @@
diff --git ui/base/ime/win/input_method_win_base.cc ui/base/ime/win/input_method_win_base.cc
index 9d014932e5cd..8fcf988f5897 100644
index d88e691ee118..e89dade3ff04 100644
--- ui/base/ime/win/input_method_win_base.cc
+++ ui/base/ime/win/input_method_win_base.cc
@@ -264,8 +264,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const {
@@ -263,8 +263,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const {
// receiving keyboard input as long as it is an active window. This works well
// even when the |attached_window_handle| becomes active but has not received
// WM_FOCUS yet.

View File

@@ -39,10 +39,10 @@ index 07f06ac694f5..831fd9f82dbe 100644
void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() {
diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn
index f60af132bcdd..626c0081b78a 100644
index 9e12dd26146d..4748af4b1cc8 100644
--- chrome/test/BUILD.gn
+++ chrome/test/BUILD.gn
@@ -4457,7 +4457,7 @@ test("unit_tests") {
@@ -4545,7 +4545,7 @@ test("unit_tests") {
if (use_gio) {
configs += [ "//build/linux:gio_config" ]
}
@@ -51,7 +51,7 @@ index f60af132bcdd..626c0081b78a 100644
deps += [ "//chrome/browser/ui/libgtkui" ]
}
@@ -5471,7 +5471,7 @@ if (!is_android) {
@@ -5599,7 +5599,7 @@ if (!is_android) {
# suites, it seems like one or another starts timing out too.
"../browser/ui/views/keyboard_access_browsertest.cc",
]

View File

@@ -1,5 +1,5 @@
diff --git base/files/file_path_watcher_linux.cc base/files/file_path_watcher_linux.cc
index 4b727c37c4f3..ba97a9e38ae7 100644
index 51cecad2eb04..004054491187 100644
--- base/files/file_path_watcher_linux.cc
+++ base/files/file_path_watcher_linux.cc
@@ -5,6 +5,7 @@

View File

@@ -1,31 +1,31 @@
diff --git base/message_loop/message_loop.cc base/message_loop/message_loop.cc
index 90cb3e3fc7dd..903f258f2e1c 100644
index a8a66308a1c5..65ff368c5a72 100644
--- base/message_loop/message_loop.cc
+++ base/message_loop/message_loop.cc
@@ -100,6 +100,9 @@ bool MessageLoop::IsIdleForTesting() {
//------------------------------------------------------------------------------
@@ -174,6 +174,9 @@ MessageLoopForUI::MessageLoopForUI(MessagePumpType type) : MessageLoop(type) {
#endif
}
+MessageLoopForUI::MessageLoopForUI(std::unique_ptr<MessagePump> pump)
+ : MessageLoop(TYPE_UI, std::move(pump)) {}
+ : MessageLoop(MessagePumpType::UI, std::move(pump)) {}
+
// static
std::unique_ptr<MessageLoop> MessageLoop::CreateUnbound(Type type) {
return WrapUnique(new MessageLoop(type, nullptr));
#if defined(OS_IOS)
void MessageLoopForUI::Attach() {
sequence_manager_->AttachToMessagePump();
diff --git base/message_loop/message_loop.h base/message_loop/message_loop.h
index a1d6acc4e78d..f9518bc96ce4 100644
index cc760ffab174..131ccbb6520d 100644
--- base/message_loop/message_loop.h
+++ base/message_loop/message_loop.h
@@ -229,6 +229,7 @@ class BASE_EXPORT MessageLoop {
@@ -217,6 +217,7 @@ class BASE_EXPORT MessageLoop {
class BASE_EXPORT MessageLoopForUI : public MessageLoop {
public:
explicit MessageLoopForUI(Type type = TYPE_UI);
explicit MessageLoopForUI(MessagePumpType type = MessagePumpType::UI);
+ explicit MessageLoopForUI(std::unique_ptr<MessagePump> pump);
#if defined(OS_IOS)
// On iOS, the main message loop cannot be Run(). Instead call Attach(),
diff --git base/message_loop/message_loop_current.cc base/message_loop/message_loop_current.cc
index 54e2d2b41dbd..cd299c90618b 100644
index 7688ba3d7b0d..9acaaa0d5c7f 100644
--- base/message_loop/message_loop_current.cc
+++ base/message_loop/message_loop_current.cc
@@ -47,6 +47,8 @@ void MessageLoopCurrent::AddDestructionObserver(
@@ -38,10 +38,10 @@ index 54e2d2b41dbd..cd299c90618b 100644
current_->RemoveDestructionObserver(destruction_observer);
}
diff --git base/message_loop/message_loop_current.h base/message_loop/message_loop_current.h
index 08a1c5e36735..48c5f8d102d0 100644
index a3b48b58d367..57f8dc7fe2fa 100644
--- base/message_loop/message_loop_current.h
+++ base/message_loop/message_loop_current.h
@@ -124,6 +124,12 @@ class BASE_EXPORT MessageLoopCurrent {
@@ -120,6 +120,12 @@ class BASE_EXPORT MessageLoopCurrent {
// posted tasks.
void SetAddQueueTimeToTasks(bool enable);
@@ -54,8 +54,8 @@ index 08a1c5e36735..48c5f8d102d0 100644
// Enables or disables the recursive task processing. This happens in the case
// of recursive message loops. Some unwanted message loops may occur when
// using common controls or printer functions. By default, recursive task
@@ -194,6 +200,13 @@ class BASE_EXPORT MessageLoopCurrent {
friend class web::TestWebThreadBundle;
@@ -190,6 +196,13 @@ class BASE_EXPORT MessageLoopCurrent {
friend class web::WebTaskEnvironment;
sequence_manager::internal::SequenceManagerImpl* current_;
+

View File

@@ -1,8 +1,8 @@
diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h
index c0c22fa5429f..f0a6215f3f54 100644
index dd1363a6b295..b69c7895c0e3 100644
--- content/public/common/common_param_traits_macros.h
+++ content/public/common/common_param_traits_macros.h
@@ -191,6 +191,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
@@ -189,6 +189,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes)
IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale)
IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled)
@@ -11,10 +11,10 @@ index c0c22fa5429f..f0a6215f3f54 100644
IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
diff --git content/public/common/web_preferences.cc content/public/common/web_preferences.cc
index 678bd07c0753..1ae838c3de32 100644
index 114b0f7d04cd..adce9ab8c3b5 100644
--- content/public/common/web_preferences.cc
+++ content/public/common/web_preferences.cc
@@ -169,6 +169,7 @@ WebPreferences::WebPreferences()
@@ -167,6 +167,7 @@ WebPreferences::WebPreferences()
caret_browsing_enabled(false),
use_solid_color_scrollbars(false),
navigate_on_drag_drop(true),
@@ -23,10 +23,10 @@ index 678bd07c0753..1ae838c3de32 100644
record_whole_document(false),
cookie_enabled(true),
diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h
index ca883e52fee0..0bc16d1e8330 100644
index e47b250f52bd..dfa18577d402 100644
--- content/public/common/web_preferences.h
+++ content/public/common/web_preferences.h
@@ -186,6 +186,7 @@ struct CONTENT_EXPORT WebPreferences {
@@ -184,6 +184,7 @@ struct CONTENT_EXPORT WebPreferences {
bool caret_browsing_enabled;
bool use_solid_color_scrollbars;
bool navigate_on_drag_drop;
@@ -35,10 +35,10 @@ index ca883e52fee0..0bc16d1e8330 100644
bool record_whole_document;
diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc
index d0ca81590d2b..8f2f30878650 100644
index f780c653d6e5..4b07220bac8c 100644
--- content/renderer/render_view_impl.cc
+++ content/renderer/render_view_impl.cc
@@ -1018,6 +1018,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
@@ -998,6 +998,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
#endif
WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available);

View File

@@ -34,18 +34,18 @@ index 323534a720c1..72b232f0ed85 100644
bool DownloadPrefs::IsFromTrustedSource(const download::DownloadItem& item) {
diff --git chrome/browser/printing/print_preview_dialog_controller.cc chrome/browser/printing/print_preview_dialog_controller.cc
index d2a3be7590a0..883825bfc996 100644
index 3dcc3aa7bea2..637661e9d0b9 100644
--- chrome/browser/printing/print_preview_dialog_controller.cc
+++ chrome/browser/printing/print_preview_dialog_controller.cc
@@ -15,6 +15,7 @@
#include "base/path_service.h"
@@ -16,6 +16,7 @@
#include "base/strings/utf_string_conversions.h"
#include "build/branding_buildflags.h"
#include "build/build_config.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
#include "chrome/browser/printing/print_view_manager.h"
@@ -440,8 +441,11 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog(
@@ -456,8 +457,11 @@ WebContents* PrintPreviewDialogController::CreatePrintPreviewDialog(
content::HostZoomMap::Get(preview_dialog->GetSiteInstance())
->SetZoomLevelForHostAndScheme(print_url.scheme(), print_url.host(), 0);
PrintViewManager::CreateForWebContents(preview_dialog);
@@ -112,7 +112,7 @@ index 12f77178ea92..470b13bd7879 100644
ConstrainedWebDialogUI::~ConstrainedWebDialogUI() {
diff --git chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
index 6147b07f6dad..a68b5bfaf193 100644
index 00cf10991ede..8087cb6aab05 100644
--- chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
+++ chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
@@ -143,8 +143,10 @@ PdfPrinterHandler::PdfPrinterHandler(Profile* profile,
@@ -141,7 +141,7 @@ index 6147b07f6dad..a68b5bfaf193 100644
DCHECK(!print_callback_);
print_callback_ = std::move(callback);
@@ -323,7 +327,11 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
@@ -324,7 +328,11 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
// If the directory is empty there is no reason to create it or use the
// default location.
if (path.empty()) {
@@ -153,9 +153,9 @@ index 6147b07f6dad..a68b5bfaf193 100644
return;
}
@@ -333,8 +341,14 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
base::PostTaskWithTraitsAndReplyWithResult(
FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
@@ -335,8 +343,14 @@ void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
FROM_HERE,
{base::ThreadPool(), base::MayBlock(), base::TaskPriority::BEST_EFFORT},
base::BindOnce(&SelectSaveDirectory, path, default_path),
+#if !BUILDFLAG(ENABLE_CEF)
base::BindOnce(&PdfPrinterHandler::OnDirectorySelected,
@@ -168,7 +168,7 @@ index 6147b07f6dad..a68b5bfaf193 100644
}
void PdfPrinterHandler::PostPrintToPdfTask() {
@@ -350,6 +364,7 @@ void PdfPrinterHandler::OnGotUniqueFileName(const base::FilePath& path) {
@@ -353,6 +367,7 @@ void PdfPrinterHandler::OnGotUniqueFileName(const base::FilePath& path) {
FileSelected(path, 0, nullptr);
}
@@ -176,7 +176,7 @@ index 6147b07f6dad..a68b5bfaf193 100644
void PdfPrinterHandler::OnDirectorySelected(const base::FilePath& filename,
const base::FilePath& directory) {
base::FilePath path = directory.Append(filename);
@@ -374,5 +389,36 @@ void PdfPrinterHandler::OnDirectorySelected(const base::FilePath& filename,
@@ -377,5 +392,36 @@ void PdfPrinterHandler::OnDirectorySelected(const base::FilePath& filename,
&file_type_info, 0, base::FilePath::StringType(),
platform_util::GetTopLevel(preview_web_contents_->GetNativeView()), NULL);
}
@@ -262,7 +262,7 @@ index 06f5799efbb9..6119691b2700 100644
Profile* const profile_;
StickySettings* const sticky_settings_;
diff --git chrome/browser/ui/webui/print_preview/print_preview_handler.cc chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index e3d7c5f14cd5..70d1b47d35c9 100644
index 0a6c4d4de3aa..a22377a02343 100644
--- chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -26,6 +26,7 @@
@@ -273,7 +273,7 @@ index e3d7c5f14cd5..70d1b47d35c9 100644
#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/bad_message.h"
#include "chrome/browser/browser_process.h"
@@ -1226,6 +1227,9 @@ PrinterHandler* PrintPreviewHandler::GetPrinterHandler(
@@ -1253,6 +1254,9 @@ PrinterHandler* PrintPreviewHandler::GetPrinterHandler(
}
return privet_printer_handler_.get();
}
@@ -283,7 +283,7 @@ index e3d7c5f14cd5..70d1b47d35c9 100644
#endif
if (printer_type == PrinterType::kPdfPrinter) {
if (!pdf_printer_handler_) {
@@ -1308,6 +1312,7 @@ void PrintPreviewHandler::OnPrintResult(const std::string& callback_id,
@@ -1335,6 +1339,7 @@ void PrintPreviewHandler::OnPrintResult(const std::string& callback_id,
}
void PrintPreviewHandler::RegisterForGaiaCookieChanges() {
@@ -291,7 +291,7 @@ index e3d7c5f14cd5..70d1b47d35c9 100644
DCHECK(!identity_manager_);
cloud_print_enabled_ =
GetPrefs()->GetBoolean(prefs::kCloudPrintSubmitEnabled);
@@ -1323,6 +1328,7 @@ void PrintPreviewHandler::RegisterForGaiaCookieChanges() {
@@ -1350,6 +1355,7 @@ void PrintPreviewHandler::RegisterForGaiaCookieChanges() {
identity_manager_ = IdentityManagerFactory::GetForProfile(profile);
identity_manager_->AddObserver(this);
@@ -300,7 +300,7 @@ index e3d7c5f14cd5..70d1b47d35c9 100644
void PrintPreviewHandler::UnregisterForGaiaCookieChanges() {
diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index 2dfc91469b8e..c6fd71452fb9 100644
index a855e2f1d974..755f386deebf 100644
--- chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -25,6 +25,7 @@

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/printing/print_job_worker.cc chrome/browser/printing/print_job_worker.cc
index 63f432b58371..fe664e69427a 100644
index 13f9d7af3ae7..22d991fc1c14 100644
--- chrome/browser/printing/print_job_worker.cc
+++ chrome/browser/printing/print_job_worker.cc
@@ -130,6 +130,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id, int render_frame_id)
@@ -11,10 +11,10 @@ index 63f432b58371..fe664e69427a 100644
PrintJobWorker::~PrintJobWorker() {
diff --git printing/printing_context.h printing/printing_context.h
index 9ccc1a6680bc..c0494a1cc2e2 100644
index 6a5a7c90ef5b..04c0535046dc 100644
--- printing/printing_context.h
+++ printing/printing_context.h
@@ -129,6 +129,13 @@ class PRINTING_EXPORT PrintingContext {
@@ -131,6 +131,13 @@ class PRINTING_EXPORT PrintingContext {
int job_id() const { return job_id_; }
@@ -28,7 +28,7 @@ index 9ccc1a6680bc..c0494a1cc2e2 100644
protected:
explicit PrintingContext(Delegate* delegate);
@@ -153,6 +160,10 @@ class PRINTING_EXPORT PrintingContext {
@@ -155,6 +162,10 @@ class PRINTING_EXPORT PrintingContext {
// The job id for the current job. The value is 0 if no jobs are active.
int job_id_;

View File

@@ -1,51 +0,0 @@
diff --git content/renderer/accessibility/render_accessibility_impl.cc content/renderer/accessibility/render_accessibility_impl.cc
index 96ac02ca4dda..8812c390b681 100644
--- content/renderer/accessibility/render_accessibility_impl.cc
+++ content/renderer/accessibility/render_accessibility_impl.cc
@@ -194,7 +194,6 @@ void RenderAccessibilityImpl::DidCreateNewDocument() {
void RenderAccessibilityImpl::DidCommitProvisionalLoad(
bool is_same_document_navigation,
ui::PageTransition transition) {
- is_initial_load_processed_ = false;
has_injected_stylesheet_ = false;
// Remove the image annotator if the page is loading and it was added for
// the one-shot image annotation (i.e. AXMode for image annotation is not
@@ -642,8 +641,6 @@ void RenderAccessibilityImpl::SendPendingAccessibilityEvents() {
// ids to locations.
for (size_t j = 0; j < update.nodes.size(); ++j) {
ui::AXNodeData& src = update.nodes[j];
- // TODO(accessibility) What if location hasn't been set yet?
- // Get cached location for this node or create a new entry if none exists.
ui::AXRelativeBounds& dst = locations_[update.nodes[j].id];
dst = src.relative_bounds;
}
@@ -663,13 +660,11 @@ void RenderAccessibilityImpl::SendPendingAccessibilityEvents() {
ack_token_));
reset_token_ = 0;
- if (had_layout_complete_messages && is_initial_load_processed_)
+ if (had_layout_complete_messages)
SendLocationChanges();
- if (had_load_complete_messages) {
+ if (had_load_complete_messages)
has_injected_stylesheet_ = false;
- is_initial_load_processed_ = true;
- }
if (image_annotation_debugging_)
AddImageAnnotationDebuggingAttributes(bundle.updates);
diff --git content/renderer/accessibility/render_accessibility_impl.h content/renderer/accessibility/render_accessibility_impl.h
index e5e6325c1cf6..ebc2db666772 100644
--- content/renderer/accessibility/render_accessibility_impl.h
+++ content/renderer/accessibility/render_accessibility_impl.h
@@ -238,9 +238,6 @@ class CONTENT_EXPORT RenderAccessibilityImpl
// for debugging.
bool image_annotation_debugging_ = false;
- // Has all data related to the initial page load been processed.
- bool is_initial_load_processed_ = false;
-
// So we can queue up tasks to be executed later.
base::WeakPtrFactory<RenderAccessibilityImpl> weak_factory_{this};

View File

@@ -1,8 +1,8 @@
diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc
index fa666755d5f3..779ebb5949cf 100644
index 5b2f19834d43..db733ea25bdc 100644
--- ui/base/resource/resource_bundle.cc
+++ ui/base/resource/resource_bundle.cc
@@ -809,6 +809,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)
@@ -817,6 +817,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)
: delegate_(delegate),
locale_resources_data_lock_(new base::Lock),
max_scale_factor_(SCALE_FACTOR_100P) {
@@ -15,7 +15,7 @@ index fa666755d5f3..779ebb5949cf 100644
mangle_localized_strings_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kMangleLocalizedStrings);
}
@@ -818,6 +824,11 @@ ResourceBundle::~ResourceBundle() {
@@ -826,6 +832,11 @@ ResourceBundle::~ResourceBundle() {
UnloadLocaleResources();
}
@@ -28,7 +28,7 @@ index fa666755d5f3..779ebb5949cf 100644
void ResourceBundle::InitSharedInstance(Delegate* delegate) {
DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice";
diff --git ui/base/resource/resource_bundle.h ui/base/resource/resource_bundle.h
index f5a09173007e..36734b2ed811 100644
index a342b41335a6..67bbffb9bbda 100644
--- ui/base/resource/resource_bundle.h
+++ ui/base/resource/resource_bundle.h
@@ -155,6 +155,11 @@ class UI_BASE_EXPORT ResourceBundle {

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index 7bea1b72e4d0..a0c6c00d48a7 100644
index 09e58950d351..54bbb72e2a38 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -696,10 +696,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
@@ -711,10 +711,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
void RenderWidgetHostViewAura::UpdateBackgroundColor() {
DCHECK(GetBackgroundColor());
@@ -19,7 +19,7 @@ index 7bea1b72e4d0..a0c6c00d48a7 100644
}
void RenderWidgetHostViewAura::WindowTitleChanged() {
@@ -2024,6 +2026,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2037,6 +2039,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
// Init(), because it needs to have the layer.
if (frame_sink_id_.is_valid())
window_->SetEmbedFrameSinkId(frame_sink_id_);

View File

@@ -1,8 +1,8 @@
diff --git services/service_manager/embedder/main.cc services/service_manager/embedder/main.cc
index 0d1fa74a3f43..c06c98acffb2 100644
index 099a76a207a3..25080688384f 100644
--- services/service_manager/embedder/main.cc
+++ services/service_manager/embedder/main.cc
@@ -240,22 +240,36 @@ int RunService(MainDelegate* delegate) {
@@ -241,22 +241,36 @@ int RunService(MainDelegate* delegate) {
return 0;
}
@@ -43,7 +43,7 @@ index 0d1fa74a3f43..c06c98acffb2 100644
// A flag to indicate whether Main() has been called before. On Android, we
// may re-run Main() without restarting the browser process. This flag
@@ -341,12 +355,7 @@ int Main(const MainParams& params) {
@@ -342,12 +356,7 @@ int Main(const MainParams& params) {
MainDelegate::InitializeParams init_params;
#if defined(OS_MACOSX)
@@ -57,7 +57,7 @@ index 0d1fa74a3f43..c06c98acffb2 100644
InitializeMac();
#endif
@@ -390,18 +399,16 @@ int Main(const MainParams& params) {
@@ -391,18 +400,16 @@ int Main(const MainParams& params) {
}
}
@@ -85,7 +85,7 @@ index 0d1fa74a3f43..c06c98acffb2 100644
switch (process_type) {
case ProcessType::kDefault:
NOTREACHED();
@@ -423,6 +430,8 @@ int Main(const MainParams& params) {
@@ -424,6 +431,8 @@ int Main(const MainParams& params) {
break;
}
@@ -94,7 +94,7 @@ index 0d1fa74a3f43..c06c98acffb2 100644
if (tracker) {
if (exit_code == 0) {
tracker->SetProcessPhaseIfEnabled(
@@ -434,13 +443,38 @@ int Main(const MainParams& params) {
@@ -435,13 +444,38 @@ int Main(const MainParams& params) {
}
}

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/net/profile_network_context_service.cc chrome/browser/net/profile_network_context_service.cc
index 27ebbc3dd176..063ba271c51e 100644
index 35302d90a73f..73424c925e13 100644
--- chrome/browser/net/profile_network_context_service.cc
+++ chrome/browser/net/profile_network_context_service.cc
@@ -14,6 +14,7 @@
@@ -10,7 +10,7 @@ index 27ebbc3dd176..063ba271c51e 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -427,16 +428,23 @@ ProfileNetworkContextService::CreateNetworkContextParams(
@@ -463,9 +464,22 @@ ProfileNetworkContextService::CreateNetworkContextParams(
network_context_params->cookie_manager_params =
CreateCookieManagerParams(profile_, *cookie_settings_);
@@ -18,27 +18,34 @@ index 27ebbc3dd176..063ba271c51e 100644
+
// Configure on-disk storage for non-OTR profiles. OTR profiles just use
// default behavior (in memory storage, default sizes).
PrefService* prefs = profile_->GetPrefs();
if (!in_memory) {
+#if BUILDFLAG(ENABLE_CEF)
+ PrefService* prefs = profile_->GetPrefs();
+ // Configure the HTTP cache path and size.
+ const base::FilePath& base_cache_path =
+ prefs->GetFilePath(prefs::kDiskCacheDir);
+ DCHECK(!base_cache_path.empty());
+ network_context_params->http_cache_path =
+ base_cache_path.Append(chrome::kCacheDirname);
+ network_context_params->http_cache_max_size =
+ prefs->GetInteger(prefs::kDiskCacheSize);
+#else
PrefService* local_state = g_browser_process->local_state();
// Configure the HTTP cache path and size.
base::FilePath base_cache_path;
+#if BUILDFLAG(ENABLE_CEF)
+ base_cache_path = prefs->GetFilePath(prefs::kDiskCacheDir);
+ DCHECK(!base_cache_path.empty());
+#else
chrome::GetUserCacheDirectory(path, &base_cache_path);
base::FilePath disk_cache_dir = prefs->GetFilePath(prefs::kDiskCacheDir);
if (!disk_cache_dir.empty())
base_cache_path = disk_cache_dir.Append(base_cache_path.BaseName());
+#endif
network_context_params->http_cache_path =
@@ -478,6 +492,7 @@ ProfileNetworkContextService::CreateNetworkContextParams(
base_cache_path.Append(chrome::kCacheDirname);
network_context_params->http_cache_max_size =
local_state->GetInteger(prefs::kDiskCacheSize);
+#endif
// Currently this just contains HttpServerProperties, but that will likely
// change.
diff --git chrome/browser/profiles/profile.h chrome/browser/profiles/profile.h
index e47a8949199f..c713ada1b206 100644
index 6a7b2e1c9c99..d119da2910fe 100644
--- chrome/browser/profiles/profile.h
+++ chrome/browser/profiles/profile.h
@@ -365,6 +365,11 @@ class Profile : public content::BrowserContext {
@@ -373,6 +373,11 @@ class Profile : public content::BrowserContext {
virtual bool ShouldRestoreOldSessionCookies();
virtual bool ShouldPersistSessionCookies();
@@ -51,10 +58,10 @@ index e47a8949199f..c713ada1b206 100644
// itself, if |relative_path| is empty).
virtual network::mojom::NetworkContextPtr CreateNetworkContext(
diff --git net/cookies/cookie_monster.cc net/cookies/cookie_monster.cc
index 83a309d40b1b..7d93f7891426 100644
index d522c4d82094..f4979561fdf0 100644
--- net/cookies/cookie_monster.cc
+++ net/cookies/cookie_monster.cc
@@ -509,6 +509,25 @@ void CookieMonster::SetCookieableSchemes(
@@ -493,6 +493,25 @@ void CookieMonster::SetCookieableSchemes(
MaybeRunCookieCallback(std::move(callback), true);
}
@@ -81,10 +88,10 @@ index 83a309d40b1b..7d93f7891426 100644
void CookieMonster::SetPersistSessionCookies(bool persist_session_cookies) {
DCHECK(thread_checker_.CalledOnValidThread());
diff --git net/cookies/cookie_monster.h net/cookies/cookie_monster.h
index 913737e78194..05ad0e8deffd 100644
index a0bd017e9c18..87f8ed8989d4 100644
--- net/cookies/cookie_monster.h
+++ net/cookies/cookie_monster.h
@@ -180,6 +180,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
@@ -177,6 +177,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
CookieChangeDispatcher& GetChangeDispatcher() override;
void SetCookieableSchemes(const std::vector<std::string>& schemes,
SetCookieableSchemesCallback callback) override;
@@ -94,10 +101,10 @@ index 913737e78194..05ad0e8deffd 100644
// Enables writing session cookies into the cookie database. If this this
// method is called, it must be called before first use of the instance
diff --git net/cookies/cookie_store.h net/cookies/cookie_store.h
index d6299f543edd..ac8edd449452 100644
index bcd72c1b56f7..67ff2c0edb32 100644
--- net/cookies/cookie_store.h
+++ net/cookies/cookie_store.h
@@ -145,6 +145,11 @@ class NET_EXPORT CookieStore {
@@ -127,6 +127,11 @@ class NET_EXPORT CookieStore {
virtual void SetCookieableSchemes(const std::vector<std::string>& schemes,
SetCookieableSchemesCallback callback) = 0;
@@ -110,10 +117,10 @@ index d6299f543edd..ac8edd449452 100644
virtual void DumpMemoryStats(base::trace_event::ProcessMemoryDump* pmd,
const std::string& parent_absolute_name) const;
diff --git services/network/cookie_manager.cc services/network/cookie_manager.cc
index a73b9f31cf17..4e0d4b4b4746 100644
index c0f105aec142..6afd5f9e25fc 100644
--- services/network/cookie_manager.cc
+++ services/network/cookie_manager.cc
@@ -206,14 +206,9 @@ void CookieManager::FlushCookieStore(FlushCookieStoreCallback callback) {
@@ -214,14 +214,9 @@ void CookieManager::FlushCookieStore(FlushCookieStoreCallback callback) {
void CookieManager::AllowFileSchemeCookies(
bool allow,
AllowFileSchemeCookiesCallback callback) {
@@ -132,10 +139,10 @@ index a73b9f31cf17..4e0d4b4b4746 100644
void CookieManager::SetForceKeepSessionState() {
diff --git services/network/network_context.cc services/network/network_context.cc
index dffa1299b1cf..169ea2925274 100644
index 8e848688225a..cbbf5de461d6 100644
--- services/network/network_context.cc
+++ services/network/network_context.cc
@@ -1726,6 +1726,7 @@ URLRequestContextOwner NetworkContext::ApplyContextParamsToBuilder(
@@ -1762,6 +1762,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
}
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store;
@@ -143,7 +150,7 @@ index dffa1299b1cf..169ea2925274 100644
if (params_->cookie_path) {
scoped_refptr<base::SequencedTaskRunner> client_task_runner =
base::ThreadTaskRunnerHandle::Get();
@@ -1753,18 +1754,27 @@ URLRequestContextOwner NetworkContext::ApplyContextParamsToBuilder(
@@ -1789,18 +1790,27 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext() {
session_cleanup_cookie_store =
base::MakeRefCounted<SessionCleanupCookieStore>(sqlite_store);
@@ -154,7 +161,7 @@ index dffa1299b1cf..169ea2925274 100644
if (params_->persist_session_cookies)
cookie_store->SetPersistSessionCookies(true);
-
- builder->SetCookieStore(std::move(cookie_store));
- builder.SetCookieStore(std::move(cookie_store));
} else {
DCHECK(!params_->restore_old_session_cookies);
DCHECK(!params_->persist_session_cookies);
@@ -169,16 +176,16 @@ index dffa1299b1cf..169ea2925274 100644
+ net::CookieStore::SetCookieableSchemesCallback());
+ }
+
+ builder->SetCookieStore(std::move(cookie_store));
+ builder.SetCookieStore(std::move(cookie_store));
+
std::unique_ptr<net::StaticHttpUserAgentSettings> user_agent_settings =
std::make_unique<net::StaticHttpUserAgentSettings>(
params_->accept_language, params_->user_agent);
diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom
index 58b18e0c3c2b..38020694872a 100644
index 873bce449b63..3189e268d950 100644
--- services/network/public/mojom/network_context.mojom
+++ services/network/public/mojom/network_context.mojom
@@ -206,6 +206,9 @@ struct NetworkContextParams {
@@ -210,6 +210,9 @@ struct NetworkContextParams {
// cookies. Otherwise it should be false.
bool persist_session_cookies = false;

View File

@@ -1,8 +1,8 @@
diff --git content/browser/network_service_client.cc content/browser/network_service_client.cc
index b89e764feb03..0bb056852db2 100644
--- content/browser/network_service_client.cc
+++ content/browser/network_service_client.cc
@@ -207,10 +207,6 @@ class LoginHandlerDelegate {
diff --git content/browser/storage_partition_impl.cc content/browser/storage_partition_impl.cc
index c626801963af..9d05b869101b 100644
--- content/browser/storage_partition_impl.cc
+++ content/browser/storage_partition_impl.cc
@@ -583,10 +583,6 @@ class LoginHandlerDelegate {
}
WebContents* web_contents = web_contents_getter_.Run();
@@ -13,20 +13,21 @@ index b89e764feb03..0bb056852db2 100644
// WeakPtr is not strictly necessary here due to OnRequestCancelled.
creating_login_delegate_ = true;
@@ -332,10 +328,7 @@ void OnAuthRequiredContinuation(
@@ -643,12 +639,6 @@ void OnAuthRequiredContinuation(
web_contents_getter =
base::BindRepeating(GetWebContents, process_id, routing_id);
}
- if (!web_contents_getter.Run()) {
- std::move(auth_challenge_responder)->OnAuthCredentials(base::nullopt);
- mojo::Remote<network::mojom::AuthChallengeResponder>
- auth_challenge_responder_remote(std::move(auth_challenge_responder));
- auth_challenge_responder_remote->OnAuthCredentials(base::nullopt);
- return;
- }
+
new LoginHandlerDelegate(std::move(auth_challenge_responder),
std::move(web_contents_getter), auth_info,
is_request_for_main_frame, process_id, routing_id,
diff --git services/network/public/cpp/simple_url_loader.cc services/network/public/cpp/simple_url_loader.cc
index b575b0bb3a35..a04e74d5896f 100644
index 1ab5688d10d6..7e8d8242a06f 100644
--- services/network/public/cpp/simple_url_loader.cc
+++ services/network/public/cpp/simple_url_loader.cc
@@ -227,6 +227,7 @@ class SimpleURLLoaderImpl : public SimpleURLLoader,
@@ -69,10 +70,10 @@ index b575b0bb3a35..a04e74d5896f 100644
net::MutableNetworkTrafficAnnotationTag(annotation_tag_));
diff --git services/network/public/cpp/simple_url_loader.h services/network/public/cpp/simple_url_loader.h
index f81788d25fda..ba8948be5ebf 100644
index 255cb1830c5c..bd89d66d2520 100644
--- services/network/public/cpp/simple_url_loader.h
+++ services/network/public/cpp/simple_url_loader.h
@@ -324,6 +324,9 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
@@ -327,6 +327,9 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
// as much time as it wants.
virtual void SetTimeoutDuration(base::TimeDelta timeout_duration) = 0;

View File

@@ -1,8 +1,8 @@
diff --git ui/views/controls/native/native_view_host.cc ui/views/controls/native/native_view_host.cc
index d6116fdbdd09..99191c7e46a9 100644
index bc1cb3a9e6fc..f68bdeb8786c 100644
--- ui/views/controls/native/native_view_host.cc
+++ ui/views/controls/native/native_view_host.cc
@@ -150,7 +150,7 @@ void NativeViewHost::OnPaint(gfx::Canvas* canvas) {
@@ -151,7 +151,7 @@ void NativeViewHost::OnPaint(gfx::Canvas* canvas) {
// It would be nice if this used some approximation of the page's
// current background color.
if (native_wrapper_->HasInstalledClip())
@@ -39,7 +39,7 @@ index 2a6cfc54d866..48623ab5d672 100644
};
diff --git ui/views/controls/webview/webview.cc ui/views/controls/webview/webview.cc
index 805703d5f79a..4f86e1982a8e 100644
index 982ab4872532..e24c59e4e363 100644
--- ui/views/controls/webview/webview.cc
+++ ui/views/controls/webview/webview.cc
@@ -112,6 +112,10 @@ void WebView::EnableSizingFromWebContents(const gfx::Size& min_size,

View File

@@ -1,5 +1,5 @@
diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc
index 859cf37ae470..ddf7c87e9327 100644
index 0d5a04d7af76..b4610f07b0c2 100644
--- content/browser/blob_storage/chrome_blob_storage_context.cc
+++ content/browser/blob_storage/chrome_blob_storage_context.cc
@@ -117,7 +117,8 @@ ChromeBlobStorageContext* ChromeBlobStorageContext::GetFor(
@@ -9,14 +9,14 @@ index 859cf37ae470..ddf7c87e9327 100644
- if (!context->IsOffTheRecord() && io_thread_valid) {
+ if (!context->GetPath().empty() && !context->IsOffTheRecord() &&
+ io_thread_valid) {
file_task_runner = base::CreateTaskRunnerWithTraits(
{base::MayBlock(), base::TaskPriority::BEST_EFFORT,
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
file_task_runner = base::CreateTaskRunner(
{base::ThreadPool(), base::MayBlock(),
base::TaskPriority::USER_VISIBLE,
diff --git content/browser/browser_context.cc content/browser/browser_context.cc
index 5fbd75f67fb7..b92df84a2abf 100644
index 9e5b73896b85..153c089421f9 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -58,6 +58,7 @@
@@ -57,6 +57,7 @@
#include "content/public/common/content_switches.h"
#include "content/public/common/service_manager_connection.h"
#include "content/public/common/service_names.mojom.h"
@@ -33,7 +33,7 @@ index 5fbd75f67fb7..b92df84a2abf 100644
in_memory = true;
return partition_map->Get(partition_domain, partition_name, in_memory,
@@ -798,7 +799,7 @@ media::VideoDecodePerfHistory* BrowserContext::GetVideoDecodePerfHistory() {
@@ -792,7 +793,7 @@ media::VideoDecodePerfHistory* BrowserContext::GetVideoDecodePerfHistory() {
kUseInMemoryDBDefault);
std::unique_ptr<media::VideoDecodeStatsDB> stats_db;
@@ -42,25 +42,11 @@ index 5fbd75f67fb7..b92df84a2abf 100644
stats_db =
std::make_unique<media::InMemoryVideoDecodeStatsDBImpl>(nullptr);
} else {
diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc
index c49bdcea4b64..a578f26a7aa7 100644
--- content/browser/renderer_host/render_process_host_impl.cc
+++ content/browser/renderer_host/render_process_host_impl.cc
@@ -2213,6 +2213,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
plugin_registry_.reset(
new PluginRegistryImpl(GetBrowserContext()->GetResourceContext()));
}
+ // Needed for proper routing of IsPluginAvailable callbacks.
+ DCHECK_GE(GetID(), 0);
+ plugin_registry_->set_render_process_id(GetID());
registry->AddInterface(base::BindRepeating(
&PluginRegistryImpl::Bind, base::Unretained(plugin_registry_.get())));
#endif
diff --git storage/browser/database/database_tracker.cc storage/browser/database/database_tracker.cc
index 18f8b0a11438..a10ab23aaceb 100644
index a0065cac99f0..2d808ea8d33f 100644
--- storage/browser/database/database_tracker.cc
+++ storage/browser/database/database_tracker.cc
@@ -509,7 +509,7 @@ bool DatabaseTracker::LazyInit() {
@@ -510,7 +510,7 @@ bool DatabaseTracker::LazyInit() {
meta_table_.reset(new sql::MetaTable());
is_initialized_ =

View File

@@ -1,8 +1,8 @@
diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h
index 7c0723ffd493..96e2af4c0588 100644
index 6717a2bd93b7..25136f5e99ba 100644
--- base/trace_event/builtin_categories.h
+++ base/trace_event/builtin_categories.h
@@ -47,6 +47,8 @@
@@ -48,6 +48,8 @@
X("cc") \
X("cc.debug") \
X("cdp.perf") \

View File

@@ -1,5 +1,5 @@
diff --git ui/base/models/menu_model.h ui/base/models/menu_model.h
index cce16a111356..9f0a8b73adb5 100644
index e0324ff11fb8..6a2455caaab8 100644
--- ui/base/models/menu_model.h
+++ ui/base/models/menu_model.h
@@ -15,6 +15,7 @@
@@ -39,7 +39,7 @@ index cce16a111356..9f0a8b73adb5 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index 2ed814d50a9b..4a1fec248663 100644
index 8aedc0ecc317..2d9c6cd5452a 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -539,6 +539,14 @@ void RenderText::SetWhitespaceElision(base::Optional<bool> whitespace_elision) {
@@ -57,7 +57,7 @@ index 2ed814d50a9b..4a1fec248663 100644
void RenderText::SetDisplayRect(const Rect& r) {
if (r != display_rect_) {
display_rect_ = r;
@@ -1661,6 +1669,19 @@ void RenderText::OnTextAttributeChanged() {
@@ -1666,6 +1674,19 @@ void RenderText::OnTextAttributeChanged() {
if (!multiline_ && replace_newline_chars_with_symbols_)
base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_);
@@ -78,10 +78,10 @@ index 2ed814d50a9b..4a1fec248663 100644
}
diff --git ui/gfx/render_text.h ui/gfx/render_text.h
index 3c3fc3e8eb16..c6e46c0082d8 100644
index d0dc1d08c912..7496b2620bd3 100644
--- ui/gfx/render_text.h
+++ ui/gfx/render_text.h
@@ -318,6 +318,10 @@ class GFX_EXPORT RenderText {
@@ -320,6 +320,10 @@ class GFX_EXPORT RenderText {
return whitespace_elision_;
}
@@ -92,7 +92,7 @@ index 3c3fc3e8eb16..c6e46c0082d8 100644
const Rect& display_rect() const { return display_rect_; }
void SetDisplayRect(const Rect& r);
@@ -977,6 +981,8 @@ class GFX_EXPORT RenderText {
@@ -979,6 +983,8 @@ class GFX_EXPORT RenderText {
// The cursor position in view space, used to traverse lines of varied widths.
base::Optional<int> cached_cursor_x_;
@@ -132,7 +132,7 @@ index 214b1a74c5b2..fd15c4dfcb50 100644
const gfx::Size previous_image_size(image_->GetPreferredSize());
UpdateImage();
diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h
index c183274ec443..63fee0c613ab 100644
index 2162f9ef52b1..10b1f9120aa3 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -107,6 +107,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
@@ -146,10 +146,10 @@ index c183274ec443..63fee0c613ab 100644
ImageView* image() const { return image_; }
Label* label() const { return label_; }
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index e2d51fc87b23..258b50c8ea11 100644
index a4f20420e9ee..ae38c737d8c2 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -40,6 +40,20 @@ bool IsOpaque(SkColor color) {
@@ -52,6 +52,20 @@ bool IsOpaque(SkColor color) {
return SkColorGetA(color) == SK_AlphaOPAQUE;
}
@@ -170,7 +170,7 @@ index e2d51fc87b23..258b50c8ea11 100644
} // namespace
namespace views {
@@ -271,6 +285,14 @@ base::string16 Label::GetTooltipText() const {
@@ -309,6 +323,14 @@ base::string16 Label::GetTooltipText() const {
return tooltip_text_;
}
@@ -185,9 +185,9 @@ index e2d51fc87b23..258b50c8ea11 100644
void Label::SetTooltipText(const base::string16& tooltip_text) {
DCHECK(handles_tooltips_);
if (tooltip_text_ == tooltip_text)
@@ -539,7 +561,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
@@ -578,7 +600,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
render_text->SetFontList(font_list());
render_text->set_shadows(shadows());
render_text->set_shadows(GetShadows());
render_text->SetCursorEnabled(false);
- render_text->SetText(GetText());
+
@@ -203,14 +203,14 @@ index e2d51fc87b23..258b50c8ea11 100644
+ render_text->SetText(GetText());
+ }
+
render_text->SetMultiline(GetMultiLine());
render_text->SetMaxLines(GetMultiLine() ? GetMaxLines() : 0);
render_text->SetWordWrapBehavior(full_text_->word_wrap_behavior());
const bool multiline = GetMultiLine();
render_text->SetMultiline(multiline);
render_text->SetMaxLines(multiline ? GetMaxLines() : 0);
diff --git ui/views/controls/label.h ui/views/controls/label.h
index ce169b164bc7..743509aa6acb 100644
index bc90b6fbf5bd..596c21476e2f 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -164,6 +164,10 @@ class VIEWS_EXPORT Label : public View,
@@ -176,6 +176,10 @@ class VIEWS_EXPORT Label : public View,
gfx::ElideBehavior GetElideBehavior() const;
void SetElideBehavior(gfx::ElideBehavior elide_behavior);
@@ -221,7 +221,7 @@ index ce169b164bc7..743509aa6acb 100644
// Gets/Sets the tooltip text. Default behavior for a label (single-line) is
// to show the full text if it is wider than its bounds. Calling this
// overrides the default behavior and lets you set a custom tooltip. To
@@ -396,6 +400,7 @@ class VIEWS_EXPORT Label : public View,
@@ -409,6 +413,7 @@ class VIEWS_EXPORT Label : public View,
bool collapse_when_hidden_;
int fixed_width_;
int max_width_;
@@ -230,10 +230,10 @@ index ce169b164bc7..743509aa6acb 100644
std::unique_ptr<SelectionController> selection_controller_;
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index 354216cafea8..16ec7b4c4c3f 100644
index ee4fbf418def..12bd665da4ce 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -2571,8 +2571,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
@@ -2614,8 +2614,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@@ -248,7 +248,7 @@ index 354216cafea8..16ec7b4c4c3f 100644
MenuItemView* to_select = nullptr;
if (!item->GetSubmenu()->GetMenuItems().empty())
to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN);
@@ -2591,8 +2596,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
@@ -2634,8 +2639,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);
@@ -300,10 +300,10 @@ index bdbd9c7e37b8..86138fd1d21c 100644
virtual int GetMaxWidthForMenu(MenuItemView* menu);
diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc
index c8a32b58cf7d..9d67171c89a8 100644
index a37e13686535..cb0d3fb5ef45 100644
--- ui/views/controls/menu/menu_item_view.cc
+++ ui/views/controls/menu/menu_item_view.cc
@@ -1057,6 +1057,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
@@ -1065,6 +1065,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
spilling_rect.set_y(spilling_rect.y() - corner_radius_);
spilling_rect.set_height(spilling_rect.height() + corner_radius_);
canvas->DrawRoundRect(spilling_rect, corner_radius_, flags);
@@ -319,7 +319,7 @@ index c8a32b58cf7d..9d67171c89a8 100644
} else if (render_selection) {
gfx::Rect item_bounds = GetLocalBounds();
if (type_ == ACTIONABLE_SUBMENU) {
@@ -1123,6 +1132,13 @@ void MenuItemView::PaintMinorIconAndText(
@@ -1131,6 +1140,13 @@ void MenuItemView::PaintMinorIconAndText(
}
SkColor MenuItemView::GetTextColor(bool minor, bool render_selection) const {
@@ -334,10 +334,10 @@ index c8a32b58cf7d..9d67171c89a8 100644
minor ? ui::NativeTheme::kColorId_MenuItemMinorTextColor
: ui::NativeTheme::kColorId_EnabledMenuItemForegroundColor;
diff --git ui/views/controls/menu/menu_model_adapter.cc ui/views/controls/menu/menu_model_adapter.cc
index bae77a21e0d5..ac01a8a5c52c 100644
index 09b72733e66d..4bcee9da5b8a 100644
--- ui/views/controls/menu/menu_model_adapter.cc
+++ ui/views/controls/menu/menu_model_adapter.cc
@@ -225,6 +225,77 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
@@ -226,6 +226,77 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
return false;
}
@@ -472,7 +472,7 @@ index 4f865802a6e9..42d047bd68ad 100644
// Move the cursor because EnterNotify/LeaveNotify are generated with the
// current mouse position as a result of XGrabPointer()
diff --git ui/views/view.h ui/views/view.h
index a4f2ba254fb0..8d76cfa46fa6 100644
index 722b98d676ed..3c7e27cf6eb0 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -22,6 +22,7 @@
@@ -482,8 +482,8 @@ index a4f2ba254fb0..8d76cfa46fa6 100644
+#include "base/supports_user_data.h"
#include "build/build_config.h"
#include "third_party/skia/include/core/SkPath.h"
#include "ui/accessibility/ax_enums.mojom.h"
@@ -275,7 +276,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
#include "ui/accessibility/ax_enums.mojom-forward.h"
@@ -274,7 +275,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::EventTarget,
public ui::EventHandler,
public ui::PropertyHandler,

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc
index f41270e26278..38303c9c3ec8 100644
index dbfcd1da5c85..5b3f20f18ea5 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -577,6 +577,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() {
@@ -581,6 +581,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() {
return screen_info.device_scale_factor;
}
@@ -18,7 +18,7 @@ index f41270e26278..38303c9c3ec8 100644
return renderer_frame_number_;
}
diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h
index 8e523d78e765..d951d8915864 100644
index 2bd5d56bc37d..c14d9a858796 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -71,6 +71,7 @@ class CursorManager;
@@ -39,7 +39,7 @@ index 8e523d78e765..d951d8915864 100644
// Returns the focused RenderWidgetHost inside this |view|'s RWH.
RenderWidgetHostImpl* GetFocusedWidget() const;
@@ -125,6 +129,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -126,6 +130,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
void DisableAutoResize(const gfx::Size& new_size) override;
bool IsScrollOffsetAtTop() override;
float GetDeviceScaleFactor() final;
@@ -48,7 +48,7 @@ index 8e523d78e765..d951d8915864 100644
TouchSelectionControllerClientManager*
GetTouchSelectionControllerClientManager() override;
void SetRecordTabSwitchTimeRequest(base::TimeTicks start_time,
@@ -479,6 +485,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -475,6 +481,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
// helps to position the full screen widget on the correct monitor.
virtual void InitAsFullscreen(RenderWidgetHostView* reference_host_view) = 0;
@@ -61,19 +61,19 @@ index 8e523d78e765..d951d8915864 100644
// Sets the cursor for this view to the one associated with the specified
// cursor_type.
virtual void UpdateCursor(const WebCursor& cursor) = 0;
@@ -643,6 +655,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -639,6 +651,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
bool is_currently_scrolling_viewport_ = false;
+ // True if the widget has a external parent view/window outside of the
+ // Chromium-controlled view/window hierarchy.
+ bool has_external_parent_;
+ bool has_external_parent_ = false;
+
private:
FRIEND_TEST_ALL_PREFIXES(
BrowserSideFlingBrowserTest,
diff --git content/browser/renderer_host/render_widget_host_view_event_handler.cc content/browser/renderer_host/render_widget_host_view_event_handler.cc
index 21f93de01aa5..8b7ec41d94da 100644
index caaec4aabb93..42067642c699 100644
--- content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -32,6 +32,10 @@
@@ -87,7 +87,7 @@ index 21f93de01aa5..8b7ec41d94da 100644
#if defined(OS_WIN)
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/public/common/context_menu_params.h"
@@ -922,6 +926,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() {
@@ -903,6 +907,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() {
::SetFocus(hwnd);
}
}
@@ -103,10 +103,10 @@ index 21f93de01aa5..8b7ec41d94da 100644
// TODO(wjmaclean): can host_ ever be null?
if (host_ && set_focus_on_mouse_down_or_key_event_) {
diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h
index 07d4351d0a8a..4ad78ab76a7c 100644
index 78e055820447..9f8a6fd1cd65 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -246,6 +246,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@@ -249,6 +249,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
// This must always return the same device scale factor as GetScreenInfo.
virtual float GetDeviceScaleFactor() = 0;
@@ -122,10 +122,10 @@ index 07d4351d0a8a..4ad78ab76a7c 100644
// Set the view's active state (i.e., tint state of controls).
virtual void SetActive(bool active) = 0;
diff --git ui/base/x/x11_window.cc ui/base/x/x11_window.cc
index 7df0a3a8ed26..4078efb5ad10 100644
index 1bb97da34481..f56a74312d67 100644
--- ui/base/x/x11_window.cc
+++ ui/base/x/x11_window.cc
@@ -190,8 +190,12 @@ void XWindow::Init(const Configuration& config) {
@@ -205,8 +205,12 @@ void XWindow::Init(const Configuration& config) {
attribute_mask |= CWBorderPixel;
swa.border_pixel = 0;
@@ -140,7 +140,7 @@ index 7df0a3a8ed26..4078efb5ad10 100644
bounds_in_pixels_.height(),
0, // border width
diff --git ui/base/x/x11_window.h ui/base/x/x11_window.h
index 97d8273414fa..b8784d044c61 100644
index 9db97d2f5214..4eb41eaf12aa 100644
--- ui/base/x/x11_window.h
+++ ui/base/x/x11_window.h
@@ -20,6 +20,7 @@
@@ -151,14 +151,26 @@ index 97d8273414fa..b8784d044c61 100644
#include "ui/gfx/x/x11.h"
#include "ui/gfx/x/x11_types.h"
@@ -86,6 +87,7 @@ class COMPONENT_EXPORT(UI_BASE_X) XWindow {
@@ -83,6 +84,7 @@ class COMPONENT_EXPORT(UI_BASE_X) XWindow {
std::string wm_class_name;
std::string wm_class_class;
std::string wm_role_name;
+ gfx::AcceleratedWidget parent_widget;
+ gfx::AcceleratedWidget parent_widget = gfx::kNullAcceleratedWidget;
};
explicit XWindow(Delegate* delegate);
XWindow();
diff --git ui/platform_window/x11/x11_window.cc ui/platform_window/x11/x11_window.cc
index c181b69f49ac..9bb225975488 100644
--- ui/platform_window/x11/x11_window.cc
+++ ui/platform_window/x11/x11_window.cc
@@ -66,6 +66,7 @@ ui::XWindow::Configuration ConvertInitPropertiesToXWindowConfig(
config.wm_class_class = properties.wm_class_class;
config.wm_role_name = properties.wm_role_name;
config.activatable = properties.activatable;
+ config.parent_widget = properties.parent_widget;
return config;
}
diff --git ui/views/widget/desktop_aura/desktop_screen_win.cc ui/views/widget/desktop_aura/desktop_screen_win.cc
index 70553b153c44..ecd99bc78373 100644
--- ui/views/widget/desktop_aura/desktop_screen_win.cc
@@ -172,19 +184,23 @@ index 70553b153c44..ecd99bc78373 100644
aura::WindowTreeHost* host = window->GetHost();
return host ? host->GetAcceleratedWidget() : nullptr;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
index da401532ffbe..e878204e71db 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
@@ -78,6 +78,7 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
properties->wm_class_name = params.wm_class_name;
properties->wm_class_class = params.wm_class_class;
properties->wm_role_name = params.wm_role_name;
+ properties->parent_widget = params.parent_widget;
}
} // namespace views
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 7e31a1c159af..eb0451b8913a 100644
index 0eedc2665313..1bbc2abc7514 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -95,6 +95,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin(
should_animate_window_close_(false),
pending_close_(false),
has_non_client_view_(false),
+ has_external_parent_(false),
tooltip_(nullptr) {}
DesktopWindowTreeHostWin::~DesktopWindowTreeHostWin() {
@@ -128,8 +129,12 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
@@ -128,8 +128,12 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
native_widget_delegate_);
HWND parent_hwnd = nullptr;
@@ -198,7 +214,7 @@ index 7e31a1c159af..eb0451b8913a 100644
remove_standard_frame_ = params.remove_standard_frame;
has_non_client_view_ = Widget::RequiresNonClientView(params.type);
@@ -891,11 +896,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
@@ -900,11 +904,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
}
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
@@ -217,7 +233,7 @@ index 7e31a1c159af..eb0451b8913a 100644
bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.h ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 335db0db49bb..7f60402ed086 100644
index 335db0db49bb..35c30789741a 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -288,6 +288,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@@ -226,68 +242,49 @@ index 335db0db49bb..7f60402ed086 100644
+ // True if the widget has a external parent view/window outside of the
+ // Chromium-controlled view/window hierarchy.
+ bool has_external_parent_;
+ bool has_external_parent_ = false;
+
// Owned by TooltipController, but we need to forward events to it so we keep
// a reference.
corewm::TooltipWin* tooltip_;
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index b03a5bc9d509..bcbf960a130e 100644
index 2b6a9d013039..023e12b3a2bb 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -139,6 +139,7 @@ ui::XWindow::Configuration ConvertInitParamsToX11WindowConfig(
config.wm_class_name = params.wm_class_name;
config.wm_class_class = params.wm_class_class;
config.wm_role_name = params.wm_role_name;
+ config.parent_widget = params.parent_widget;
@@ -247,6 +247,9 @@ void DesktopWindowTreeHostX11::Init(const Widget::InitParams& params) {
window_parent_->window_children_.insert(this);
}
return config;
}
@@ -246,6 +247,8 @@ std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
}
gfx::Rect DesktopWindowTreeHostX11::GetX11RootWindowBounds() const {
+ if (!screen_bounds_.IsEmpty())
+ return screen_bounds_;
return x11_window_->bounds();
}
@@ -540,6 +543,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
}
gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
+ if (!screen_bounds_.IsEmpty())
+ return screen_bounds_;
gfx::Rect bounds_in_pixels = x11_window_->bounds();
return ToDIPRect(bounds_in_pixels);
}
@@ -954,6 +959,9 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels(
}
gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const {
+ if (!screen_bounds_.IsEmpty())
+ return screen_bounds_.origin();
+
return x11_window_->bounds().origin();
}
@@ -1280,6 +1288,11 @@ void DesktopWindowTreeHostX11::InitX11Window(const Widget::InitParams& params) {
config.background_color = background_color;
config.prefer_dark_theme = linux_ui && linux_ui->PreferDarkTheme();
config.icon = ViewsDelegate::GetInstance()->GetDefaultWindowIcon();
+
+ gfx::AcceleratedWidget parent_widget = config.parent_widget;
+ if (parent_widget != gfx::kNullAcceleratedWidget)
+ if (params.parent_widget != gfx::kNullAcceleratedWidget)
+ has_external_parent_ = true;
+
x11_window_->Init(config);
DesktopWindowTreeHostPlatform::Init(params);
// Disable compositing on tooltips as a workaround for
// Set XEventDelegate to receive selection, drag&drop and raw key events.
@@ -435,6 +438,18 @@ void DesktopWindowTreeHostX11::StackAtTop() {
GetXWindow()->StackAtTop();
}
+gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
+ if (!screen_bounds_.IsEmpty())
+ return screen_bounds_;
+ return DesktopWindowTreeHostLinux::GetWindowBoundsInScreen();
+}
+
+gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const {
+ if (!screen_bounds_.IsEmpty())
+ return screen_bounds_.origin();
+ return DesktopWindowTreeHostLinux::GetLocationOnScreenInPixels();
+}
+
void DesktopWindowTreeHostX11::GetWindowPlacement(
gfx::Rect* bounds,
ui::WindowShowState* show_state) const {
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
index e32726ad4616..cad33f22bf74 100644
index 09baef384772..8895a31c611b 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
@@ -102,6 +102,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -98,6 +98,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 : public DesktopWindowTreeHostLinux,
// be changed after.
void SetVisualId(VisualID visual_id);
@@ -300,7 +297,16 @@ index e32726ad4616..cad33f22bf74 100644
protected:
// Overridden from DesktopWindowTreeHost:
void Init(const Widget::InitParams& params) override;
@@ -294,6 +300,13 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -112,6 +118,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 : public DesktopWindowTreeHostLinux,
void SetSize(const gfx::Size& requested_size) override;
void StackAbove(aura::Window* window) override;
void StackAtTop() override;
+ gfx::Rect GetWindowBoundsInScreen() const override;
+ gfx::Point GetLocationOnScreenInPixels() const override;
void GetWindowPlacement(gfx::Rect* bounds,
ui::WindowShowState* show_state) const override;
gfx::Rect GetRestoredBounds() const override;
@@ -255,6 +263,13 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 : public DesktopWindowTreeHostLinux,
// behavior if > 0.
ui::ZOrderLevel z_order_ = ui::ZOrderLevel::kNormal;
@@ -313,43 +319,46 @@ index e32726ad4616..cad33f22bf74 100644
+
DesktopDragDropClientAuraX11* drag_drop_client_ = nullptr;
std::unique_ptr<ui::EventHandler> x11_non_client_event_filter_;
std::unique_ptr<WindowEventFilter> non_client_event_filter_;
@@ -285,6 +300,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 : public DesktopWindowTreeHostLinux,
std::unique_ptr<CompositorObserver> compositor_observer_;
+ // True if the xwindow has already been destroyed.
+ bool xwindow_destroyed_ = false;
+
// The display and the native X window hosting the root window.
base::WeakPtrFactory<DesktopWindowTreeHostX11> close_widget_factory_{this};
base::WeakPtrFactory<DesktopWindowTreeHostX11> weak_factory_{this};
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index 0cb75272c2ca..ef79679114d4 100644
index 3e4c62c49f07..778c984b59b3 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -157,6 +157,7 @@ Widget::InitParams::InitParams(Type type)
use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT),
parent(nullptr),
+ parent_widget(gfx::kNullAcceleratedWidget),
native_widget(nullptr),
desktop_window_tree_host(nullptr),
layer_type(ui::LAYER_TEXTURED),
@@ -325,7 +326,7 @@ void Widget::Init(const InitParams& in_params) {
@@ -304,7 +304,8 @@ void Widget::Init(InitParams params) {
params.name = params.delegate->GetContentsView()->GetClassName();
params.child |= (params.type == InitParams::TYPE_CONTROL);
- is_top_level_ = !params.child;
+ is_top_level_ = !params.child || params.parent_widget;
+ is_top_level_ = !params.child ||
+ params.parent_widget != gfx::kNullAcceleratedWidget;
if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
params.type != views::Widget::InitParams::TYPE_WINDOW) {
@@ -389,7 +390,12 @@ void Widget::Init(const InitParams& in_params) {
@@ -387,7 +388,12 @@ void Widget::Init(InitParams params) {
}
} else if (params.delegate) {
SetContentsView(params.delegate->GetContentsView());
- SetInitialBoundsForFramelessWindow(params.bounds);
+ if (params.parent_widget) {
} else if (delegate) {
SetContentsView(delegate->GetContentsView());
- SetInitialBoundsForFramelessWindow(bounds);
+ if (params.parent_widget != gfx::kNullAcceleratedWidget) {
+ // Set the bounds directly instead of applying an inset.
+ SetBounds(params.bounds);
+ SetBounds(bounds);
+ } else {
+ SetInitialBoundsForFramelessWindow(params.bounds);
+ SetInitialBoundsForFramelessWindow(bounds);
+ }
}
// TODO(https://crbug.com/953978): Use GetNativeTheme() for all platforms.
#if defined(OS_MACOSX) || defined(OS_WIN)
@@ -1175,10 +1181,16 @@ void Widget::OnNativeWidgetDestroyed() {
@@ -1174,10 +1180,16 @@ void Widget::OnNativeWidgetDestroyed() {
}
gfx::Size Widget::GetMinimumSize() const {
@@ -367,19 +376,20 @@ index 0cb75272c2ca..ef79679114d4 100644
}
diff --git ui/views/widget/widget.h ui/views/widget/widget.h
index 83ba608199b4..546cbe32020c 100644
index 4d622c392db3..a610bff37782 100644
--- ui/views/widget/widget.h
+++ ui/views/widget/widget.h
@@ -259,6 +259,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// Whether the widget should be maximized or minimized.
ui::WindowShowState show_state;
gfx::NativeView parent;
+ gfx::AcceleratedWidget parent_widget;
@@ -284,6 +284,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
gfx::NativeView parent = nullptr;
+ gfx::AcceleratedWidget parent_widget = gfx::kNullAcceleratedWidget;
+
// Specifies the initial bounds of the Widget. Default is empty, which means
// the NativeWidget may specify a default size. If the parent is specified,
// |bounds| is in the parent's coordinate system. If the parent is not
diff --git ui/views/widget/widget_delegate.h ui/views/widget/widget_delegate.h
index 77585733e699..77c5db949902 100644
index e71776db8db7..783bf1f45bdb 100644
--- ui/views/widget/widget_delegate.h
+++ ui/views/widget/widget_delegate.h
@@ -191,6 +191,10 @@ class VIEWS_EXPORT WidgetDelegate {
@@ -407,10 +417,10 @@ index 9edfa2c00c4b..8a9217578609 100644
if (native_widget_delegate->IsDialogBox()) {
*style |= DS_MODALFRAME;
diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc
index 9b683f301913..8609f61ebd0f 100644
index 67202004ea3a..50e240bdb6c8 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -2963,10 +2963,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -2972,10 +2972,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
} else if (event.type() == ui::ET_MOUSEWHEEL) {
ui::MouseWheelEvent mouse_wheel_event(msg);
// Reroute the mouse wheel to the window under the pointer if applicable.

View File

@@ -29,7 +29,7 @@ index f5e18df4e06e..58a8e8ef125b 100644
#if defined(USE_X11)
void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {
diff --git components/viz/host/host_display_client.h components/viz/host/host_display_client.h
index 5e5c5da4a3cf..30eca49765bd 100644
index b8177277ebca..955e5a146be5 100644
--- components/viz/host/host_display_client.h
+++ components/viz/host/host_display_client.h
@@ -30,17 +30,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient {
@@ -67,7 +67,7 @@ index 65c26e2f7ae8..e0f60e2ac25e 100644
if (!canvas_) {
diff --git components/viz/host/layered_window_updater_impl.h components/viz/host/layered_window_updater_impl.h
index d9a9730a78b9..d98426e9f789 100644
index ced30727ab67..f422786fe6cd 100644
--- components/viz/host/layered_window_updater_impl.h
+++ components/viz/host/layered_window_updater_impl.h
@@ -33,7 +33,7 @@ class VIZ_HOST_EXPORT LayeredWindowUpdaterImpl
@@ -80,7 +80,7 @@ index d9a9730a78b9..d98426e9f789 100644
private:
const HWND hwnd_;
diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn
index fdd358f741e6..57afa1d3855e 100644
index a3fc1b3bdc9c..33f2b5206ca2 100644
--- components/viz/service/BUILD.gn
+++ components/viz/service/BUILD.gn
@@ -13,6 +13,8 @@ config("viz_service_implementation") {
@@ -93,7 +93,7 @@ index fdd358f741e6..57afa1d3855e 100644
"display/bsp_tree.h",
"display/bsp_walk_action.cc",
diff --git components/viz/service/display_embedder/output_surface_provider_impl.cc components/viz/service/display_embedder/output_surface_provider_impl.cc
index 7f61cb7c847b..f1e3f2fec151 100644
index e3c8e9dbca69..5ee6f60584d1 100644
--- components/viz/service/display_embedder/output_surface_provider_impl.cc
+++ components/viz/service/display_embedder/output_surface_provider_impl.cc
@@ -12,6 +12,7 @@
@@ -104,7 +104,7 @@ index 7f61cb7c847b..f1e3f2fec151 100644
#include "components/viz/common/display/renderer_settings.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/service/display_embedder/gl_output_surface.h"
@@ -219,6 +220,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
@@ -223,6 +224,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
if (headless_)
return std::make_unique<SoftwareOutputDevice>();
@@ -126,7 +126,7 @@ index 7f61cb7c847b..f1e3f2fec151 100644
return CreateSoftwareOutputDeviceWin(surface_handle, &output_device_backing_,
display_client);
diff --git components/viz/service/display_embedder/software_output_device_win.cc components/viz/service/display_embedder/software_output_device_win.cc
index 73ea1986b214..d437e045de2f 100644
index 74316edc0e0b..14c9339027a2 100644
--- components/viz/service/display_embedder/software_output_device_win.cc
+++ components/viz/service/display_embedder/software_output_device_win.cc
@@ -265,8 +265,9 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
@@ -142,10 +142,10 @@ index 73ea1986b214..d437e045de2f 100644
TRACE_EVENT_ASYNC_BEGIN0("viz", "SoftwareOutputDeviceWinProxy::Draw", this);
diff --git mojo/public/cpp/bindings/sync_call_restrictions.h mojo/public/cpp/bindings/sync_call_restrictions.h
index 906be544c90f..a110f254d7ec 100644
index f273901017ad..c04e4bcea80f 100644
--- mojo/public/cpp/bindings/sync_call_restrictions.h
+++ mojo/public/cpp/bindings/sync_call_restrictions.h
@@ -34,6 +34,7 @@ class HostContextFactoryPrivate;
@@ -33,6 +33,7 @@ class HostContextFactoryPrivate;
namespace viz {
class HostFrameSinkManager;
@@ -153,7 +153,7 @@ index 906be544c90f..a110f254d7ec 100644
}
namespace mojo {
@@ -91,6 +92,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
@@ -88,6 +89,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
// For preventing frame swaps of wrong size during resize on Windows.
// (https://crbug.com/811945)
friend class ui::HostContextFactoryPrivate;
@@ -162,10 +162,10 @@ index 906be544c90f..a110f254d7ec 100644
// END ALLOWED USAGE.
#if ENABLE_SYNC_CALL_RESTRICTIONS
diff --git services/viz/privileged/interfaces/compositing/display_private.mojom services/viz/privileged/interfaces/compositing/display_private.mojom
index 8898b9162a65..3a93996f9893 100644
--- services/viz/privileged/interfaces/compositing/display_private.mojom
+++ services/viz/privileged/interfaces/compositing/display_private.mojom
diff --git services/viz/privileged/mojom/compositing/display_private.mojom services/viz/privileged/mojom/compositing/display_private.mojom
index 5c6292cfb3b8..c85a4c8991de 100644
--- services/viz/privileged/mojom/compositing/display_private.mojom
+++ services/viz/privileged/mojom/compositing/display_private.mojom
@@ -79,12 +79,14 @@ interface DisplayPrivate {
};
@@ -182,10 +182,10 @@ index 8898b9162a65..3a93996f9893 100644
CreateLayeredWindowUpdater(LayeredWindowUpdater& layered_window_updater);
// Notifies that a swap has occurred and provides information about the pixel
diff --git services/viz/privileged/interfaces/compositing/layered_window_updater.mojom services/viz/privileged/interfaces/compositing/layered_window_updater.mojom
index 58a7e221eaab..dd141b16eace 100644
--- services/viz/privileged/interfaces/compositing/layered_window_updater.mojom
+++ services/viz/privileged/interfaces/compositing/layered_window_updater.mojom
diff --git services/viz/privileged/mojom/compositing/layered_window_updater.mojom services/viz/privileged/mojom/compositing/layered_window_updater.mojom
index 6b7fbb6cf13d..e2af75168cb9 100644
--- services/viz/privileged/mojom/compositing/layered_window_updater.mojom
+++ services/viz/privileged/mojom/compositing/layered_window_updater.mojom
@@ -26,5 +26,5 @@ interface LayeredWindowUpdater {
// Draws to the HWND by copying pixels from shared memory. Callback must be
// called after draw operation is complete to signal shared memory can be
@@ -194,7 +194,7 @@ index 58a7e221eaab..dd141b16eace 100644
+ Draw(gfx.mojom.Rect damage_rect) => ();
};
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index 5158731bd851..07d3bda5f6ff 100644
index ff4562c024be..9e964381f904 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -23,7 +23,9 @@
@@ -204,7 +204,7 @@ index 5158731bd851..07d3bda5f6ff 100644
+#include "components/viz/host/host_display_client.h"
#include "components/viz/host/host_frame_sink_client.h"
+#include "components/viz/service/display/software_output_device.h"
#include "services/viz/privileged/interfaces/compositing/vsync_parameter_observer.mojom-forward.h"
#include "services/viz/privileged/mojom/compositing/vsync_parameter_observer.mojom-forward.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/skia/include/core/SkMatrix44.h"
@@ -194,6 +196,14 @@ class COMPOSITOR_EXPORT ContextFactory {
@@ -232,7 +232,7 @@ index 5158731bd851..07d3bda5f6ff 100644
// Sets the root of the layer tree drawn by this Compositor. The root layer
// must have no parent. The compositor's root layer is reset if the root layer
// is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -448,6 +461,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
@@ -450,6 +463,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
ui::ContextFactory* context_factory_;
ui::ContextFactoryPrivate* context_factory_private_;
@@ -242,10 +242,10 @@ index 5158731bd851..07d3bda5f6ff 100644
Layer* root_layer_ = nullptr;
diff --git ui/compositor/host/host_context_factory_private.cc ui/compositor/host/host_context_factory_private.cc
index 1c84de621781..3ebde59a8041 100644
index d32c154b965b..b5ba8426670f 100644
--- ui/compositor/host/host_context_factory_private.cc
+++ ui/compositor/host/host_context_factory_private.cc
@@ -99,8 +99,13 @@ void HostContextFactoryPrivate::ConfigureCompositor(
@@ -98,8 +98,13 @@ void HostContextFactoryPrivate::ConfigureCompositor(
mojo::MakeRequest(&root_params->compositor_frame_sink_client);
root_params->display_private =
mojo::MakeRequest(&compositor_data.display_private);

View File

@@ -1,8 +1,8 @@
diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc
index ae1bcfa7db7d..0ff65dcfe38f 100644
index a4e4a612d82c..3bf880312d5e 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -2131,21 +2131,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2137,21 +2137,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
std::string unique_name;
frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name);
@@ -45,7 +45,7 @@ index ae1bcfa7db7d..0ff65dcfe38f 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -2844,6 +2853,15 @@ void WebContentsImpl::CreateNewWindow(
@@ -2852,6 +2861,15 @@ void WebContentsImpl::CreateNewWindow(
create_params.renderer_initiated_creation =
main_frame_route_id != MSG_ROUTING_NONE;
@@ -61,16 +61,16 @@ index ae1bcfa7db7d..0ff65dcfe38f 100644
std::unique_ptr<WebContents> new_contents;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -2876,7 +2894,7 @@ void WebContentsImpl::CreateNewWindow(
@@ -2884,7 +2902,7 @@ void WebContentsImpl::CreateNewWindow(
// TODO(brettw): It seems bogus that we have to call this function on the
// newly created object and give it one of its own member variables.
new_view->CreateViewForWidget(
RenderWidgetHostView* widget_view = new_view->CreateViewForWidget(
- new_contents_impl->GetRenderViewHost()->GetWidget(), false);
+ new_contents_impl->GetRenderViewHost()->GetWidget(), nullptr);
}
// Save the created window associated with the route so we can show it
// later.
@@ -6516,7 +6534,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() {
if (!renderer_started_hidden) {
// RenderWidgets for frames always initialize as hidden. If the renderer
// created this window as visible, then we show it here.
@@ -6544,7 +6562,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() {
void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(
RenderViewHost* render_view_host) {
RenderWidgetHostViewBase* rwh_view =
@@ -95,10 +95,10 @@ index df508da0aef2..f6f4bf42b108 100644
WebContents::CreateParams::CreateParams(const CreateParams& other) = default;
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index 50236e972100..8c09c1b53d27 100644
index b5ff1cc5d6f6..f1a2ba836ea1 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -76,9 +76,11 @@ class BrowserPluginGuestDelegate;
@@ -78,9 +78,11 @@ class BrowserPluginGuestDelegate;
class InterstitialPage;
class RenderFrameHost;
class RenderViewHost;
@@ -110,7 +110,7 @@ index 50236e972100..8c09c1b53d27 100644
struct CustomContextMenuContext;
struct DropData;
struct MHTMLGenerationParams;
@@ -217,6 +219,10 @@ class WebContents : public PageNavigator,
@@ -219,6 +221,10 @@ class WebContents : public PageNavigator,
// Sandboxing flags set on the new WebContents.
blink::WebSandboxFlags starting_sandbox_flags;
@@ -122,10 +122,10 @@ index 50236e972100..8c09c1b53d27 100644
// the value that'll be returned by GetLastActiveTime(). If this is left
// default initialized then the value is not passed on to the WebContents
diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h
index 23c2a2bdaa77..67fd2a66cab4 100644
index 70afb5357631..d78b15c3a83b 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -59,10 +59,12 @@ class FileSelectListener;
@@ -58,10 +58,12 @@ class FileSelectListener;
class JavaScriptDialogManager;
class RenderFrameHost;
class RenderProcessHost;
@@ -138,7 +138,7 @@ index 23c2a2bdaa77..67fd2a66cab4 100644
struct ContextMenuParams;
struct DropData;
struct NativeWebKeyboardEvent;
@@ -334,6 +336,14 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -333,6 +335,14 @@ class CONTENT_EXPORT WebContentsDelegate {
const std::string& partition_id,
SessionStorageNamespace* session_storage_namespace);

View File

@@ -10,10 +10,10 @@ index ff7a8ed89e94..77f44956ff22 100644
+ GetPlugins(bool refresh, bool is_main_frame, url.mojom.Origin main_frame_origin) => (array<PluginInfo> plugins);
};
diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h
index 9ae02783be95..b64538cbe8b6 100644
index 68051e35252c..bda59d747a62 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -685,6 +685,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -731,6 +731,11 @@ class BLINK_PLATFORM_EXPORT Platform {
// runs during Chromium's build step).
virtual bool IsTakingV8ContextSnapshot() { return false; }
@@ -44,10 +44,10 @@ index 80a9ec9bc75b..13cbb056cdfa 100644
.Top()
.GetSecurityContext()
diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc
index 60b3fe655dc8..8dedb75b8d8b 100644
index 52f56794f2ed..9bbef168e262 100644
--- third_party/blink/renderer/core/frame/local_frame.cc
+++ third_party/blink/renderer/core/frame/local_frame.cc
@@ -1182,7 +1182,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -1236,7 +1236,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
PluginData* LocalFrame::GetPluginData() const {
if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
return nullptr;
@@ -57,18 +57,18 @@ index 60b3fe655dc8..8dedb75b8d8b 100644
}
diff --git third_party/blink/renderer/core/inspector/devtools_session.cc third_party/blink/renderer/core/inspector/devtools_session.cc
index 789b09417ceb..56d60ee8cb70 100644
index 3f0763384089..6919c6f0b2b8 100644
--- third_party/blink/renderer/core/inspector/devtools_session.cc
+++ third_party/blink/renderer/core/inspector/devtools_session.cc
@@ -5,6 +5,7 @@
#include "third_party/blink/renderer/core/inspector/devtools_session.h"
@@ -9,6 +9,7 @@
#include <vector>
#include "base/containers/span.h"
+#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/bindings/core/v8/script_controller.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/inspector/devtools_agent.h"
@@ -184,6 +185,7 @@ DevToolsSession::DevToolsSession(
@@ -188,6 +189,7 @@ DevToolsSession::DevToolsSession(
for (wtf_size_t i = 0; i < agents_.size(); i++)
agents_[i]->Restore();
}
@@ -76,7 +76,7 @@ index 789b09417ceb..56d60ee8cb70 100644
}
DevToolsSession::~DevToolsSession() {
@@ -223,6 +225,7 @@ void DevToolsSession::Detach() {
@@ -227,6 +229,7 @@ void DevToolsSession::Detach() {
agents_.clear();
v8_session_.reset();
agent_->client_->DebuggerTaskFinished();
@@ -85,10 +85,10 @@ index 789b09417ceb..56d60ee8cb70 100644
void DevToolsSession::FlushProtocolNotifications() {
diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc
index d3f15ac9569d..6823265f1ff0 100644
index 5b2c09a61111..858725e57438 100644
--- third_party/blink/renderer/core/page/page.cc
+++ third_party/blink/renderer/core/page/page.cc
@@ -185,7 +185,8 @@ Page::Page(PageClients& page_clients)
@@ -183,7 +183,8 @@ Page::Page(PageClients& page_clients)
MakeGarbageCollected<OverscrollController>(GetVisualViewport(),
GetChromeClient())),
link_highlights_(MakeGarbageCollected<LinkHighlights>(*this)),
@@ -98,7 +98,7 @@ index d3f15ac9569d..6823265f1ff0 100644
// TODO(pdr): Initialize |validation_message_client_| lazily.
validation_message_client_(
MakeGarbageCollected<ValidationMessageClientImpl>(*this)),
@@ -345,21 +346,40 @@ void Page::InitialStyleChanged() {
@@ -343,21 +344,40 @@ void Page::InitialStyleChanged() {
}
}
@@ -148,7 +148,7 @@ index d3f15ac9569d..6823265f1ff0 100644
page->NotifyPluginsChanged();
}
}
@@ -832,7 +852,8 @@ void Page::Trace(blink::Visitor* visitor) {
@@ -830,7 +850,8 @@ void Page::Trace(blink::Visitor* visitor) {
visitor->Trace(link_highlights_);
visitor->Trace(spatial_navigation_controller_);
visitor->Trace(main_frame_);
@@ -159,10 +159,10 @@ index d3f15ac9569d..6823265f1ff0 100644
visitor->Trace(plugins_changed_observers_);
visitor->Trace(next_related_page_);
diff --git third_party/blink/renderer/core/page/page.h third_party/blink/renderer/core/page/page.h
index cc3fa3e02fad..bfb8986958ba 100644
index 9f70ee045546..aad92d9e2e90 100644
--- third_party/blink/renderer/core/page/page.h
+++ third_party/blink/renderer/core/page/page.h
@@ -141,7 +141,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
@@ -140,7 +140,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
ViewportDescription GetViewportDescription() const;
// Returns the plugin data associated with |main_frame_origin|.
@@ -172,7 +172,7 @@ index cc3fa3e02fad..bfb8986958ba 100644
// Resets the plugin data for all pages in the renderer process and notifies
// PluginsChangedObservers.
@@ -374,7 +375,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
@@ -371,7 +372,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
const Member<LinkHighlights> link_highlights_;
Member<SpatialNavigationController> spatial_navigation_controller_;
@@ -183,12 +183,12 @@ index cc3fa3e02fad..bfb8986958ba 100644
Member<ValidationMessageClient> validation_message_client_;
diff --git third_party/blink/renderer/core/page/plugin_data.cc third_party/blink/renderer/core/page/plugin_data.cc
index 53a380945307..ae05d1ae36ee 100644
index 7ea0e09e47a0..69a5c8f8e3d5 100644
--- third_party/blink/renderer/core/page/plugin_data.cc
+++ third_party/blink/renderer/core/page/plugin_data.cc
@@ -90,10 +90,12 @@ void PluginData::RefreshBrowserSidePluginCache() {
@@ -91,10 +91,12 @@ void PluginData::RefreshBrowserSidePluginCache() {
Platform::Current()->GetInterfaceProvider()->GetInterface(
mojo::MakeRequest(&registry));
registry.BindNewPipeAndPassReceiver());
Vector<mojom::blink::PluginInfoPtr> plugins;
- registry->GetPlugins(true, SecurityOrigin::CreateUniqueOpaque(), &plugins);
+ registry->GetPlugins(true, true, SecurityOrigin::CreateUniqueOpaque(),
@@ -201,9 +201,9 @@ index 53a380945307..ae05d1ae36ee 100644
ResetPluginData();
main_frame_origin_ = main_frame_origin;
@@ -101,7 +103,7 @@ void PluginData::UpdatePluginList(const SecurityOrigin* main_frame_origin) {
@@ -102,7 +104,7 @@ void PluginData::UpdatePluginList(const SecurityOrigin* main_frame_origin) {
Platform::Current()->GetInterfaceProvider()->GetInterface(
mojo::MakeRequest(&registry));
registry.BindNewPipeAndPassReceiver());
Vector<mojom::blink::PluginInfoPtr> plugins;
- registry->GetPlugins(false, main_frame_origin_, &plugins);
+ registry->GetPlugins(false, is_main_frame, main_frame_origin_, &plugins);

View File

@@ -1,5 +1,5 @@
diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc
index 1ccbd3b948f0..98a67619990d 100644
index 152866713e16..89bca464b90b 100644
--- third_party/blink/renderer/core/input/pointer_event_manager.cc
+++ third_party/blink/renderer/core/input/pointer_event_manager.cc
@@ -312,7 +312,7 @@ void PointerEventManager::HandlePointerInterruption(

View File

@@ -1,8 +1,8 @@
diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h
index 20bd110babb1..4f5301c77bda 100644
index db7d7c87686a..a7c6beb6a6f1 100644
--- third_party/blink/public/web/web_view.h
+++ third_party/blink/public/web/web_view.h
@@ -371,6 +371,7 @@ class WebView {
@@ -366,6 +366,7 @@ class WebView {
// Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void SetUseExternalPopupMenus(bool);
@@ -11,10 +11,10 @@ index 20bd110babb1..4f5301c77bda 100644
// Cancels and hides the current popup (datetime, select...) if any.
virtual void CancelPagePopup() = 0;
diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc
index 414e7de22b08..9db9ea786e27 100644
index 58e4fbcf6ee2..51f2645e6154 100644
--- third_party/blink/renderer/core/exported/web_view_impl.cc
+++ third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -217,8 +217,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
@@ -219,8 +219,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
g_should_use_external_popup_menus = use_external_popup_menus;
}
@@ -30,7 +30,7 @@ index 414e7de22b08..9db9ea786e27 100644
}
namespace {
@@ -276,6 +281,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
@@ -278,6 +283,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
chrome_client_(MakeGarbageCollected<ChromeClientImpl>(this)),
minimum_zoom_level_(ZoomFactorToZoomLevel(kMinTextSizeMultiplier)),
maximum_zoom_level_(ZoomFactorToZoomLevel(kMaxTextSizeMultiplier)),
@@ -39,10 +39,10 @@ index 414e7de22b08..9db9ea786e27 100644
fullscreen_controller_(std::make_unique<FullscreenController>(this)) {
if (!AsView().client) {
diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h
index 720ea6fcfb7f..9116fbdcf673 100644
index 61d54c30b50c..d08ad65454ac 100644
--- third_party/blink/renderer/core/exported/web_view_impl.h
+++ third_party/blink/renderer/core/exported/web_view_impl.h
@@ -109,7 +109,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -115,7 +115,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
static HashSet<WebViewImpl*>& AllInstances();
// Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default).
@@ -50,9 +50,9 @@ index 720ea6fcfb7f..9116fbdcf673 100644
+ void SetUseExternalPopupMenusThisInstance(bool) override;
+ bool UseExternalPopupMenus() const;
// Returns whether frames under this WebView are backed by a compositor. When
// false there may be no WebWidgetClient present. When true, there must be a
@@ -619,6 +620,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// Returns whether frames under this WebView are backed by a compositor.
bool does_composite() const { return does_composite_; }
@@ -617,6 +618,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
float fake_page_scale_animation_page_scale_factor_ = 0.f;
bool fake_page_scale_animation_use_anchor_ = false;
@@ -62,15 +62,15 @@ index 720ea6fcfb7f..9116fbdcf673 100644
TransformationMatrix device_emulation_transform_;
diff --git third_party/blink/renderer/core/page/chrome_client_impl.cc third_party/blink/renderer/core/page/chrome_client_impl.cc
index 2df0aefc5764..6ef2dae97acd 100644
index 6d90e9c8e0be..b9e56a2f48e5 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -848,7 +848,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
@@ -856,7 +856,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
HTMLSelectElement& select) {
NotifyPopupOpeningObservers();
- if (WebViewImpl::UseExternalPopupMenus())
+ if (web_view_->UseExternalPopupMenus())
return MakeGarbageCollected<ExternalPopupMenu>(frame, select, *web_view_);
return MakeGarbageCollected<ExternalPopupMenu>(frame, select);
DCHECK(RuntimeEnabledFeatures::PagePopupEnabled());

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
index 827f49d3a00f..2ddfbbab1ab7 100644
index ab59df1d9b16..d8a853bd110c 100644
--- chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
+++ chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
@@ -21,6 +21,7 @@
@@ -10,7 +10,7 @@ index 827f49d3a00f..2ddfbbab1ab7 100644
#include "components/prefs/pref_service.h"
#include "components/sync/driver/about_sync_util.h"
#include "components/sync/driver/sync_service.h"
@@ -267,6 +268,10 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
@@ -269,6 +270,10 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
}
void ChromeInternalLogSource::PopulateSyncLogs(SystemLogsResponse* response) {
@@ -21,7 +21,7 @@ index 827f49d3a00f..2ddfbbab1ab7 100644
// We are only interested in sync logs for the primary user profile.
Profile* profile = ProfileManager::GetPrimaryUserProfile();
if (!profile || !ProfileSyncServiceFactory::HasSyncService(profile))
@@ -309,6 +314,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
@@ -311,6 +316,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!profile)
return;
@@ -34,7 +34,7 @@ index 827f49d3a00f..2ddfbbab1ab7 100644
extensions::ExtensionRegistry* extension_registry =
extensions::ExtensionRegistry::Get(profile);
std::string extensions_list;
@@ -387,6 +398,8 @@ void ChromeInternalLogSource::PopulateLocalStateSettings(
@@ -389,6 +400,8 @@ void ChromeInternalLogSource::PopulateLocalStateSettings(
#if defined(OS_WIN)
void ChromeInternalLogSource::PopulateUsbKeyboardDetected(
SystemLogsResponse* response) {
@@ -44,7 +44,7 @@ index 827f49d3a00f..2ddfbbab1ab7 100644
bool result =
base::win::IsKeyboardPresentOnSlate(&reason, ui::GetHiddenWindow());
diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc
index 14b789a35c34..19a1f340a101 100644
index 8a32ddd423c1..34abc57cc3a2 100644
--- chrome/browser/memory_details.cc
+++ chrome/browser/memory_details.cc
@@ -17,6 +17,7 @@

View File

@@ -1,8 +1,8 @@
diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd
index 0f25c61d5170..201f4d1c1651 100644
index 7ba7a4d37f83..b2ca5edc150c 100644
--- chrome/app/generated_resources.grd
+++ chrome/app/generated_resources.grd
@@ -4648,7 +4648,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
@@ -4732,7 +4732,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
</message>
</if>
<message name="IDS_PLUGIN_BLOCKED_BY_POLICY" desc="The placeholder text for a plugin blocked by enterprise policy.">

View File

@@ -1,8 +1,8 @@
diff --git services/service_manager/sandbox/win/sandbox_win.cc services/service_manager/sandbox/win/sandbox_win.cc
index d4370c2797c0..7509eb4d734d 100644
index 5c915f75f985..f8ec8a81ce44 100644
--- services/service_manager/sandbox/win/sandbox_win.cc
+++ services/service_manager/sandbox/win/sandbox_win.cc
@@ -934,8 +934,11 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess(
@@ -927,8 +927,11 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess(
}
// TODO(wfh): Relax strict handle checks for network process until root cause
// for this crash can be resolved. See https://crbug.com/939590.