Update to Chromium revision ff259bab (#488528)

This commit is contained in:
Marshall Greenblatt
2017-07-26 19:19:27 -04:00
parent 6da2bbf229
commit f229796a39
416 changed files with 2724 additions and 2213 deletions

View File

@@ -0,0 +1,22 @@
diff --git src/libGLESv2.gypi src/libGLESv2.gypi
index e0167d7..937dda0 100644
--- src/libGLESv2.gypi
+++ src/libGLESv2.gypi
@@ -36,8 +36,6 @@
'common/third_party/base/anglebase/sha1.cc',
'common/third_party/base/anglebase/sha1.h',
'common/third_party/base/anglebase/sys_byteorder.h',
- 'common/third_party/murmurhash/MurmurHash3.cpp',
- 'common/third_party/murmurhash/MurmurHash3.h',
'common/tls.cpp',
'common/tls.h',
'common/utilities.cpp',
@@ -123,6 +121,8 @@
[
'common/event_tracer.cpp',
'common/event_tracer.h',
+ 'common/third_party/murmurhash/MurmurHash3.cpp',
+ 'common/third_party/murmurhash/MurmurHash3.h',
'libANGLE/AttributeMap.cpp',
'libANGLE/AttributeMap.h',
'libANGLE/BinaryStream.h',

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/browser_compositor_view_mac.h content/browser/renderer_host/browser_compositor_view_mac.h
index 16599b1..e489af1 100644
index da3c2c7..93ed93d 100644
--- content/browser/renderer_host/browser_compositor_view_mac.h
+++ content/browser/renderer_host/browser_compositor_view_mac.h
@@ -51,9 +51,11 @@ class BrowserCompositorMac : public DelegatedFrameHostClient {
@@ -50,9 +50,11 @@ class BrowserCompositorMac : public DelegatedFrameHostClient {
// These will not return nullptr until Destroy is called.
DelegatedFrameHost* GetDelegatedFrameHost();
@@ -15,10 +15,10 @@ index 16599b1..e489af1 100644
void DidCreateNewRendererCompositorFrameSink(
diff --git content/browser/renderer_host/browser_compositor_view_mac.mm content/browser/renderer_host/browser_compositor_view_mac.mm
index 4121584..c821275 100644
index 278c702..686bfb5 100644
--- content/browser/renderer_host/browser_compositor_view_mac.mm
+++ content/browser/renderer_host/browser_compositor_view_mac.mm
@@ -202,6 +202,12 @@ BrowserCompositorMac::~BrowserCompositorMac() {
@@ -204,6 +204,12 @@ BrowserCompositorMac::~BrowserCompositorMac() {
g_spare_recyclable_compositors.Get().clear();
}
@@ -31,7 +31,7 @@ index 4121584..c821275 100644
ui::AcceleratedWidgetMac* BrowserCompositorMac::GetAcceleratedWidgetMac() {
if (recyclable_compositor_)
return recyclable_compositor_->accelerated_widget_mac();
@@ -420,8 +426,13 @@ SkColor BrowserCompositorMac::DelegatedFrameHostGetGutterColor(
@@ -425,8 +431,13 @@ SkColor BrowserCompositorMac::DelegatedFrameHostGetGutterColor(
}
gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const {

View File

@@ -1,5 +1,5 @@
diff --git content/browser/frame_host/render_widget_host_view_guest.cc content/browser/frame_host/render_widget_host_view_guest.cc
index b7e4883..2dfd11e 100644
index d221c6c..f3d5ad4 100644
--- content/browser/frame_host/render_widget_host_view_guest.cc
+++ content/browser/frame_host/render_widget_host_view_guest.cc
@@ -246,13 +246,14 @@ void RenderWidgetHostViewGuest::Destroy() {

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 1f985ec..47bf303 100644
index b4eae88..bfb3887 100644
--- content/browser/browser_plugin/browser_plugin_guest.cc
+++ content/browser/browser_plugin/browser_plugin_guest.cc
@@ -322,14 +322,20 @@ void BrowserPluginGuest::InitInternal(
@@ -336,14 +336,20 @@ void BrowserPluginGuest::InitInternal(
static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
}
@@ -25,7 +25,7 @@ index 1f985ec..47bf303 100644
}
RendererPreferences* renderer_prefs =
@@ -805,7 +811,8 @@ void BrowserPluginGuest::OnWillAttachComplete(
@@ -834,7 +840,8 @@ void BrowserPluginGuest::OnWillAttachComplete(
static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) {
web_contents_view->CreateViewForWidget(
@@ -36,10 +36,10 @@ index 1f985ec..47bf303 100644
}
diff --git content/browser/frame_host/interstitial_page_impl.cc content/browser/frame_host/interstitial_page_impl.cc
index d890e64..1965603 100644
index de0043f..7699c2f 100644
--- content/browser/frame_host/interstitial_page_impl.cc
+++ content/browser/frame_host/interstitial_page_impl.cc
@@ -605,7 +605,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() {
@@ -609,7 +609,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() {
WebContentsView* wcv =
static_cast<WebContentsImpl*>(web_contents())->GetView();
RenderWidgetHostViewBase* view =
@@ -49,9 +49,18 @@ index d890e64..1965603 100644
render_view_host_->GetMainFrame()->AllowBindings(
BINDINGS_POLICY_DOM_AUTOMATION);
diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h
index e4401f8..f2fdb9b 100644
index e4401f8..20b8560 100644
--- content/browser/web_contents/web_contents_view.h
+++ content/browser/web_contents/web_contents_view.h
@@ -24,7 +24,7 @@ struct ScreenInfo;
// The WebContentsView is an interface that is implemented by the platform-
// dependent web contents views. The WebContents uses this interface to talk to
// them.
-class WebContentsView {
+class CONTENT_EXPORT WebContentsView {
public:
virtual ~WebContentsView() {}
@@ -86,13 +86,9 @@ class WebContentsView {
// Sets up the View that holds the rendered web page, receives messages for
// it and contains page plugins. The host view should be sized to the current
@@ -69,10 +78,10 @@ index e4401f8..f2fdb9b 100644
// Creates a new View that holds a popup and receives messages for it.
virtual RenderWidgetHostViewBase* CreateViewForPopupWidget(
diff --git content/browser/web_contents/web_contents_view_aura.cc content/browser/web_contents/web_contents_view_aura.cc
index 84b906e..ec0d014 100644
index a99e043..f1ef7cb 100644
--- content/browser/web_contents/web_contents_view_aura.cc
+++ content/browser/web_contents/web_contents_view_aura.cc
@@ -846,7 +846,8 @@ void WebContentsViewAura::CreateView(
@@ -844,7 +844,8 @@ void WebContentsViewAura::CreateView(
}
RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@@ -82,7 +91,7 @@ index 84b906e..ec0d014 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
@@ -858,6 +859,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@@ -856,6 +857,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
render_widget_host->GetView());
}
@@ -91,7 +100,7 @@ index 84b906e..ec0d014 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 c52692e..63402a6 100644
index bb49288..603f18a 100644
--- content/browser/web_contents/web_contents_view_aura.h
+++ content/browser/web_contents/web_contents_view_aura.h
@@ -118,7 +118,7 @@ class CONTENT_EXPORT WebContentsViewAura
@@ -104,7 +113,7 @@ index c52692e..63402a6 100644
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_child_frame.cc content/browser/web_contents/web_contents_view_child_frame.cc
index d10fbca..18df45f 100644
index eb309e7..e69e6df 100644
--- content/browser/web_contents/web_contents_view_child_frame.cc
+++ content/browser/web_contents/web_contents_view_child_frame.cc
@@ -94,7 +94,7 @@ void WebContentsViewChildFrame::CreateView(const gfx::Size& initial_size,
@@ -117,10 +126,10 @@ index d10fbca..18df45f 100644
}
diff --git content/browser/web_contents/web_contents_view_child_frame.h content/browser/web_contents/web_contents_view_child_frame.h
index 86ce68b..fd21e5a 100644
index 18d45ee..6aa738d 100644
--- content/browser/web_contents/web_contents_view_child_frame.h
+++ content/browser/web_contents/web_contents_view_child_frame.h
@@ -39,7 +39,7 @@ class WebContentsViewChildFrame : public WebContentsView,
@@ -40,7 +40,7 @@ class WebContentsViewChildFrame : public WebContentsView,
gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
@@ -130,7 +139,7 @@ index 86ce68b..fd21e5a 100644
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_guest.cc content/browser/web_contents/web_contents_view_guest.cc
index 702a579..2acceda 100644
index 0256869..da7a9b8 100644
--- content/browser/web_contents/web_contents_view_guest.cc
+++ content/browser/web_contents/web_contents_view_guest.cc
@@ -72,6 +72,8 @@ void WebContentsViewGuest::GetScreenInfo(ScreenInfo* screen_info) const {
@@ -185,7 +194,7 @@ index 702a579..2acceda 100644
RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForPopupWidget(
diff --git content/browser/web_contents/web_contents_view_guest.h content/browser/web_contents/web_contents_view_guest.h
index 0102d7e..b89d66c 100644
index 464ea8f..0d3118d 100644
--- content/browser/web_contents/web_contents_view_guest.h
+++ content/browser/web_contents/web_contents_view_guest.h
@@ -58,7 +58,7 @@ class WebContentsViewGuest : public WebContentsView,
@@ -198,7 +207,7 @@ index 0102d7e..b89d66c 100644
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_mac.h content/browser/web_contents/web_contents_view_mac.h
index b0a1a1d..12fce1d3 100644
index 34945ac..542042c 100644
--- content/browser/web_contents/web_contents_view_mac.h
+++ content/browser/web_contents/web_contents_view_mac.h
@@ -91,7 +91,7 @@ class WebContentsViewMac : public WebContentsView,
@@ -211,7 +220,7 @@ index b0a1a1d..12fce1d3 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 ebd0ce3..64a9d85 100644
index f256f69..fbf2726 100644
--- content/browser/web_contents/web_contents_view_mac.mm
+++ content/browser/web_contents/web_contents_view_mac.mm
@@ -352,7 +352,8 @@ void WebContentsViewMac::CreateView(

View File

@@ -62,11 +62,24 @@ index 4b43013..169ca47 100644
// Returns the original browser context even for Incognito contexts.
content::BrowserContext* GetBrowserContextRedirectedInIncognito(
content::BrowserContext* context);
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index 00635b8..d15278e 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());
- if (ProfileShortcutManager::IsFeatureEnabled() && !user_data_dir_.empty())
+ if (!user_data_dir_.empty() && ProfileShortcutManager::IsFeatureEnabled())
profile_shortcut_manager_.reset(ProfileShortcutManager::Create(
this));
}
diff --git chrome/browser/profiles/profile_manager.h chrome/browser/profiles/profile_manager.h
index 385f9c3..3d126bd 100644
index b3fa180..81adaea 100644
--- chrome/browser/profiles/profile_manager.h
+++ chrome/browser/profiles/profile_manager.h
@@ -89,7 +89,7 @@ class ProfileManager : public base::NonThreadSafe,
@@ -94,7 +94,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.
@@ -75,7 +88,7 @@ index 385f9c3..3d126bd 100644
// Returns total number of profiles available on this machine.
size_t GetNumberOfProfiles();
@@ -117,7 +117,7 @@ class ProfileManager : public base::NonThreadSafe,
@@ -125,7 +125,7 @@ class ProfileManager : public content::NotificationObserver,
// Returns true if the profile pointer is known to point to an existing
// profile.
@@ -84,7 +97,7 @@ index 385f9c3..3d126bd 100644
// Returns the directory where the first created profile is stored,
// relative to the user data directory currently in use.
@@ -126,7 +126,7 @@ class ProfileManager : public base::NonThreadSafe,
@@ -134,7 +134,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,8 +1,8 @@
diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc
index b7429b1..a65dfbf 100644
index 05e23a6..051dab3 100644
--- chrome/common/chrome_content_client.cc
+++ chrome/common/chrome_content_client.cc
@@ -81,7 +81,7 @@
@@ -82,7 +82,7 @@
#endif
#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) && \

View File

@@ -1,5 +1,5 @@
diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h
index c0fd31d..9e95dbb 100644
index 7563ce4..6c59474 100644
--- content/app/content_service_manager_main_delegate.h
+++ content/app/content_service_manager_main_delegate.h
@@ -16,7 +16,8 @@ namespace content {
@@ -12,29 +12,8 @@ index c0fd31d..9e95dbb 100644
public:
explicit ContentServiceManagerMainDelegate(const ContentMainParams& params);
~ContentServiceManagerMainDelegate() override;
diff --git content/browser/frame_host/debug_urls.h content/browser/frame_host/debug_urls.h
index 413cd0f..bab8a6d 100644
--- content/browser/frame_host/debug_urls.h
+++ content/browser/frame_host/debug_urls.h
@@ -5,6 +5,7 @@
#ifndef CONTENT_BROWSER_FRAME_HOST_DEBUG_URLS_H_
#define CONTENT_BROWSER_FRAME_HOST_DEBUG_URLS_H_
+#include "content/common/content_export.h"
#include "ui/base/page_transition_types.h"
class GURL;
@@ -19,7 +20,7 @@ bool HandleDebugURL(const GURL& url, ui::PageTransition transition);
// renderer process, such as one that crashes or hangs the renderer, or a
// javascript: URL that operates on the current page in the renderer. Such URLs
// do not represent actual navigations and can be loaded in any SiteInstance.
-bool IsRendererDebugURL(const GURL& url);
+CONTENT_EXPORT bool IsRendererDebugURL(const GURL& url);
} // namespace content
diff --git third_party/WebKit/Source/web/BUILD.gn third_party/WebKit/Source/web/BUILD.gn
index 4424844..f72486f 100644
index 148b260..b08bb89 100644
--- third_party/WebKit/Source/web/BUILD.gn
+++ third_party/WebKit/Source/web/BUILD.gn
@@ -15,6 +15,7 @@ component("web") {

View File

@@ -1,8 +1,8 @@
diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc
index 409df10..e1df182 100644
index 0e405ef..f2ecb56 100644
--- content/browser/compositor/gpu_process_transport_factory.cc
+++ content/browser/compositor/gpu_process_transport_factory.cc
@@ -240,6 +240,13 @@ GpuProcessTransportFactory::~GpuProcessTransportFactory() {
@@ -239,6 +239,13 @@ GpuProcessTransportFactory::~GpuProcessTransportFactory() {
std::unique_ptr<cc::SoftwareOutputDevice>
GpuProcessTransportFactory::CreateSoftwareOutputDevice(
ui::Compositor* compositor) {
@@ -17,7 +17,7 @@ index 409df10..e1df182 100644
if (command_line->HasSwitch(switches::kHeadless))
return base::WrapUnique(new cc::SoftwareOutputDevice);
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index 54a104a..ba76d90 100644
index 163fbb0..bb8dea8 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -18,6 +18,7 @@
@@ -25,10 +25,10 @@ index 54a104a..ba76d90 100644
#include "build/build_config.h"
#include "cc/output/begin_frame_args.h"
+#include "cc/output/software_output_device.h"
#include "cc/surfaces/surface_sequence.h"
#include "cc/trees/layer_tree_host_client.h"
#include "cc/trees/layer_tree_host_single_thread_client.h"
@@ -166,6 +167,17 @@ class COMPOSITOR_EXPORT ContextFactory {
#include "components/viz/common/surfaces/surface_sequence.h"
@@ -174,6 +175,17 @@ class COMPOSITOR_EXPORT ContextFactory {
virtual void RemoveObserver(ContextFactoryObserver* observer) = 0;
};
@@ -46,7 +46,7 @@ index 54a104a..ba76d90 100644
// Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final
// displayable form of pixels comprising a single widget's contents. It draws an
@@ -198,6 +210,9 @@ class COMPOSITOR_EXPORT Compositor
@@ -207,6 +219,9 @@ class COMPOSITOR_EXPORT Compositor
// Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw();
@@ -56,7 +56,7 @@ index 54a104a..ba76d90 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
@@ -381,6 +396,8 @@ class COMPOSITOR_EXPORT Compositor
@@ -389,6 +404,8 @@ class COMPOSITOR_EXPORT Compositor
ui::ContextFactory* context_factory_;
ui::ContextFactoryPrivate* context_factory_private_;

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/download/download_target_determiner.cc chrome/browser/download/download_target_determiner.cc
index ecc7952..69ef4b4 100644
index 43bbb3a..7c03fdc 100644
--- chrome/browser/download/download_target_determiner.cc
+++ chrome/browser/download/download_target_determiner.cc
@@ -476,8 +476,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context,
@@ -477,8 +477,8 @@ void IsHandledBySafePlugin(content::ResourceContext* resource_context,
content::PluginService* plugin_service =
content::PluginService::GetInstance();
bool plugin_found = plugin_service->GetPluginInfo(
@@ -38,10 +38,10 @@ index f8b651f..ec39f8d 100644
content::WebPluginInfo* plugin) override;
diff --git chrome/browser/plugins/plugin_info_message_filter.cc chrome/browser/plugins/plugin_info_message_filter.cc
index 8c31c98..beef4cb 100644
index 176b1bc..3e91d67 100644
--- chrome/browser/plugins/plugin_info_message_filter.cc
+++ chrome/browser/plugins/plugin_info_message_filter.cc
@@ -451,8 +451,8 @@ bool PluginInfoMessageFilter::Context::FindEnabledPlugin(
@@ -452,8 +452,8 @@ bool PluginInfoMessageFilter::Context::FindEnabledPlugin(
for (; i < matching_plugins.size(); ++i) {
if (!filter ||
filter->IsPluginAvailable(render_process_id_, render_frame_id,
@@ -66,10 +66,10 @@ index fd8c993..7f70c96 100644
}
diff --git chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index ea5764b..ae06854 100644
index 5ca4247..fc24263 100644
--- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -585,6 +585,6 @@ void BrowserTabStripController::OnFindURLMimeTypeCompleted(
@@ -575,6 +575,6 @@ void BrowserTabStripController::OnFindURLMimeTypeCompleted(
content::PluginService::GetInstance()->GetPluginInfo(
-1, // process ID
MSG_ROUTING_NONE, // routing ID
@@ -78,10 +78,10 @@ index ea5764b..ae06854 100644
mime_type, false, NULL, &plugin, NULL));
}
diff --git content/browser/frame_host/navigation_handle_impl.cc content/browser/frame_host/navigation_handle_impl.cc
index 7563fdf..d4e0a38 100644
index ec9ded6..4a0406a 100644
--- content/browser/frame_host/navigation_handle_impl.cc
+++ content/browser/frame_host/navigation_handle_impl.cc
@@ -294,12 +294,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() {
@@ -300,12 +300,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() {
}
RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() {
@@ -95,10 +95,10 @@ index 7563fdf..d4e0a38 100644
}
diff --git content/browser/frame_host/render_frame_host_impl.cc content/browser/frame_host/render_frame_host_impl.cc
index 2bdb04d..b28722e 100644
index b9f925b..eacb4167 100644
--- content/browser/frame_host/render_frame_host_impl.cc
+++ content/browser/frame_host/render_frame_host_impl.cc
@@ -865,10 +865,8 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) {
@@ -918,10 +918,8 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) {
IPC_MESSAGE_HANDLER(FrameHostMsg_ShowPopup, OnShowPopup)
IPC_MESSAGE_HANDLER(FrameHostMsg_HidePopup, OnHidePopup)
#endif
@@ -109,7 +109,7 @@ index 2bdb04d..b28722e 100644
IPC_MESSAGE_HANDLER(FrameHostMsg_RequestOverlayRoutingToken,
OnRequestOverlayRoutingToken)
IPC_MESSAGE_HANDLER(FrameHostMsg_ShowCreatedWindow, OnShowCreatedWindow)
@@ -1323,6 +1321,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
@@ -1410,6 +1408,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
if (navigation_handle_) {
navigation_handle_->set_net_error_code(
static_cast<net::Error>(params.error_code));
@@ -117,7 +117,7 @@ index 2bdb04d..b28722e 100644
}
frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params);
@@ -2573,14 +2572,12 @@ void RenderFrameHostImpl::OnHidePopup() {
@@ -2683,14 +2682,12 @@ void RenderFrameHostImpl::OnHidePopup() {
}
#endif
@@ -133,10 +133,10 @@ index 2bdb04d..b28722e 100644
void RenderFrameHostImpl::OnRequestOverlayRoutingToken() {
// Make sure that we have a token.
diff --git content/browser/frame_host/render_frame_host_impl.h content/browser/frame_host/render_frame_host_impl.h
index 1d1de6e..bd05959 100644
index c3a1726..9b3922e 100644
--- content/browser/frame_host/render_frame_host_impl.h
+++ content/browser/frame_host/render_frame_host_impl.h
@@ -801,8 +801,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
@@ -815,8 +815,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params);
void OnHidePopup();
#endif
@@ -147,10 +147,10 @@ index 1d1de6e..bd05959 100644
mojo::ScopedMessagePipeHandle pipe);
#endif
diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc
index bbbb37d..1fa30da 100644
index 9b9cfbd..ae3a274 100644
--- content/browser/frame_host/render_frame_message_filter.cc
+++ content/browser/frame_host/render_frame_message_filter.cc
@@ -449,6 +449,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id,
@@ -475,6 +475,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id,
void RenderFrameMessageFilter::OnGetPlugins(
bool refresh,
@@ -158,7 +158,7 @@ index bbbb37d..1fa30da 100644
const url::Origin& main_frame_origin,
IPC::Message* reply_msg) {
// Don't refresh if the specified threshold has not been passed. Note that
@@ -470,18 +471,19 @@ void RenderFrameMessageFilter::OnGetPlugins(
@@ -496,18 +497,19 @@ void RenderFrameMessageFilter::OnGetPlugins(
PluginServiceImpl::GetInstance()->GetPlugins(
base::Bind(&RenderFrameMessageFilter::GetPluginsCallback, this, reply_msg,
@@ -180,7 +180,7 @@ index bbbb37d..1fa30da 100644
int routing_id = MSG_ROUTING_NONE;
// In this loop, copy the WebPluginInfo (and do not use a reference) because
// the filter might mutate it.
@@ -490,7 +492,7 @@ void RenderFrameMessageFilter::GetPluginsCallback(
@@ -516,7 +518,7 @@ void RenderFrameMessageFilter::GetPluginsCallback(
if (!filter ||
filter->IsPluginAvailable(child_process_id, routing_id,
resource_context_, main_frame_origin.GetURL(),
@@ -189,7 +189,7 @@ index bbbb37d..1fa30da 100644
plugins.push_back(plugin);
}
}
@@ -502,6 +504,7 @@ void RenderFrameMessageFilter::GetPluginsCallback(
@@ -528,6 +530,7 @@ void RenderFrameMessageFilter::GetPluginsCallback(
void RenderFrameMessageFilter::OnGetPluginInfo(
int render_frame_id,
const GURL& url,
@@ -197,7 +197,7 @@ index bbbb37d..1fa30da 100644
const url::Origin& main_frame_origin,
const std::string& mime_type,
bool* found,
@@ -510,8 +513,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
@@ -536,8 +539,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
bool allow_wildcard = true;
*found = plugin_service_->GetPluginInfo(
render_process_id_, render_frame_id, resource_context_, url,
@@ -230,10 +230,10 @@ index 3f49cc4..c593146 100644
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 11adad4..283f116 100644
index 20d09f5..f36d855 100644
--- content/browser/loader/mime_sniffing_resource_handler.cc
+++ content/browser/loader/mime_sniffing_resource_handler.cc
@@ -519,8 +519,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler(
@@ -494,8 +494,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler(
WebPluginInfo plugin;
bool has_plugin = plugin_service_->GetPluginInfo(
info->GetChildID(), info->GetRenderFrameID(), info->GetContext(),
@@ -279,10 +279,10 @@ index 85b64da..e77f1bb 100644
const std::string& mime_type,
bool allow_wildcard,
diff --git content/common/frame_messages.h content/common/frame_messages.h
index 7077b9a..5fa68b1 100644
index 168d64f..82e9385 100644
--- content/common/frame_messages.h
+++ content/common/frame_messages.h
@@ -1298,8 +1298,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback,
@@ -1324,8 +1324,9 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback,
// Used to get the list of plugins. |main_frame_origin| is used to handle
// exceptions for plugin content settings.
@@ -293,7 +293,7 @@ index 7077b9a..5fa68b1 100644
url::Origin /* main_frame_origin */,
std::vector<content::WebPluginInfo> /* plugins */)
@@ -1307,9 +1308,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins,
@@ -1333,9 +1334,10 @@ IPC_SYNC_MESSAGE_CONTROL2_1(FrameHostMsg_GetPlugins,
// type. If there is no matching plugin, |found| is false.
// |actual_mime_type| is the actual mime type supported by the
// found plugin.
@@ -305,7 +305,7 @@ index 7077b9a..5fa68b1 100644
url::Origin /* main_frame_origin */,
std::string /* mime_type */,
bool /* found */,
@@ -1677,9 +1679,9 @@ IPC_MESSAGE_ROUTED3(FrameHostMsg_FindMatchRects_Reply,
@@ -1716,9 +1718,9 @@ IPC_MESSAGE_ROUTED3(FrameHostMsg_FindMatchRects_Reply,
IPC_MESSAGE_ROUTED2(FrameHostMsg_GetNearestFindResult_Reply,
int /* nfr_request_id */,
float /* distance */)
@@ -317,10 +317,10 @@ index 7077b9a..5fa68b1 100644
// Adding a new message? Stick to the sort order above: first platform
// independent FrameMsg, then ifdefs for platform specific FrameMsg, then
diff --git content/ppapi_plugin/ppapi_blink_platform_impl.cc content/ppapi_plugin/ppapi_blink_platform_impl.cc
index e9b8930..42e3aec 100644
index 6190e33..fbde1ba 100644
--- content/ppapi_plugin/ppapi_blink_platform_impl.cc
+++ content/ppapi_plugin/ppapi_blink_platform_impl.cc
@@ -213,6 +213,7 @@ std::unique_ptr<blink::WebURLLoader> PpapiBlinkPlatformImpl::CreateURLLoader() {
@@ -215,6 +215,7 @@ std::unique_ptr<blink::WebURLLoader> PpapiBlinkPlatformImpl::CreateURLLoader(
void PpapiBlinkPlatformImpl::GetPluginList(
bool refresh,
@@ -329,17 +329,17 @@ index e9b8930..42e3aec 100644
blink::WebPluginListBuilder* builder) {
NOTREACHED();
diff --git content/ppapi_plugin/ppapi_blink_platform_impl.h content/ppapi_plugin/ppapi_blink_platform_impl.h
index 84d29a5..3541ff0 100644
index fc83aea..9c1a4b2 100644
--- content/ppapi_plugin/ppapi_blink_platform_impl.h
+++ content/ppapi_plugin/ppapi_blink_platform_impl.h
@@ -45,6 +45,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImpl {
blink::WebThemeEngine* ThemeEngine() override;
std::unique_ptr<blink::WebURLLoader> CreateURLLoader() override;
@@ -47,6 +47,7 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImpl {
const blink::WebURLRequest& request,
base::SingleThreadTaskRunner* task_runner) override;
void GetPluginList(bool refresh,
+ bool isMainFrame,
const blink::WebSecurityOrigin& mainFrameOrigin,
blink::WebPluginListBuilder*) override;
blink::WebData LoadResource(const char* name) override;
blink::WebData GetDataResource(const char* name) override;
diff --git content/public/browser/plugin_service.h content/public/browser/plugin_service.h
index ac05c13..762262b 100644
--- content/public/browser/plugin_service.h
@@ -365,10 +365,10 @@ index 3b610b1..7c439e0 100644
WebPluginInfo* plugin) = 0;
diff --git content/public/renderer/content_renderer_client.cc content/public/renderer/content_renderer_client.cc
index 02565ee..de8fa6e 100644
index 62e2a4e..7932e91 100644
--- content/public/renderer/content_renderer_client.cc
+++ content/public/renderer/content_renderer_client.cc
@@ -104,7 +104,6 @@ bool ContentRendererClient::AllowPopup() {
@@ -110,7 +110,6 @@ bool ContentRendererClient::AllowPopup() {
return false;
}
@@ -376,7 +376,7 @@ index 02565ee..de8fa6e 100644
bool ContentRendererClient::HandleNavigation(
RenderFrame* render_frame,
bool is_content_initiated,
@@ -117,6 +116,7 @@ bool ContentRendererClient::HandleNavigation(
@@ -123,6 +122,7 @@ bool ContentRendererClient::HandleNavigation(
return false;
}
@@ -385,10 +385,10 @@ index 02565ee..de8fa6e 100644
return false;
}
diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h
index 0e554ba..8ac5c54 100644
index 915dc35..a015048 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -75,6 +75,9 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -77,6 +77,9 @@ class CONTENT_EXPORT ContentRendererClient {
// Notifies us that the RenderThread has been created.
virtual void RenderThreadStarted() {}
@@ -398,7 +398,7 @@ index 0e554ba..8ac5c54 100644
// Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -190,7 +193,6 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -197,7 +200,6 @@ class CONTENT_EXPORT ContentRendererClient {
// Returns true if a popup window should be allowed.
virtual bool AllowPopup();
@@ -406,7 +406,7 @@ index 0e554ba..8ac5c54 100644
// TODO(sgurun) This callback is deprecated and will be removed as soon
// as android webview completes implementation of a resource throttle based
// shouldoverrideurl implementation. See crbug.com/325351
@@ -206,6 +208,7 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -213,6 +215,7 @@ class CONTENT_EXPORT ContentRendererClient {
blink::WebNavigationPolicy default_policy,
bool is_redirect);
@@ -415,10 +415,10 @@ index 0e554ba..8ac5c54 100644
// built in media player for the given |url|. Defaults to false.
virtual bool ShouldUseMediaPlayerForURL(const GURL& url);
diff --git content/public/renderer/render_frame_observer.h content/public/renderer/render_frame_observer.h
index ebf4cd4..27a9df4 100644
index 48b932e..80110f9 100644
--- content/public/renderer/render_frame_observer.h
+++ content/public/renderer/render_frame_observer.h
@@ -115,6 +115,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
@@ -116,6 +116,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
virtual void DidObserveLoadingBehavior(
blink::WebLoadingBehaviorFlag behavior) {}
@@ -429,10 +429,10 @@ index ebf4cd4..27a9df4 100644
virtual void FocusedNodeChanged(const blink::WebNode& node) {}
diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc
index d1e9d50..ad7c36d7 100644
index 69bb3ef..df99298 100644
--- content/renderer/render_frame_impl.cc
+++ content/renderer/render_frame_impl.cc
@@ -2902,7 +2902,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
@@ -2897,7 +2897,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
std::string mime_type;
bool found = false;
Send(new FrameHostMsg_GetPluginInfo(
@@ -442,7 +442,7 @@ index d1e9d50..ad7c36d7 100644
params.mime_type.Utf8(), &found, &info, &mime_type));
if (!found)
return nullptr;
@@ -3390,6 +3391,8 @@ void RenderFrameImpl::FrameDetached(blink::WebLocalFrame* frame,
@@ -3205,6 +3206,8 @@ void RenderFrameImpl::FrameDetached(blink::WebLocalFrame* frame,
void RenderFrameImpl::FrameFocused() {
Send(new FrameHostMsg_FrameFocused(routing_id_));
@@ -451,7 +451,7 @@ index d1e9d50..ad7c36d7 100644
}
void RenderFrameImpl::WillCommitProvisionalLoad() {
@@ -5495,9 +5498,8 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
@@ -5324,9 +5327,8 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
(!IsBrowserSideNavigationEnabled() ||
url != pending_navigation_params_->request_params.redirects[0]));
@@ -463,7 +463,7 @@ index d1e9d50..ad7c36d7 100644
// The handlenavigation API is deprecated and will be removed once
// crbug.com/325351 is resolved.
if (GetContentClient()->renderer()->HandleNavigation(
@@ -5510,7 +5512,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
@@ -5339,7 +5341,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
}
return blink::kWebNavigationPolicyIgnore;
}
@@ -472,23 +472,23 @@ index d1e9d50..ad7c36d7 100644
Referrer referrer(
RenderViewImpl::GetReferrerFromRequest(frame_, info.url_request));
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index 116d31a8..ef645bb 100644
index c26bd13..25e7028 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -754,6 +754,8 @@ void RenderThreadImpl::Init(
@@ -772,6 +772,8 @@ void RenderThreadImpl::Init(
StartServiceManagerConnection();
+ GetContentClient()->renderer()->RenderThreadConnected();
+
field_trial_syncer_.InitFieldTrialObserving(
*base::CommandLine::ForCurrentProcess(), switches::kSingleProcess);
GetAssociatedInterfaceRegistry()->AddInterface(
base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest,
base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index a540286..41b19d4 100644
index 45fcfe8..165a5f4 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -738,6 +738,7 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor(
@@ -876,6 +876,7 @@ RendererBlinkPlatformImpl::CreateMIDIAccessor(
void RendererBlinkPlatformImpl::GetPluginList(
bool refresh,
@@ -496,7 +496,7 @@ index a540286..41b19d4 100644
const blink::WebSecurityOrigin& mainFrameOrigin,
blink::WebPluginListBuilder* builder) {
#if BUILDFLAG(ENABLE_PLUGINS)
@@ -745,7 +746,8 @@ void RendererBlinkPlatformImpl::GetPluginList(
@@ -883,7 +884,8 @@ void RendererBlinkPlatformImpl::GetPluginList(
if (!plugin_refresh_allowed_)
refresh = false;
RenderThread::Get()->Send(
@@ -507,11 +507,11 @@ index a540286..41b19d4 100644
builder->AddPlugin(WebString::FromUTF16(plugin.name),
WebString::FromUTF16(plugin.desc),
diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h
index b931470..af3719a 100644
index 0ca8faf..7c81cf9 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -124,6 +124,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
cc::FrameSinkId GenerateFrameSinkId() override;
@@ -125,6 +125,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
viz::FrameSinkId GenerateFrameSinkId() override;
void GetPluginList(bool refresh,
+ bool isMainFrame,
@@ -567,10 +567,10 @@ index db23a83..57a4c536 100644
const std::string& mime_type,
bool allow_wildcard,
diff --git content/test/test_blink_web_unit_test_support.cc content/test/test_blink_web_unit_test_support.cc
index 7150daf..69fcc9e 100644
index c19d608..3dce54d 100644
--- content/test/test_blink_web_unit_test_support.cc
+++ content/test/test_blink_web_unit_test_support.cc
@@ -289,6 +289,7 @@ blink::WebThread* TestBlinkWebUnitTestSupport::CurrentThread() {
@@ -290,6 +290,7 @@ blink::WebThread* TestBlinkWebUnitTestSupport::CurrentThread() {
void TestBlinkWebUnitTestSupport::GetPluginList(
bool refresh,
@@ -579,10 +579,10 @@ index 7150daf..69fcc9e 100644
blink::WebPluginListBuilder* builder) {
builder->AddPlugin("pdf", "pdf", "pdf-files");
diff --git content/test/test_blink_web_unit_test_support.h content/test/test_blink_web_unit_test_support.h
index 78b7d2c..62a52cb 100644
index 556242d..61853c2 100644
--- content/test/test_blink_web_unit_test_support.h
+++ content/test/test_blink_web_unit_test_support.h
@@ -68,6 +68,7 @@ class TestBlinkWebUnitTestSupport : public BlinkPlatformImpl {
@@ -70,6 +70,7 @@ class TestBlinkWebUnitTestSupport : public BlinkPlatformImpl {
const blink::WebSize& size) override;
void GetPluginList(bool refresh,

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 6f03077..c61fed3 100644
index 4822d0d..3efc466 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

@@ -31,7 +31,7 @@ index 4d385dd..1b51f2d 100644
cflags = [ "/wd4201" ]
}
diff --git chrome/common/crash_keys.cc chrome/common/crash_keys.cc
index e9578be..2561824 100644
index effec5c..1cd8f58 100644
--- chrome/common/crash_keys.cc
+++ chrome/common/crash_keys.cc
@@ -4,6 +4,8 @@
@@ -43,16 +43,16 @@ index e9578be..2561824 100644
#include "base/base_switches.h"
#include "base/command_line.h"
#include "base/format_macros.h"
@@ -86,7 +88,7 @@ const char kViewCount[] = "view-count";
const char kZeroEncodeDetails[] = "zero-encode-details";
@@ -89,7 +91,7 @@ const char kZeroEncodeDetails[] = "zero-encode-details";
const char kUserCloudPolicyManagerConnectTrace[] =
"user-cloud-policy-manager-connect-trace";
-size_t RegisterChromeCrashKeys() {
+void GetChromeCrashKeys(std::vector<base::debug::CrashKey>& keys) {
// The following keys may be chunked by the underlying crash logging system,
// but ultimately constitute a single key-value pair.
//
@@ -226,10 +228,16 @@ size_t RegisterChromeCrashKeys() {
@@ -229,10 +231,16 @@ size_t RegisterChromeCrashKeys() {
// This dynamic set of keys is used for sets of key value pairs when gathering
// a collection of data, like command line switches or extension IDs.
@@ -71,7 +71,7 @@ index e9578be..2561824 100644
// Register the extension IDs.
{
@@ -263,7 +271,7 @@ size_t RegisterChromeCrashKeys() {
@@ -266,7 +274,7 @@ size_t RegisterChromeCrashKeys() {
return base::debug::InitCrashKeys(&keys.at(0), keys.size(), kChunkMaxLength);
}
@@ -80,7 +80,7 @@ index e9578be..2561824 100644
static const char* const kIgnoreSwitches[] = {
switches::kEnableLogging,
switches::kFlagSwitchesBegin,
@@ -319,7 +327,7 @@ static bool IsBoringSwitch(const std::string& flag) {
@@ -322,7 +330,7 @@ static bool IsBoringSwitch(const std::string& flag) {
}
void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) {
@@ -90,7 +90,7 @@ index e9578be..2561824 100644
void SetActiveExtensions(const std::set<std::string>& extensions) {
diff --git chrome/common/crash_keys.h chrome/common/crash_keys.h
index 93fb0b0..3e543d2 100644
index 687146e..b1b73d6 100644
--- chrome/common/crash_keys.h
+++ chrome/common/crash_keys.h
@@ -22,10 +22,18 @@ class CommandLine;
@@ -113,7 +113,7 @@ index 93fb0b0..3e543d2 100644
// on the given |command_line|.
void SetCrashKeysFromCommandLine(const base::CommandLine& command_line);
diff --git chrome_elf/BUILD.gn chrome_elf/BUILD.gn
index c8197e9..06adc24 100644
index 8ae2c85..cea4a3d 100644
--- chrome_elf/BUILD.gn
+++ chrome_elf/BUILD.gn
@@ -7,6 +7,7 @@
@@ -143,8 +143,8 @@ index c8197e9..06adc24 100644
"//chrome/install_static:install_static_util",
"//components/crash/content/app:app",
"//components/crash/core/common", # crash_keys
@@ -154,6 +154,17 @@ static_library("crash") {
"//content/public/common:result_codes",
@@ -155,6 +155,17 @@ static_library("crash") {
"//gpu/config:crash_keys",
"//third_party/crashpad/crashpad/client:client", # DumpWithoutCrash
]
+
@@ -162,7 +162,7 @@ index c8197e9..06adc24 100644
static_library("hook_util") {
diff --git chrome_elf/crash/crash_helper.cc chrome_elf/crash/crash_helper.cc
index c658fa9..8c4a145 100644
index 31ed150..aacbb02 100644
--- chrome_elf/crash/crash_helper.cc
+++ chrome_elf/crash/crash_helper.cc
@@ -11,12 +11,17 @@
@@ -196,7 +196,7 @@ index c658fa9..8c4a145 100644
g_crash_helper_enabled = true;
return true;
diff --git components/crash/content/app/breakpad_linux.cc components/crash/content/app/breakpad_linux.cc
index 0d3de65..a1b8b09 100644
index 2199920..e6e8f58 100644
--- components/crash/content/app/breakpad_linux.cc
+++ components/crash/content/app/breakpad_linux.cc
@@ -29,6 +29,7 @@
@@ -255,7 +255,7 @@ index 0d3de65..a1b8b09 100644
if (info.pid > 0) {
char pid_value_buf[kUint64StringSize];
uint64_t pid_value_len = my_uint64_len(info.pid);
@@ -2004,6 +2015,17 @@ void InitCrashReporter(const std::string& process_type) {
@@ -2011,6 +2022,17 @@ void InitCrashReporter(const std::string& process_type) {
PostEnableBreakpadInitialization();
}
@@ -274,7 +274,7 @@ index 0d3de65..a1b8b09 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 0160f62..b732498 100644
index 4a2a429..70f3adb 100644
--- components/crash/content/app/breakpad_linux.h
+++ components/crash/content/app/breakpad_linux.h
@@ -16,6 +16,9 @@ namespace breakpad {
@@ -416,10 +416,10 @@ index 9f69c19..2abaee00 100644
} // namespace crash_reporter
diff --git components/crash/content/app/crashpad.cc components/crash/content/app/crashpad.cc
index ba04da1..aa3f21a 100644
index ede08d7..d7caf4d 100644
--- components/crash/content/app/crashpad.cc
+++ components/crash/content/app/crashpad.cc
@@ -143,7 +143,8 @@ void InitializeCrashpadImpl(bool initial_client,
@@ -139,7 +139,8 @@ void InitializeCrashpadImpl(bool initial_client,
// fallback. Forwarding is turned off for debug-mode builds even for the
// browser process, because the system's crash reporter can take a very long
// time to chew on symbols.
@@ -531,7 +531,7 @@ index 485c2b4..3b5f3ea 100644
handler_path, database_path, metrics_path, url, process_annotations,
arguments, true, false);
diff --git components/crash/content/app/crashpad_win.cc components/crash/content/app/crashpad_win.cc
index 6fdfd83..1d5a2a9 100644
index 3946d2a..175fb2e 100644
--- components/crash/content/app/crashpad_win.cc
+++ components/crash/content/app/crashpad_win.cc
@@ -33,8 +33,8 @@ void GetPlatformCrashpadAnnotations(

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/font_family_cache.h chrome/browser/font_family_cache.h
index 743448d..0a9f350 100644
index 2961f37..2ef6a30 100644
--- chrome/browser/font_family_cache.h
+++ chrome/browser/font_family_cache.h
@@ -20,6 +20,8 @@ class Profile;
@@ -21,6 +21,8 @@ class Profile;
FORWARD_DECLARE_TEST(FontFamilyCacheTest, Caching);

View File

@@ -1,8 +1,8 @@
diff --git .gn .gn
index c91f911..bd906bc 100644
index 441b8ac..c3fe3b1 100644
--- .gn
+++ .gn
@@ -261,6 +261,8 @@ exec_script_whitelist =
@@ -271,6 +271,8 @@ exec_script_whitelist =
# in the Chromium repo outside of //build.
"//build_overrides/build.gni",
@@ -12,10 +12,10 @@ index c91f911..bd906bc 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 9429718..1f8c486 100644
index d274819..191ea00 100644
--- BUILD.gn
+++ BUILD.gn
@@ -154,6 +154,7 @@ group("gn_all") {
@@ -170,6 +170,7 @@ group("gn_all") {
if (!is_ios && !is_fuchsia) {
deps += [
"//cc:cc_unittests",
@@ -56,10 +56,10 @@ index 982fbe8..e757be46 100644
+ "studio path")
}
diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py
index e8b0849..0bfc676 100644
index 8150d3a..39441ef 100644
--- build/toolchain/win/setup_toolchain.py
+++ build/toolchain/win/setup_toolchain.py
@@ -132,18 +132,20 @@ def _LoadToolchainEnv(cpu, sdk_dir):
@@ -132,17 +132,21 @@ def _LoadToolchainEnv(cpu, sdk_dir):
# variable.
if 'VSINSTALLDIR' in os.environ:
del os.environ['VSINSTALLDIR']
@@ -71,10 +71,9 @@ index e8b0849..0bfc676 100644
- raise Exception('%s is missing - make sure VC++ tools are installed.' %
- script_path)
- script_path = other_path
- # Chromium requires the 10.0.14393.0 SDK. Previous versions don't have all
- # of the required declarations, and 10.0.15063.0 is buggy.
- args = [script_path, 'amd64_x86' if cpu == 'x86' else 'amd64',
- '10.0.14393.0']
- # Chromium requires the 10.0.14393.0 SDK or higher - previous versions don't
- # have all of the required declarations.
- args = [script_path, 'amd64_x86' if cpu == 'x86' else 'amd64']
- variables = _LoadEnvFromBat(args)
+ if os.path.exists(script_path):
+ # Chromium requires the 10.0.14393.0 SDK. Previous versions don't have all
@@ -87,11 +86,12 @@ index e8b0849..0bfc676 100644
+ for k in sorted(os.environ.keys()):
+ variables.append('%s=%s' % (str(k), str(os.environ[k])))
+ variables = '\n'.join(variables)
+
return _ExtractImportantEnvironment(variables)
diff --git build/vs_toolchain.py build/vs_toolchain.py
index bb8f96c..6902237 100755
index 3b2c727..60e4984 100755
--- build/vs_toolchain.py
+++ build/vs_toolchain.py
@@ -79,11 +79,18 @@ def SetEnvironmentAndGetRuntimeDllDirs():
@@ -114,18 +114,18 @@ index bb8f96c..6902237 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 1f9a1fc..aa69e8c 100644
index a7778f9..5e3eb75a 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -245,7 +245,7 @@ template("chrome_paks") {
])
input_locales = locales
- output_dir = "${invoker.output_dir}/locales"
+ output_dir = "${invoker.output_dir}/chrome/locales"
if (is_mac) {
output_locales = locales_as_mac_outputs
@@ -252,7 +252,7 @@ template("chrome_paks") {
}
input_locales = locales
- output_dir = "${invoker.output_dir}/locales"
+ output_dir = "${invoker.output_dir}/chrome/locales"
if (is_mac) {
output_locales = locales_as_mac_outputs
diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn
index 2afab1a..c8791ea 100644
--- chrome/installer/mini_installer/BUILD.gn

View File

@@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids
index 25abc65..04e8eab 100644
index 9a0f5ed..9de2636 100644
--- tools/gritsettings/resource_ids
+++ tools/gritsettings/resource_ids
@@ -371,4 +371,11 @@
@@ -380,4 +380,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/input_method_win.cc ui/base/ime/input_method_win.cc
index e2bb528..3e851e5 100644
index 3e33b5a..6b425cc 100644
--- ui/base/ime/input_method_win.cc
+++ ui/base/ime/input_method_win.cc
@@ -682,8 +682,9 @@ bool InputMethodWin::IsWindowFocused(const TextInputClient* client) const {
@@ -688,8 +688,9 @@ bool InputMethodWin::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.
@@ -12,4 +12,4 @@ index e2bb528..3e851e5 100644
+ GetActiveWindow() == ::GetAncestor(toplevel_window_handle_, GA_ROOT);
}
void InputMethodWin::DispatchFabricatedKeyEvent(ui::KeyEvent* event) {
ui::EventDispatchDetails InputMethodWin::DispatchFabricatedKeyEvent(

View File

@@ -0,0 +1,33 @@
diff --git chrome/browser/ui/libgtkui/gtk_ui.cc chrome/browser/ui/libgtkui/gtk_ui.cc
index a38c6b8..bb4fa59 100644
--- chrome/browser/ui/libgtkui/gtk_ui.cc
+++ chrome/browser/ui/libgtkui/gtk_ui.cc
@@ -1053,7 +1053,11 @@ float GtkUi::GetRawDeviceScaleFactor() {
return display::Display::GetForcedDeviceScaleFactor();
GdkScreen* screen = gdk_screen_get_default();
+#if GTK_MAJOR_VERSION == 3
gint scale = gtk_widget_get_scale_factor(fake_window_);
+#else
+ gint scale = 1;
+#endif
gdouble resolution = gdk_screen_get_resolution(screen);
const float scale_factor =
resolution <= 0 ? scale : resolution * scale / kDefaultDPI;
diff --git ui/accessibility/platform/ax_platform_node_auralinux.cc ui/accessibility/platform/ax_platform_node_auralinux.cc
index c73d7a9..5fcc441 100644
--- ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -474,8 +474,12 @@ void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
atk_state_set_add_state(atk_state_set, ATK_STATE_EXPANDED);
if (data.HasState(ui::AX_STATE_FOCUSABLE))
atk_state_set_add_state(atk_state_set, ATK_STATE_FOCUSABLE);
+#if defined(ATK_CHECK_VERSION)
+#if ATK_CHECK_VERSION(2, 11, 2)
if (data.HasState(ui::AX_STATE_HASPOPUP))
atk_state_set_add_state(atk_state_set, ATK_STATE_HAS_POPUP);
+#endif
+#endif
if (data.HasState(ui::AX_STATE_SELECTED))
atk_state_set_add_state(atk_state_set, ATK_STATE_SELECTED);
if (data.HasState(ui::AX_STATE_SELECTABLE))

View File

@@ -0,0 +1,118 @@
diff --git chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.h chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.h
index 18755d494cf3..3605076be5d1 100644
--- chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.h
+++ chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.h
@@ -8,6 +8,7 @@
#import <Cocoa/Cocoa.h>
#include <stddef.h>
+#include "base/mac/availability.h"
#import "chrome/browser/ui/cocoa/autofill/autofill_popup_base_view_cocoa.h"
#import "ui/base/cocoa/touch_bar_forward_declarations.h"
@@ -38,7 +39,7 @@ class AutofillPopupViewCocoaDelegate;
- (void)invalidateRow:(NSInteger)row;
// Creates and returns a touch bar if the popup is for credit cards.
-- (NSTouchBar*)makeTouchBar;
+- (NSTouchBar*)makeTouchBar API_AVAILABLE(macos(10.12.2));
@end
diff --git chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm
index 46733a165a31..2d71d4446a36 100644
--- chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm
+++ chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa.mm
@@ -178,7 +178,8 @@ - (void)drawRect:(NSRect)dirtyRect {
#pragma mark NSTouchBarDelegate implementation:
- (NSTouchBarItem*)touchBar:(NSTouchBar*)touchBar
- makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier {
+ makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier
+ API_AVAILABLE(macos(10.12.2)) {
if (![identifier hasSuffix:kCreditCardItemsTouchId])
return nil;
diff --git chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa_unittest.mm chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa_unittest.mm
index aebb22367472..2e6d6be61b5f 100644
--- chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa_unittest.mm
+++ chrome/browser/ui/cocoa/autofill/autofill_popup_view_cocoa_unittest.mm
@@ -110,31 +110,27 @@ void SetLineCount(int line_count) {
// Tests to check if the touch bar shows up properly.
TEST_F(AutofillPopupViewCocoaUnitTest, CreditCardAutofillTouchBar) {
- if (!base::mac::IsAtLeastOS10_12())
- return;
-
- // Touch bar shouldn't appear if the popup is not for credit cards.
- autofill_popup_controller_.SetIsCreditCardField(false);
- EXPECT_FALSE([view_ makeTouchBar]);
-
- // Touch bar shouldn't appear if the popup is empty.
- autofill_popup_controller_.SetIsCreditCardField(true);
- SetLineCount(0);
- EXPECT_FALSE([view_ makeTouchBar]);
-
- autofill_popup_controller_.SetIsCreditCardField(true);
- SetLineCount(3);
- NSTouchBar* touch_bar = [view_ makeTouchBar];
- EXPECT_TRUE(touch_bar);
- EXPECT_TRUE([[touch_bar customizationIdentifier]
- isEqual:ui::GetTouchBarId(kCreditCardAutofillTouchBarId)]);
+ if (@available(macOS 10.12.2, *)) {
+ // Touch bar shouldn't appear if the popup is not for credit cards.
+ autofill_popup_controller_.SetIsCreditCardField(false);
+ EXPECT_FALSE([view_ makeTouchBar]);
+
+ // Touch bar shouldn't appear if the popup is empty.
+ autofill_popup_controller_.SetIsCreditCardField(true);
+ SetLineCount(0);
+ EXPECT_FALSE([view_ makeTouchBar]);
+
+ autofill_popup_controller_.SetIsCreditCardField(true);
+ SetLineCount(3);
+ NSTouchBar* touch_bar = [view_ makeTouchBar];
+ EXPECT_TRUE(touch_bar);
+ EXPECT_TRUE([[touch_bar customizationIdentifier]
+ isEqual:ui::GetTouchBarId(kCreditCardAutofillTouchBarId)]);
+ }
}
-// Tests that the touch bar logs into the histogram correctly.
+// Tests that the touch bar histogram is logged correctly.
TEST_F(AutofillPopupViewCocoaUnitTest, CreditCardAutofillTouchBarMetric) {
- if (!base::mac::IsAtLeastOS10_12())
- return;
-
{
base::HistogramTester histogram_tester;
[view_ acceptCreditCard:nil];
diff --git chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
index 5378abc9cc2a..f0e7d9e8c86c 100644
--- chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
+++ chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
@@ -235,7 +235,10 @@ - (void)loadView {
}
- (NSTouchBar*)makeTouchBar {
- return [touchBarController_ makeTouchBar];
+ if (@available(macOS 10.12.2, *))
+ return [touchBarController_ makeTouchBar];
+
+ return nil;
}
- (void)ensureContentsVisibleInSuperview:(NSView*)superview {
diff --git chrome/browser/ui/cocoa/web_textfield_touch_bar_controller.h chrome/browser/ui/cocoa/web_textfield_touch_bar_controller.h
index c3dc305aa48e..d50a2689d9de 100644
--- chrome/browser/ui/cocoa/web_textfield_touch_bar_controller.h
+++ chrome/browser/ui/cocoa/web_textfield_touch_bar_controller.h
@@ -28,7 +28,7 @@
- (void)showCreditCardAutofillForPopupView:(AutofillPopupViewCocoa*)popupView;
// Creates and returns a touch bar.
-- (NSTouchBar*)makeTouchBar;
+- (NSTouchBar*)makeTouchBar API_AVAILABLE(macos(10.12.2));
@end

View File

@@ -1,8 +1,8 @@
diff --git base/message_loop/message_loop.h base/message_loop/message_loop.h
index fa25e78..cd62826 100644
index 83c3191..c4c1290a 100644
--- base/message_loop/message_loop.h
+++ base/message_loop/message_loop.h
@@ -288,6 +288,16 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate,
@@ -291,6 +291,16 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate,
void AddTaskObserver(TaskObserver* task_observer);
void RemoveTaskObserver(TaskObserver* task_observer);
@@ -19,7 +19,7 @@ index fa25e78..cd62826 100644
// Returns true if the message loop has high resolution timers enabled.
// Provided for testing.
bool HasHighResolutionTasks();
@@ -416,6 +426,12 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate,
@@ -427,6 +437,12 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate,
// insider a (accidentally induced?) nested message pump.
bool nestable_tasks_allowed_;

View File

@@ -1,5 +1,5 @@
diff --git net/base/network_delegate.h net/base/network_delegate.h
index eaa1e30..18b486d 100644
index 79a94d6..19af0d1 100644
--- net/base/network_delegate.h
+++ net/base/network_delegate.h
@@ -16,6 +16,7 @@
@@ -10,7 +10,7 @@ index eaa1e30..18b486d 100644
#include "net/proxy/proxy_retry_info.h"
class GURL;
@@ -123,6 +124,10 @@ class NET_EXPORT NetworkDelegate : public base::NonThreadSafe {
@@ -124,6 +125,10 @@ class NET_EXPORT NetworkDelegate {
bool CanUseReportingClient(const url::Origin& origin,
const GURL& endpoint) const;
@@ -18,14 +18,14 @@ index eaa1e30..18b486d 100644
+ net::URLRequest* request,
+ std::unique_ptr<SourceStream> upstream) { return upstream; }
+
private:
// This is the interface for subclasses of NetworkDelegate to implement. These
// member functions will be called by the respective public notification
protected:
THREAD_CHECKER(thread_checker_);
diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc
index 050ba28..05684c8 100644
index 7a776d3..84c0189 100644
--- net/url_request/url_request_job.cc
+++ net/url_request/url_request_job.cc
@@ -499,6 +499,12 @@ void URLRequestJob::NotifyHeadersComplete() {
@@ -532,6 +532,12 @@ void URLRequestJob::NotifyHeadersComplete() {
DCHECK(!source_stream_);
source_stream_ = SetUpSourceStream();

View File

@@ -1,8 +1,8 @@
diff --git net/cert/ct_policy_enforcer.cc net/cert/ct_policy_enforcer.cc
index 42f631e..b02edb0 100644
index 0dd6a0d..8bc6502d 100644
--- net/cert/ct_policy_enforcer.cc
+++ net/cert/ct_policy_enforcer.cc
@@ -36,15 +36,6 @@ namespace net {
@@ -35,15 +35,6 @@ namespace net {
namespace {
@@ -18,8 +18,8 @@ index 42f631e..b02edb0 100644
// Returns a rounded-down months difference of |start| and |end|,
// together with an indication of whether the last month was
// a full month, because the range starts specified in the policy
@@ -459,4 +450,13 @@ ct::EVPolicyCompliance CTPolicyEnforcer::DoesConformToCTEVPolicy(
return details.status;
@@ -296,4 +287,13 @@ ct::CertPolicyCompliance CTPolicyEnforcer::DoesConformToCertPolicy(
return compliance;
}
+bool CTPolicyEnforcer::IsBuildTimely() const {
@@ -33,11 +33,11 @@ index 42f631e..b02edb0 100644
+
} // namespace net
diff --git net/cert/ct_policy_enforcer.h net/cert/ct_policy_enforcer.h
index 7111970..f751d6c 100644
index b594cba..285eae8 100644
--- net/cert/ct_policy_enforcer.h
+++ net/cert/ct_policy_enforcer.h
@@ -101,6 +101,17 @@ class NET_EXPORT CTPolicyEnforcer {
const ct::EVCertsWhitelist* ev_whitelist,
@@ -42,6 +42,17 @@ class NET_EXPORT CTPolicyEnforcer {
X509Certificate* cert,
const SCTList& verified_scts,
const NetLogWithSource& net_log);
+
@@ -55,10 +55,10 @@ index 7111970..f751d6c 100644
} // namespace net
diff --git net/http/transport_security_state.cc net/http/transport_security_state.cc
index e838cbe..d2f6f0f 100644
index 4ffe9e8..013cea5 100644
--- net/http/transport_security_state.cc
+++ net/http/transport_security_state.cc
@@ -1537,8 +1537,10 @@ void TransportSecurityState::ClearReportCachesForTesting() {
@@ -1550,8 +1550,10 @@ void TransportSecurityState::ClearReportCachesForTesting() {
sent_expect_ct_reports_cache_.Clear();
}
@@ -72,10 +72,10 @@ index e838cbe..d2f6f0f 100644
// We consider built-in information to be timely for 10 weeks.
return (base::Time::Now() - build_time).InDays() < 70 /* 10 weeks */;
diff --git net/http/transport_security_state.h net/http/transport_security_state.h
index 19ba839..a0b9810 100644
index 5e75551..1d1ca02 100644
--- net/http/transport_security_state.h
+++ net/http/transport_security_state.h
@@ -576,6 +576,10 @@ class NET_EXPORT TransportSecurityState
@@ -574,6 +574,10 @@ class NET_EXPORT TransportSecurityState {
// Expect-CT reports.
void ClearReportCachesForTesting();
@@ -86,7 +86,7 @@ index 19ba839..a0b9810 100644
private:
friend class TransportSecurityStateTest;
friend class TransportSecurityStateStaticFuzzer;
@@ -596,7 +600,7 @@ class NET_EXPORT TransportSecurityState
@@ -594,7 +598,7 @@ class NET_EXPORT TransportSecurityState {
// IsBuildTimely returns true if the current build is new enough ensure that
// built in security information (i.e. HSTS preloading and pinning
// information) is timely.
@@ -95,7 +95,7 @@ index 19ba839..a0b9810 100644
// Helper method for actually checking pins.
PKPStatus CheckPublicKeyPinsImpl(
@@ -704,6 +708,8 @@ class NET_EXPORT TransportSecurityState
@@ -703,6 +707,8 @@ class NET_EXPORT TransportSecurityState {
// True if public key pinning bypass is enabled for local trust anchors.
bool enable_pkp_bypass_for_local_trust_anchors_;

View File

@@ -1,8 +1,8 @@
diff --git net/url_request/url_request.h net/url_request/url_request.h
index 95a2667..68d7bfb 100644
index e529c37..9039974 100644
--- net/url_request/url_request.h
+++ net/url_request/url_request.h
@@ -657,10 +657,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
@@ -667,10 +667,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData {
return traffic_annotation_;
}

View File

@@ -1,136 +0,0 @@
diff --git net/base/network_change_notifier_win.cc net/base/network_change_notifier_win.cc
index 9b2b35e..1dc2038 100644
--- net/base/network_change_notifier_win.cc
+++ net/base/network_change_notifier_win.cc
@@ -14,6 +14,7 @@
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram_macros.h"
#include "base/single_thread_task_runner.h"
+#include "base/task_runner_util.h"
#include "base/threading/thread.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
@@ -136,8 +137,6 @@ NetworkChangeNotifierWin::NetworkChangeCalculatorParamsWin() {
//
NetworkChangeNotifier::ConnectionType
NetworkChangeNotifierWin::RecomputeCurrentConnectionType() const {
- DCHECK(CalledOnValidThread());
-
EnsureWinsockInit();
// The following code was adapted from:
@@ -205,6 +204,18 @@ NetworkChangeNotifierWin::RecomputeCurrentConnectionType() const {
: NetworkChangeNotifier::CONNECTION_NONE;
}
+void NetworkChangeNotifierWin::RecomputeCurrentConnectionTypeOnDnsThread(
+ base::Callback<void(ConnectionType)> reply_callback) const {
+ // Unretained is safe in this call because this object owns the thread and the
+ // thread is stopped in this object's destructor.
+ base::PostTaskAndReplyWithResult(
+ dns_config_service_thread_->message_loop()->task_runner().get(),
+ FROM_HERE,
+ base::Bind(&NetworkChangeNotifierWin::RecomputeCurrentConnectionType,
+ base::Unretained(this)),
+ reply_callback);
+}
+
NetworkChangeNotifier::ConnectionType
NetworkChangeNotifierWin::GetCurrentConnectionType() const {
base::AutoLock auto_lock(last_computed_connection_type_lock_);
@@ -225,12 +236,13 @@ void NetworkChangeNotifierWin::OnObjectSignaled(HANDLE object) {
// Start watching for the next address change.
WatchForAddressChange();
- NotifyObservers();
+ RecomputeCurrentConnectionTypeOnDnsThread(base::Bind(
+ &NetworkChangeNotifierWin::NotifyObservers, weak_factory_.GetWeakPtr()));
}
-void NetworkChangeNotifierWin::NotifyObservers() {
+void NetworkChangeNotifierWin::NotifyObservers(ConnectionType connection_type) {
DCHECK(CalledOnValidThread());
- SetCurrentConnectionType(RecomputeCurrentConnectionType());
+ SetCurrentConnectionType(connection_type);
NotifyObserversOfIPAddressChange();
// Calling GetConnectionType() at this very moment is likely to give
@@ -274,8 +286,11 @@ void NetworkChangeNotifierWin::WatchForAddressChange() {
// Treat the transition from NotifyAddrChange failing to succeeding as a
// network change event, since network changes were not being observed in
// that interval.
- if (sequential_failures_ > 0)
- NotifyObservers();
+ if (sequential_failures_ > 0) {
+ RecomputeCurrentConnectionTypeOnDnsThread(
+ base::Bind(&NetworkChangeNotifierWin::NotifyObservers,
+ weak_factory_.GetWeakPtr()));
+ }
if (sequential_failures_ < 2000) {
UMA_HISTOGRAM_COUNTS_10000("Net.NotifyAddrChangeFailures",
@@ -305,7 +320,14 @@ bool NetworkChangeNotifierWin::WatchForAddressChangeInternal() {
}
void NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChange() {
- SetCurrentConnectionType(RecomputeCurrentConnectionType());
+ RecomputeCurrentConnectionTypeOnDnsThread(base::Bind(
+ &NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChangeImpl,
+ weak_factory_.GetWeakPtr()));
+}
+
+void NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChangeImpl(
+ ConnectionType connection_type) {
+ SetCurrentConnectionType(connection_type);
bool current_offline = IsOffline();
offline_polls_++;
// If we continue to appear offline, delay sending out the notification in
@@ -323,10 +345,10 @@ void NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChange() {
NotifyObserversOfConnectionTypeChange();
double max_bandwidth_mbps = 0.0;
- ConnectionType connection_type = CONNECTION_NONE;
+ ConnectionType max_connection_type = CONNECTION_NONE;
GetCurrentMaxBandwidthAndConnectionType(&max_bandwidth_mbps,
- &connection_type);
- NotifyObserversOfMaxBandwidthChange(max_bandwidth_mbps, connection_type);
+ &max_connection_type);
+ NotifyObserversOfMaxBandwidthChange(max_bandwidth_mbps, max_connection_type);
}
} // namespace net
diff --git net/base/network_change_notifier_win.h net/base/network_change_notifier_win.h
index 94bab7f..6871499 100644
--- net/base/network_change_notifier_win.h
+++ net/base/network_change_notifier_win.h
@@ -9,6 +9,7 @@
#include <memory>
+#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
@@ -62,15 +63,21 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierWin
// It is not thread safe, see crbug.com/324913.
virtual ConnectionType RecomputeCurrentConnectionType() const;
+ // Calls RecomputeCurrentConnectionTypeImpl on the DNS thread and runs
+ // |reply_callback| with the type on the calling thread.
+ virtual void RecomputeCurrentConnectionTypeOnDnsThread(
+ base::Callback<void(ConnectionType)> reply_callback) const;
+
void SetCurrentConnectionType(ConnectionType connection_type);
// Notifies IP address change observers of a change immediately, and notifies
// network state change observers on a delay. Must only be called on the
// thread |this| was created on.
- void NotifyObservers();
+ void NotifyObservers(ConnectionType connection_type);
// Forwards connection type notifications to parent class.
void NotifyParentOfConnectionTypeChange();
+ void NotifyParentOfConnectionTypeChangeImpl(ConnectionType connection_type);
// Tries to start listening for a single subsequent address change. Returns
// false on failure. The caller is responsible for updating |is_watching_|.

View File

@@ -1,8 +1,8 @@
diff --git BUILD.gn BUILD.gn
index 5802752..94c247e 100644
index 80a258e..7f343f1 100644
--- BUILD.gn
+++ BUILD.gn
@@ -222,6 +222,10 @@ static_library("pdfium") {
@@ -227,6 +227,10 @@ static_library("pdfium") {
if (pdf_is_complete_lib) {
complete_static_lib = true
}
@@ -14,18 +14,18 @@ index 5802752..94c247e 100644
static_library("test_support") {
diff --git fpdfsdk/fpdfview.cpp fpdfsdk/fpdfview.cpp
index f20e8ab..bc34b85 100644
index 7dbaf7f..3b41421 100644
--- fpdfsdk/fpdfview.cpp
+++ fpdfsdk/fpdfview.cpp
@@ -35,6 +35,7 @@
@@ -37,6 +37,7 @@
#include "fpdfsdk/fsdk_define.h"
#include "fpdfsdk/fsdk_pauseadapter.h"
#include "fpdfsdk/javascript/ijs_runtime.h"
+#include "fxjs/fxjs_v8.h"
#include "public/fpdf_edit.h"
#include "public/fpdf_ext.h"
#include "public/fpdf_progressive.h"
#include "third_party/base/allocator/partition_allocator/partition_alloc.h"
@@ -382,6 +383,7 @@ DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
@@ -419,6 +420,7 @@ DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
CPDF_ModuleMgr::Destroy();
CFX_GEModule::Destroy();

View File

@@ -1,5 +1,5 @@
diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h
index 5ff2bb0..a1a62f2 100644
index 95656cd..35f26f1 100644
--- content/public/common/common_param_traits_macros.h
+++ content/public/common/common_param_traits_macros.h
@@ -205,6 +205,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
@@ -11,7 +11,7 @@ index 5ff2bb0..a1a62f2 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 1e00ba5..d829b4f 100644
index 767e91c..34f59fe 100644
--- content/public/common/web_preferences.cc
+++ content/public/common/web_preferences.cc
@@ -171,6 +171,7 @@ WebPreferences::WebPreferences()
@@ -20,25 +20,25 @@ index 1e00ba5..d829b4f 100644
navigate_on_drag_drop(true),
+ base_background_color(0xFFFFFFFF), // Color::white
v8_cache_options(V8_CACHE_OPTIONS_DEFAULT),
inert_visual_viewport(false),
record_whole_document(false),
cookie_enabled(true),
diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h
index 80816ae..46de601 100644
index 5012952..ed17a57 100644
--- content/public/common/web_preferences.h
+++ content/public/common/web_preferences.h
@@ -190,6 +190,7 @@ struct CONTENT_EXPORT WebPreferences {
@@ -191,6 +191,7 @@ struct CONTENT_EXPORT WebPreferences {
bool spatial_navigation_enabled;
bool use_solid_color_scrollbars;
bool navigate_on_drag_drop;
+ uint32_t base_background_color;
V8CacheOptions v8_cache_options;
bool inert_visual_viewport;
bool record_whole_document;
diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc
index de3e891..d703c8e 100644
index f26cc78..fab85a3 100644
--- content/renderer/render_view_impl.cc
+++ content/renderer/render_view_impl.cc
@@ -1396,6 +1396,8 @@ void RenderViewImpl::ApplyWebPreferencesInternal(
@@ -1317,6 +1317,8 @@ void RenderViewImpl::ApplyWebPreferencesInternal(
blink::WebView* web_view,
CompositorDependencies* compositor_deps) {
ApplyWebPreferences(prefs, web_view);

View File

@@ -78,7 +78,7 @@ index de03634..76ee3a7 100644
}
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
diff --git components/printing/common/print_messages.h components/printing/common/print_messages.h
index 32b0451..9ccb733 100644
index fd39591..fbeea6d 100644
--- components/printing/common/print_messages.h
+++ components/printing/common/print_messages.h
@@ -74,7 +74,6 @@ struct PrintMsg_PrintPages_Params {
@@ -168,15 +168,15 @@ index 32b0451..9ccb733 100644
// Messages sent from the renderer to the browser.
@@ -403,7 +393,6 @@ IPC_MESSAGE_CONTROL2(PrintHostMsg_TempFileForPrintingWritten,
int /* fd in browser */)
@@ -404,7 +394,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten,
int /* page count */)
#endif // defined(OS_ANDROID)
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
// Asks the browser to do print preview.
IPC_MESSAGE_ROUTED1(PrintHostMsg_RequestPrintPreview,
PrintHostMsg_RequestPrintPreview_Params /* params */)
@@ -437,7 +426,6 @@ IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_CheckForCancel,
@@ -438,7 +427,6 @@ IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_CheckForCancel,
// The memory handle in this message is already valid in the browser process.
IPC_MESSAGE_ROUTED1(PrintHostMsg_MetafileReadyForPrinting,
PrintHostMsg_DidPreviewDocument_Params /* params */)
@@ -184,7 +184,7 @@ index 32b0451..9ccb733 100644
// This is sent when there are invalid printer settings.
IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError)
@@ -446,7 +434,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError)
@@ -447,7 +435,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError)
IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed,
int /* document cookie */)
@@ -192,13 +192,13 @@ index 32b0451..9ccb733 100644
// Tell the browser print preview failed.
IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewFailed,
int /* document cookie */)
@@ -473,4 +460,3 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview,
@@ -474,4 +461,3 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview,
// Notify the browser to set print presets based on source PDF document.
IPC_MESSAGE_ROUTED1(PrintHostMsg_SetOptionsFromDocument,
PrintHostMsg_SetOptionsFromDocument_Params /* params */)
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
diff --git components/printing/renderer/print_web_view_helper.cc components/printing/renderer/print_web_view_helper.cc
index 3c3c4b1..b07223d 100644
index 3c9dfc0..e6a3236 100644
--- components/printing/renderer/print_web_view_helper.cc
+++ components/printing/renderer/print_web_view_helper.cc
@@ -320,7 +320,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame,
@@ -233,7 +233,7 @@ index 3c3c4b1..b07223d 100644
// Helper function to scale and round an integer value with a double valued
// scaling.
@@ -916,6 +912,7 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderFrame* render_frame,
@@ -938,6 +934,7 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderFrame* render_frame,
print_for_preview_(false),
delegate_(std::move(delegate)),
print_node_in_progress_(false),
@@ -241,7 +241,7 @@ index 3c3c4b1..b07223d 100644
is_loading_(false),
is_scripted_preview_delayed_(false),
ipc_nesting_level_(0),
@@ -978,10 +975,8 @@ void PrintWebViewHelper::ScriptedPrint(bool user_initiated) {
@@ -1000,10 +997,8 @@ void PrintWebViewHelper::ScriptedPrint(bool user_initiated) {
return;
if (g_is_preview_enabled) {
@@ -252,7 +252,7 @@ index 3c3c4b1..b07223d 100644
} else {
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
Print(web_frame, blink::WebNode(), true /* is_scripted? */);
@@ -1007,14 +1002,10 @@ bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) {
@@ -1029,14 +1024,10 @@ bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages)
IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog)
#endif // BUILDFLAG(ENABLE_BASIC_PRINTING)
@@ -267,7 +267,7 @@ index 3c3c4b1..b07223d 100644
IPC_MESSAGE_HANDLER(PrintMsg_SetPrintingEnabled, OnSetPrintingEnabled)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -1062,7 +1053,6 @@ void PrintWebViewHelper::OnPrintForSystemDialog() {
@@ -1084,7 +1075,6 @@ void PrintWebViewHelper::OnPrintForSystemDialog() {
}
#endif // BUILDFLAG(ENABLE_BASIC_PRINTING)
@@ -275,7 +275,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::OnPrintForPrintPreview(
const base::DictionaryValue& job_settings) {
CHECK_LE(ipc_nesting_level_, 1);
@@ -1122,7 +1112,6 @@ void PrintWebViewHelper::OnPrintForPrintPreview(
@@ -1144,7 +1134,6 @@ void PrintWebViewHelper::OnPrintForPrintPreview(
DidFinishPrinting(FAIL_PRINT);
}
}
@@ -283,7 +283,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::GetPageSizeAndContentAreaFromPageLayout(
const PageSizeMargins& page_layout_in_points,
@@ -1147,7 +1136,6 @@ void PrintWebViewHelper::UpdateFrameMarginsCssInfo(
@@ -1169,7 +1158,6 @@ void PrintWebViewHelper::UpdateFrameMarginsCssInfo(
ignore_css_margins_ = (margins_type != DEFAULT_MARGINS);
}
@@ -291,7 +291,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::OnPrintPreview(const base::DictionaryValue& settings) {
if (ipc_nesting_level_ > 1)
return;
@@ -1342,7 +1330,7 @@ bool PrintWebViewHelper::CreatePreviewDocument() {
@@ -1361,7 +1349,7 @@ bool PrintWebViewHelper::CreatePreviewDocument() {
return true;
}
@@ -300,7 +300,7 @@ index 3c3c4b1..b07223d 100644
bool PrintWebViewHelper::RenderPreviewPage(
int page_number,
const PrintMsg_Print_Params& print_params) {
@@ -1371,7 +1359,7 @@ bool PrintWebViewHelper::RenderPreviewPage(
@@ -1390,7 +1378,7 @@ bool PrintWebViewHelper::RenderPreviewPage(
}
return PreviewPageRendered(page_number, draft_metafile.get());
}
@@ -309,7 +309,7 @@ index 3c3c4b1..b07223d 100644
bool PrintWebViewHelper::FinalizePrintReadyDocument() {
DCHECK(!is_print_ready_metafile_sent_);
@@ -1401,7 +1389,6 @@ bool PrintWebViewHelper::FinalizePrintReadyDocument() {
@@ -1420,7 +1408,6 @@ bool PrintWebViewHelper::FinalizePrintReadyDocument() {
Send(new PrintHostMsg_MetafileReadyForPrinting(routing_id(), preview_params));
return true;
}
@@ -317,7 +317,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::OnPrintingDone(bool success) {
if (ipc_nesting_level_ > 1)
@@ -1416,7 +1403,6 @@ void PrintWebViewHelper::OnSetPrintingEnabled(bool enabled) {
@@ -1435,7 +1422,6 @@ void PrintWebViewHelper::OnSetPrintingEnabled(bool enabled) {
is_printing_enabled_ = enabled;
}
@@ -325,7 +325,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::OnInitiatePrintPreview(bool has_selection) {
if (ipc_nesting_level_ > 1)
return;
@@ -1427,7 +1413,9 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool has_selection) {
@@ -1446,7 +1432,9 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool has_selection) {
// that instead.
auto plugin = delegate_->GetPdfElement(frame);
if (!plugin.IsNull()) {
@@ -335,7 +335,7 @@ index 3c3c4b1..b07223d 100644
return;
}
print_preview_context_.InitWithFrame(frame);
@@ -1435,7 +1423,6 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool has_selection) {
@@ -1454,7 +1442,6 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool has_selection) {
? PRINT_PREVIEW_USER_INITIATED_SELECTION
: PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME);
}
@@ -343,7 +343,7 @@ index 3c3c4b1..b07223d 100644
bool PrintWebViewHelper::IsPrintingEnabled() const {
return is_printing_enabled_;
@@ -1457,11 +1444,9 @@ void PrintWebViewHelper::PrintNode(const blink::WebNode& node) {
@@ -1476,11 +1463,9 @@ void PrintWebViewHelper::PrintNode(const blink::WebNode& node) {
print_node_in_progress_ = true;
@@ -356,23 +356,23 @@ index 3c3c4b1..b07223d 100644
} else {
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
// Make a copy of the node, in case RenderView::OnContextMenuClosed() resets
@@ -1550,7 +1535,6 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) {
@@ -1570,7 +1555,6 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) {
}
break;
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
case FAIL_PREVIEW:
int cookie =
print_pages_params_ ? print_pages_params_->params.document_cookie : 0;
@@ -1562,7 +1546,6 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) {
}
print_preview_context_.Failed(notify_browser_of_print_failure_);
if (!is_print_ready_metafile_sent_) {
if (notify_browser_of_print_failure_) {
@@ -1587,7 +1571,6 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) {
cookie));
print_preview_context_.Failed(false);
break;
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
}
prep_frame_view_.reset();
print_pages_params_.reset();
@@ -1695,7 +1678,6 @@ bool PrintWebViewHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame,
@@ -1720,7 +1703,6 @@ bool PrintWebViewHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame,
return true;
}
@@ -380,7 +380,7 @@ index 3c3c4b1..b07223d 100644
bool PrintWebViewHelper::SetOptionsFromPdfDocument(
PrintHostMsg_SetOptionsFromDocument_Params* options) {
blink::WebLocalFrame* source_frame = print_preview_context_.source_frame();
@@ -1802,7 +1784,6 @@ bool PrintWebViewHelper::UpdatePrintSettings(
@@ -1827,7 +1809,6 @@ bool PrintWebViewHelper::UpdatePrintSettings(
print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS);
return false;
}
@@ -388,7 +388,7 @@ index 3c3c4b1..b07223d 100644
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
void PrintWebViewHelper::GetPrintSettingsFromUser(
@@ -1960,7 +1941,6 @@ bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
@@ -1985,7 +1966,6 @@ bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
return true;
}
@@ -396,7 +396,7 @@ index 3c3c4b1..b07223d 100644
void PrintWebViewHelper::ShowScriptedPrintPreview() {
if (is_scripted_preview_delayed_) {
is_scripted_preview_delayed_ = false;
@@ -2091,7 +2071,6 @@ bool PrintWebViewHelper::PreviewPageRendered(int page_number,
@@ -2116,7 +2096,6 @@ bool PrintWebViewHelper::PreviewPageRendered(int page_number,
Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params));
return true;
}
@@ -405,15 +405,16 @@ index 3c3c4b1..b07223d 100644
PrintWebViewHelper::PrintPreviewContext::PrintPreviewContext()
: total_page_count_(0),
diff --git components/printing/renderer/print_web_view_helper.h components/printing/renderer/print_web_view_helper.h
index c4339d4..433fb26 100644
index fc5e964..ed384ba 100644
--- components/printing/renderer/print_web_view_helper.h
+++ components/printing/renderer/print_web_view_helper.h
@@ -153,9 +153,7 @@ class PrintWebViewHelper
@@ -152,10 +152,8 @@ class PrintWebViewHelper
OK,
FAIL_PRINT_INIT,
FAIL_PRINT,
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
FAIL_PREVIEW,
INVALID_SETTINGS,
-#endif
};

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/printing/print_job_worker.cc chrome/browser/printing/print_job_worker.cc
index d06b61a..f41f848 100644
index 5616013..6d3737d 100644
--- chrome/browser/printing/print_job_worker.cc
+++ chrome/browser/printing/print_job_worker.cc
@@ -121,6 +121,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id,
@@ -125,6 +125,7 @@ PrintJobWorker::PrintJobWorker(int render_process_id,
printing_context_delegate_ = base::MakeUnique<PrintingContextDelegate>(
render_process_id, render_frame_id);
printing_context_ = PrintingContext::Create(printing_context_delegate_.get());

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_view_host_impl.h content/browser/renderer_host/render_view_host_impl.h
index c36ebdd..48aa3571 100644
index 7e0cc57..66916d4 100644
--- content/browser/renderer_host/render_view_host_impl.h
+++ content/browser/renderer_host/render_view_host_impl.h
@@ -154,6 +154,7 @@ class CONTENT_EXPORT RenderViewHostImpl : public RenderViewHost,
@@ -155,6 +155,7 @@ class CONTENT_EXPORT RenderViewHostImpl : public RenderViewHost,
void set_is_swapped_out(bool is_swapped_out) {
is_swapped_out_ = is_swapped_out;
}

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 e327836..17f65e1 100644
index 91e326b..8f22548 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -747,8 +747,10 @@ void RenderWidgetHostViewAura::UpdateBackgroundColorFromRenderer(
@@ -740,8 +740,10 @@ void RenderWidgetHostViewAura::UpdateBackgroundColorFromRenderer(
background_color_ = color;
bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE;

View File

@@ -1,14 +0,0 @@
diff --git base/allocator/BUILD.gn base/allocator/BUILD.gn
index 6ebbc11..b667064 100644
--- base/allocator/BUILD.gn
+++ base/allocator/BUILD.gn
@@ -15,8 +15,7 @@ declare_args() {
# The Windows-only allocator shim is only enabled for Release static builds, and
# is mutually exclusive with the generalized shim.
-win_use_allocator_shim = is_win && !is_component_build && !is_debug &&
- !use_allocator_shim && !is_asan
+win_use_allocator_shim = false
# This "allocator" meta-target will forward to the default allocator according
# to the build settings.

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/spellchecker/spellcheck_factory.cc chrome/browser/spellchecker/spellcheck_factory.cc
index 9d94c21..990046f 100644
index a866993..520e2d9 100644
--- chrome/browser/spellchecker/spellcheck_factory.cc
+++ chrome/browser/spellchecker/spellcheck_factory.cc
@@ -17,6 +17,13 @@
@@ -97,7 +97,7 @@ index 2907619..f941fba 100644
SupervisedUserSettingsServiceFactory();
diff --git chrome/browser/ui/prefs/prefs_tab_helper.cc chrome/browser/ui/prefs/prefs_tab_helper.cc
index 175e4db..e5361c5 100644
index 4d4fd0e..e5bb39ad 100644
--- chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -11,8 +11,8 @@
@@ -110,7 +110,7 @@ index 175e4db..e5361c5 100644
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
@@ -438,12 +438,10 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
@@ -432,12 +432,10 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
GetInstance()->GetServiceForBrowserContext(profile, true));
}
@@ -125,7 +125,7 @@ index 175e4db..e5361c5 100644
PrefWatcherFactory() : BrowserContextKeyedServiceFactory(
"PrefWatcher",
@@ -464,6 +462,18 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
@@ -458,6 +456,18 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
}
};

View File

@@ -1,8 +1,8 @@
diff --git services/service_manager/embedder/main.cc services/service_manager/embedder/main.cc
index e661492..8a282fd 100644
index 7acf0e4..b5c0efa 100644
--- services/service_manager/embedder/main.cc
+++ services/service_manager/embedder/main.cc
@@ -325,13 +325,30 @@ int RunService(MainDelegate* delegate) {
@@ -317,13 +317,30 @@ int RunService(MainDelegate* delegate) {
return exit_code;
}
@@ -34,7 +34,7 @@ index e661492..8a282fd 100644
MainDelegate* delegate = params.delegate;
DCHECK(delegate);
@@ -399,30 +416,14 @@ int Main(const MainParams& params) {
@@ -391,30 +408,14 @@ int Main(const MainParams& params) {
MainDelegate::InitializeParams init_params;
#if defined(OS_MACOSX)
@@ -95,7 +95,7 @@ index e661492..8a282fd 100644
if (tracker) {
if (exit_code == 0) {
tracker->SetProcessPhaseIfEnabled(
@@ -481,14 +494,39 @@ int Main(const MainParams& params) {
@@ -481,13 +494,38 @@ int Main(const MainParams& params) {
}
}
@@ -117,7 +117,6 @@ index e661492..8a282fd 100644
delegate->ShutDownEmbedderProcess();
+}
- return exit_code;
+int Main(MainParams& params) {
+#if defined(OS_MACOSX)
+ // We need this pool for all the objects created before we get to the event
@@ -133,10 +132,9 @@ index e661492..8a282fd 100644
+ return exit_code;
+ exit_code = MainRun(params);
+ MainShutdown(params);
+ return exit_code;
return exit_code;
}
} // namespace service_manager
diff --git services/service_manager/embedder/main.h services/service_manager/embedder/main.h
index e86697a..771acd8 100644
--- services/service_manager/embedder/main.h

View File

@@ -1,22 +0,0 @@
diff --git cc/output/software_renderer.cc cc/output/software_renderer.cc
index 34eda97..6fc30a0 100644
--- cc/output/software_renderer.cc
+++ cc/output/software_renderer.cc
@@ -152,7 +152,16 @@ void SoftwareRenderer::SetClipRect(const gfx::Rect& rect) {
void SoftwareRenderer::ClearCanvas(SkColor color) {
if (!current_canvas_)
return;
- current_canvas_->clear(color);
+
+ if (is_scissor_enabled_) {
+ // The same paint used by SkCanvas::clear, but applied to the scissor rect.
+ SkPaint clear_paint;
+ clear_paint.setColor(color);
+ clear_paint.setBlendMode(SkBlendMode::kSrc);
+ current_canvas_->drawRect(gfx::RectToSkRect(scissor_rect_), clear_paint);
+ } else {
+ current_canvas_->clear(color);
+ }
}
void SoftwareRenderer::ClearFramebuffer() {

View File

@@ -14,10 +14,10 @@ index e9ad038..2a10c80 100644
}
diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc
index 92a2e89..e4cacfe 100644
index d814ea2..fa00560 100644
--- content/browser/blob_storage/chrome_blob_storage_context.cc
+++ content/browser/blob_storage/chrome_blob_storage_context.cc
@@ -76,6 +76,11 @@ class BlobHandleImpl : public BlobHandle {
@@ -78,6 +78,11 @@ class BlobHandleImpl : public BlobHandle {
ChromeBlobStorageContext::ChromeBlobStorageContext() {}
@@ -28,24 +28,25 @@ index 92a2e89..e4cacfe 100644
+
ChromeBlobStorageContext* ChromeBlobStorageContext::GetFor(
BrowserContext* context) {
if (!context->GetUserData(kBlobStorageContextKeyName)) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
diff --git content/browser/blob_storage/chrome_blob_storage_context.h content/browser/blob_storage/chrome_blob_storage_context.h
index ad4a2a2..7c4212c 100644
index 00b6123..aa915f3 100644
--- content/browser/blob_storage/chrome_blob_storage_context.h
+++ content/browser/blob_storage/chrome_blob_storage_context.h
@@ -45,6 +45,7 @@ class CONTENT_EXPORT ChromeBlobStorageContext
@@ -47,6 +47,8 @@ class CONTENT_EXPORT ChromeBlobStorageContext
public:
ChromeBlobStorageContext();
+ static const void* GetUserDataKey();
+
// Must be called on the UI thread.
static ChromeBlobStorageContext* GetFor(
BrowserContext* browser_context);
diff --git content/browser/bluetooth/web_bluetooth_service_impl.cc content/browser/bluetooth/web_bluetooth_service_impl.cc
index 36d4ea7..f696c5b 100644
index 4edb4da..8b8a8fc 100644
--- content/browser/bluetooth/web_bluetooth_service_impl.cc
+++ content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -1194,9 +1194,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() {
@@ -1232,9 +1232,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() {
}
BluetoothAllowedDevices& WebBluetoothServiceImpl::allowed_devices() {
@@ -58,7 +59,7 @@ index 36d4ea7..f696c5b 100644
partition->GetBluetoothAllowedDevicesMap();
return allowed_devices_map->GetOrCreateAllowedDevices(GetOrigin());
diff --git content/browser/browser_context.cc content/browser/browser_context.cc
index 0f23bbe..b21982f 100644
index 1dddb59..90c05c1 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -125,7 +125,14 @@ StoragePartition* GetStoragePartitionFromConfig(
@@ -77,7 +78,7 @@ index 0f23bbe..b21982f 100644
}
void SaveSessionStateOnIOThread(
@@ -543,6 +550,11 @@ ServiceManagerConnection* BrowserContext::GetServiceManagerConnectionFor(
@@ -539,6 +546,11 @@ ServiceManagerConnection* BrowserContext::GetServiceManagerConnectionFor(
BrowserContext::BrowserContext()
: media_device_id_salt_(CreateRandomMediaDeviceIDSalt()) {}
@@ -90,10 +91,10 @@ index 0f23bbe..b21982f 100644
CHECK(GetUserData(kMojoWasInitialized))
<< "Attempting to destroy a BrowserContext that never called "
diff --git content/browser/devtools/protocol/service_worker_handler.cc content/browser/devtools/protocol/service_worker_handler.cc
index 242d33e..4dfb463 100644
index 9ad73e7..757af27 100644
--- content/browser/devtools/protocol/service_worker_handler.cc
+++ content/browser/devtools/protocol/service_worker_handler.cc
@@ -321,10 +321,9 @@ Response ServiceWorkerHandler::DispatchSyncEvent(
@@ -320,10 +320,9 @@ Response ServiceWorkerHandler::DispatchSyncEvent(
if (!base::StringToInt64(registration_id, &id))
return CreateInvalidVersionIdErrorResponse();
@@ -107,25 +108,25 @@ index 242d33e..4dfb463 100644
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
diff --git content/browser/loader/navigation_url_loader_network_service.cc content/browser/loader/navigation_url_loader_network_service.cc
index f32156a..c2373f8 100644
index e925cdc..480663d 100644
--- content/browser/loader/navigation_url_loader_network_service.cc
+++ content/browser/loader/navigation_url_loader_network_service.cc
@@ -196,8 +196,8 @@ NavigationURLLoaderNetworkService::NavigationURLLoaderNetworkService(
: nullptr,
appcache_handle ? appcache_handle->core() : nullptr,
request_info_.get(), base::Passed(std::move(factory_ptr_info)),
- static_cast<StoragePartitionImpl*>(storage_partition)
- ->url_loader_factory_getter(),
+ scoped_refptr<URLLoaderFactoryGetter>(
+ storage_partition->url_loader_factory_getter()),
base::Bind(&GetWebContentsFromFrameTreeNodeID,
request_info_->frame_tree_node_id),
base::Passed(std::move(loader_associated_request)),
@@ -371,8 +371,8 @@ NavigationURLLoaderNetworkService::NavigationURLLoaderNetworkService(
DCHECK(!request_controller_);
request_controller_ = base::MakeUnique<URLLoaderRequestController>(
std::move(new_request), resource_context,
- static_cast<StoragePartitionImpl*>(storage_partition)
- ->url_loader_factory_getter(),
+ scoped_refptr<URLLoaderFactoryGetter>(
+ storage_partition->url_loader_factory_getter()),
weak_factory_.GetWeakPtr());
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
diff --git content/browser/payments/payment_app_provider_impl.cc content/browser/payments/payment_app_provider_impl.cc
index 73f3cba..55d488b 100644
index 6d0cdd6..57023e5 100644
--- content/browser/payments/payment_app_provider_impl.cc
+++ content/browser/payments/payment_app_provider_impl.cc
@@ -153,8 +153,8 @@ void PaymentAppProviderImpl::GetAllPaymentApps(
@@ -157,8 +157,8 @@ void PaymentAppProviderImpl::GetAllPaymentApps(
GetAllPaymentAppsCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -136,7 +137,7 @@ index 73f3cba..55d488b 100644
scoped_refptr<PaymentAppContextImpl> payment_app_context =
partition->GetPaymentAppContext();
@@ -171,10 +171,11 @@ void PaymentAppProviderImpl::InvokePaymentApp(
@@ -175,10 +175,11 @@ void PaymentAppProviderImpl::InvokePaymentApp(
const InvokePaymentAppCallback& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -152,28 +153,67 @@ index 73f3cba..55d488b 100644
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc
index ec0d400..49261d1 100644
index d742f69..5200a9c 100644
--- content/browser/renderer_host/render_process_host_impl.cc
+++ content/browser/renderer_host/render_process_host_impl.cc
@@ -482,7 +482,7 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data,
// own non-shared process.
if (partition != default_partition || is_for_guests_only) {
RenderProcessHostImpl* host = new RenderProcessHostImpl(
- browser_context_, static_cast<StoragePartitionImpl*>(partition),
+ browser_context_, partition,
is_for_guests_only);
host->SetIsNeverSuitableForReuse();
return host;
@@ -494,7 +494,7 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data,
return host_;
@@ -489,9 +489,8 @@ class SpareRenderProcessHostManager : public RenderProcessHostObserver {
SpareRenderProcessHostManager() {}
host_ = new RenderProcessHostImpl(
- browser_context_, static_cast<StoragePartitionImpl*>(partition),
+ browser_context_, partition,
false /* for guests only */);
host_->SetIsNeverSuitableForReuse();
host_->AddObserver(this);
@@ -907,7 +907,7 @@ void RenderProcessHost::SetMaxRendererProcessCount(size_t count) {
void WarmupSpareRenderProcessHost(BrowserContext* browser_context) {
- StoragePartitionImpl* current_partition =
- static_cast<StoragePartitionImpl*>(
- BrowserContext::GetStoragePartition(browser_context, nullptr));
+ StoragePartition* current_partition =
+ BrowserContext::GetStoragePartition(browser_context, nullptr);
if (spare_render_process_host_ &&
matching_browser_context_ == browser_context &&
@@ -630,11 +629,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data,
// Gets the correct render process to use for this SiteInstance.
RenderProcessHost* GetProcessHost(SiteInstance* site_instance,
bool is_for_guests_only) {
- StoragePartitionImpl* default_partition =
- static_cast<StoragePartitionImpl*>(
- BrowserContext::GetDefaultStoragePartition(browser_context_));
- StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
- BrowserContext::GetStoragePartition(browser_context_, site_instance));
+ StoragePartition* default_partition =
+ BrowserContext::GetDefaultStoragePartition(browser_context_);
+ StoragePartition* partition =
+ BrowserContext::GetStoragePartition(browser_context_, site_instance);
// Is this the default storage partition? If it isn't, then just give it its
// own non-shared process.
@@ -1187,7 +1185,7 @@ void RenderProcessHost::SetMaxRendererProcessCount(size_t count) {
// static
RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
BrowserContext* browser_context,
- StoragePartitionImpl* storage_partition_impl,
+ StoragePartition* storage_partition_impl,
SiteInstance* site_instance,
bool is_for_guests_only) {
if (g_render_process_host_factory_) {
@@ -1196,8 +1194,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
}
if (!storage_partition_impl) {
- storage_partition_impl = static_cast<StoragePartitionImpl*>(
- BrowserContext::GetStoragePartition(browser_context, site_instance));
+ storage_partition_impl =
+ BrowserContext::GetStoragePartition(browser_context, site_instance);
}
return new RenderProcessHostImpl(browser_context, storage_partition_impl,
@@ -1207,7 +1205,7 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
// static
RenderProcessHost* RenderProcessHostImpl::CreateOrUseSpareRenderProcessHost(
BrowserContext* browser_context,
- StoragePartitionImpl* storage_partition_impl,
+ StoragePartition* storage_partition_impl,
SiteInstance* site_instance,
bool is_for_guests_only) {
RenderProcessHost* render_process_host =
@@ -1227,7 +1225,7 @@ RenderProcessHost* RenderProcessHostImpl::CreateOrUseSpareRenderProcessHost(
RenderProcessHostImpl::RenderProcessHostImpl(
BrowserContext* browser_context,
@@ -182,7 +222,7 @@ index ec0d400..49261d1 100644
bool is_for_guests_only)
: fast_shutdown_started_(false),
deleting_soon_(false),
@@ -939,7 +939,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
@@ -1260,7 +1258,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
indexed_db_factory_(new IndexedDBDispatcherHost(
id_,
storage_partition_impl_->GetURLRequestContext(),
@@ -192,7 +232,7 @@ index ec0d400..49261d1 100644
ChromeBlobStorageContext::GetFor(browser_context_))),
channel_connected_(false),
sent_render_process_ready_(false),
@@ -970,7 +971,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
@@ -1294,7 +1293,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
}
push_messaging_manager_.reset(new PushMessagingManager(
@@ -202,7 +242,7 @@ index ec0d400..49261d1 100644
AddObserver(indexed_db_factory_.get());
#if defined(OS_MACOSX)
@@ -1176,7 +1178,7 @@ bool RenderProcessHostImpl::Init() {
@@ -1500,7 +1500,7 @@ bool RenderProcessHostImpl::Init() {
}
void RenderProcessHostImpl::EnableSendQueue() {
@@ -211,7 +251,7 @@ index ec0d400..49261d1 100644
InitializeChannelProxy();
}
@@ -1273,6 +1275,22 @@ void RenderProcessHostImpl::ResetChannelProxy() {
@@ -1597,6 +1597,22 @@ void RenderProcessHostImpl::ResetChannelProxy() {
void RenderProcessHostImpl::CreateMessageFilters() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -234,7 +274,7 @@ index ec0d400..49261d1 100644
AddFilter(new ResourceSchedulerFilter(GetID()));
MediaInternals* media_internals = MediaInternals::GetInstance();
// Add BrowserPluginMessageFilter to ensure it gets the first stab at messages
@@ -1287,8 +1305,8 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1611,8 +1627,8 @@ void RenderProcessHostImpl::CreateMessageFilters() {
new RenderMessageFilter(
GetID(), GetBrowserContext(), request_context.get(),
widget_helper_.get(), media_internals,
@@ -245,7 +285,7 @@ index ec0d400..49261d1 100644
AddFilter(render_message_filter.get());
render_frame_message_filter_ = new RenderFrameMessageFilter(
@@ -1317,10 +1335,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1641,10 +1657,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
ChromeBlobStorageContext::GetFor(browser_context);
resource_message_filter_ = new ResourceMessageFilter(
@@ -258,7 +298,7 @@ index ec0d400..49261d1 100644
BrowserThread::GetTaskRunnerForThread(BrowserThread::IO));
AddFilter(resource_message_filter_.get());
@@ -1344,10 +1362,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1671,10 +1687,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
AddFilter(
new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service()));
AddFilter(new AppCacheDispatcherHost(
@@ -271,7 +311,7 @@ index ec0d400..49261d1 100644
#if BUILDFLAG(ENABLE_WEBRTC)
peer_connection_tracker_host_ = new PeerConnectionTrackerHost(
@@ -1386,13 +1404,12 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1713,13 +1729,12 @@ void RenderProcessHostImpl::CreateMessageFilters() {
scoped_refptr<CacheStorageDispatcherHost> cache_storage_filter =
new CacheStorageDispatcherHost();
@@ -287,7 +327,7 @@ index ec0d400..49261d1 100644
AddFilter(service_worker_filter.get());
AddFilter(new SharedWorkerMessageFilter(
@@ -1400,12 +1417,12 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1727,12 +1742,12 @@ void RenderProcessHostImpl::CreateMessageFilters() {
WorkerStoragePartition(
storage_partition_impl_->GetURLRequestContext(),
storage_partition_impl_->GetMediaURLRequestContext(),
@@ -303,7 +343,7 @@ index ec0d400..49261d1 100644
base::Bind(&RenderWidgetHelper::GetNextRoutingID,
base::Unretained(widget_helper_.get()))));
@@ -1421,11 +1438,8 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1748,11 +1763,8 @@ void RenderProcessHostImpl::CreateMessageFilters() {
GetID(), storage_partition_impl_->GetQuotaManager(),
GetContentClient()->browser()->CreateQuotaPermissionContext()));
@@ -316,7 +356,7 @@ index ec0d400..49261d1 100644
resource_context, service_worker_context, browser_context);
AddFilter(notification_message_filter_.get());
@@ -1441,6 +1455,11 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1768,6 +1780,11 @@ void RenderProcessHostImpl::CreateMessageFilters() {
void RenderProcessHostImpl::RegisterMojoInterfaces() {
auto registry = base::MakeUnique<service_manager::BinderRegistry>();
@@ -328,7 +368,7 @@ index ec0d400..49261d1 100644
channel_->AddAssociatedInterfaceForIOThread(
base::Bind(&IndexedDBDispatcherHost::AddBinding,
base::Unretained(indexed_db_factory_.get())));
@@ -1488,8 +1507,7 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
@@ -1818,8 +1835,7 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
AddUIThreadInterface(
registry.get(),
base::Bind(&PlatformNotificationContextImpl::CreateService,
@@ -338,7 +378,7 @@ index ec0d400..49261d1 100644
GetID()));
AddUIThreadInterface(
registry.get(),
@@ -1725,6 +1743,7 @@ void RenderProcessHostImpl::ForceReleaseWorkerRefCounts() {
@@ -2085,6 +2101,7 @@ void RenderProcessHostImpl::ForceReleaseWorkerRefCounts() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!is_worker_ref_count_disabled_);
is_worker_ref_count_disabled_ = true;
@@ -346,39 +386,46 @@ index ec0d400..49261d1 100644
if (!GetWorkerRefCount())
return;
service_worker_ref_count_ = 0;
@@ -3064,8 +3083,8 @@ RenderProcessHost* RenderProcessHostImpl::GetProcessHostForSiteInstance(
g_render_process_host_factory_->CreateRenderProcessHost(
browser_context, site_instance);
} else {
- StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
- BrowserContext::GetStoragePartition(browser_context, site_instance));
+ StoragePartition* partition =
+ BrowserContext::GetStoragePartition(browser_context, site_instance);
render_process_host = new RenderProcessHostImpl(
browser_context, partition, is_for_guests_only);
}
diff --git content/browser/renderer_host/render_process_host_impl.h content/browser/renderer_host/render_process_host_impl.h
index 8d5033e..45b8a7c 100644
index ede5f06..5e205fb 100644
--- content/browser/renderer_host/render_process_host_impl.h
+++ content/browser/renderer_host/render_process_host_impl.h
@@ -80,7 +80,6 @@ class RenderWidgetHostImpl;
class ResourceMessageFilter;
@@ -84,7 +84,6 @@ class ResourceMessageFilter;
class SiteInstance;
class SiteInstanceImpl;
class StoragePartition;
-class StoragePartitionImpl;
typedef base::Thread* (*RendererMainThreadFactoryFunction)(
const InProcessChildThreadParams& params);
@@ -112,7 +111,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
public NON_EXPORTED_BASE(mojom::AssociatedInterfaceProvider) {
public:
@@ -123,7 +122,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// legal).
static RenderProcessHost* CreateOrUseSpareRenderProcessHost(
BrowserContext* browser_context,
- StoragePartitionImpl* storage_partition_impl,
+ StoragePartition* storage_partition_impl,
SiteInstance* site_instance,
bool is_for_guests_only);
@@ -135,7 +134,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// null.
static RenderProcessHost* CreateRenderProcessHost(
BrowserContext* browser_context,
- StoragePartitionImpl* storage_partition_impl,
+ StoragePartition* storage_partition_impl,
SiteInstance* site_instance,
bool is_for_guests_only);
@@ -402,7 +401,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// Use CreateRenderProcessHost() instead of calling this constructor
// directly.
RenderProcessHostImpl(BrowserContext* browser_context,
- StoragePartitionImpl* storage_partition_impl,
+ StoragePartition* storage_partition_impl,
bool is_for_guests_only);
~RenderProcessHostImpl() override;
@@ -581,10 +580,10 @@ class CONTENT_EXPORT RenderProcessHostImpl
// Initializes a new IPC::ChannelProxy in |channel_|, which will be connected
@@ -631,10 +630,10 @@ class CONTENT_EXPORT RenderProcessHostImpl
// called.
int instance_id_ = 1;
@@ -392,10 +439,10 @@ index 8d5033e..45b8a7c 100644
// The observers watching our lifetime.
base::ObserverList<RenderProcessHostObserver> observers_;
diff --git content/browser/storage_partition_impl.h content/browser/storage_partition_impl.h
index 58a6de1..4835648 100644
index a0df88a..d996a81 100644
--- content/browser/storage_partition_impl.h
+++ content/browser/storage_partition_impl.h
@@ -110,12 +110,11 @@ class CONTENT_EXPORT StoragePartitionImpl
@@ -113,14 +113,13 @@ class CONTENT_EXPORT StoragePartitionImpl
const base::Closure& callback) override;
void Flush() override;
void ClearBluetoothAllowedDevicesMapForTesting() override;
@@ -405,15 +452,19 @@ index 58a6de1..4835648 100644
- PaymentAppContextImpl* GetPaymentAppContext();
- BroadcastChannelProvider* GetBroadcastChannelProvider();
- BluetoothAllowedDevicesMap* GetBluetoothAllowedDevicesMap();
- BlobURLLoaderFactory* GetBlobURLLoaderFactory();
- BlobRegistryWrapper* GetBlobRegistry();
+ BackgroundFetchContext* GetBackgroundFetchContext() override;
+ BackgroundSyncContext* GetBackgroundSyncContext() override;
+ PaymentAppContextImpl* GetPaymentAppContext() override;
+ BroadcastChannelProvider* GetBroadcastChannelProvider() override;
+ BluetoothAllowedDevicesMap* GetBluetoothAllowedDevicesMap() override;
+ BlobURLLoaderFactory* GetBlobURLLoaderFactory() override;
+ BlobRegistryWrapper* GetBlobRegistry() override;
// mojom::StoragePartitionService interface.
void OpenLocalStorage(
@@ -124,17 +123,20 @@ class CONTENT_EXPORT StoragePartitionImpl
@@ -129,17 +128,20 @@ class CONTENT_EXPORT StoragePartitionImpl
// Returns the NetworkContext associated with this storage partition. Only
// used when the network service is enabled.
@@ -468,10 +519,10 @@ index 075ae3e..57fb5fd 100644
void InitializeOnIOThread();
diff --git content/browser/webui/web_ui_url_loader_factory.cc content/browser/webui/web_ui_url_loader_factory.cc
index e85627c..3f55353 100644
index 99bc1b3..d96d2db 100644
--- content/browser/webui/web_ui_url_loader_factory.cc
+++ content/browser/webui/web_ui_url_loader_factory.cc
@@ -18,7 +18,6 @@
@@ -18,13 +18,13 @@
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/browser/histogram_internals_url_loader.h"
#include "content/browser/resource_context_impl.h"
@@ -479,14 +530,13 @@ index e85627c..3f55353 100644
#include "content/browser/webui/network_error_url_loader.h"
#include "content/browser/webui/url_data_manager_backend.h"
#include "content/browser/webui/url_data_source_impl.h"
@@ -26,6 +25,7 @@
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
+#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/network_service.mojom.h"
#include "content/public/common/url_constants.h"
#include "mojo/public/cpp/bindings/binding_set.h"
@@ -210,8 +210,8 @@ class WebUIURLLoaderFactory : public mojom::URLLoaderFactory,
public:
WebUIURLLoaderFactory(FrameTreeNode* ftn)
@@ -498,7 +548,7 @@ index e85627c..3f55353 100644
ftn->AddObserver(this);
}
@@ -278,7 +278,7 @@ class WebUIURLLoaderFactory : public mojom::URLLoaderFactory,
@@ -282,7 +282,7 @@ class WebUIURLLoaderFactory : public mojom::URLLoaderFactory,
private:
int frame_tree_node_id_;
@@ -508,10 +558,10 @@ index e85627c..3f55353 100644
DISALLOW_COPY_AND_ASSIGN(WebUIURLLoaderFactory);
diff --git content/public/browser/browser_context.h content/public/browser/browser_context.h
index 7a895f2..687da7c 100644
index 8503ee8..8f87408 100644
--- content/public/browser/browser_context.h
+++ content/public/browser/browser_context.h
@@ -185,6 +185,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
@@ -188,6 +188,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
BrowserContext();
@@ -520,7 +570,7 @@ index 7a895f2..687da7c 100644
~BrowserContext() override;
// Shuts down the storage partitions associated to this browser context.
@@ -266,6 +268,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
@@ -269,6 +271,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
const base::FilePath& partition_path,
bool in_memory) = 0;
@@ -532,11 +582,11 @@ index 7a895f2..687da7c 100644
+ return nullptr;
+ }
+
using StaticServiceMap = std::map<std::string, ServiceInfo>;
using StaticServiceMap =
std::map<std::string, service_manager::EmbeddedServiceInfo>;
// Registers per-browser-context services to be loaded in the browser process
diff --git content/public/browser/storage_partition.h content/public/browser/storage_partition.h
index 60e5c7d..14f50b3 100644
index 60e5c7d..e90a494 100644
--- content/public/browser/storage_partition.h
+++ content/public/browser/storage_partition.h
@@ -13,6 +13,7 @@
@@ -547,12 +597,14 @@ index 60e5c7d..14f50b3 100644
#include "net/cookies/cookie_store.h"
class GURL;
@@ -41,12 +42,18 @@ class DatabaseTracker;
@@ -41,12 +42,20 @@ class DatabaseTracker;
namespace content {
class AppCacheService;
+class BackgroundFetchContext;
+class BackgroundSyncContext;
+class BlobRegistryWrapper;
+class BlobURLLoaderFactory;
+class BluetoothAllowedDevicesMap;
+class BroadcastChannelProvider;
class BrowserContext;
@@ -566,7 +618,7 @@ index 60e5c7d..14f50b3 100644
#if !defined(OS_ANDROID)
class HostZoomLevelContext;
@@ -54,6 +61,11 @@ class HostZoomMap;
@@ -54,6 +63,11 @@ class HostZoomMap;
class ZoomLevelDelegate;
#endif // !defined(OS_ANDROID)
@@ -578,7 +630,7 @@ index 60e5c7d..14f50b3 100644
// Defines what persistent state a child process can access.
//
// The StoragePartition defines the view each child process has of the
@@ -79,6 +91,11 @@ class CONTENT_EXPORT StoragePartition {
@@ -79,6 +93,13 @@ class CONTENT_EXPORT StoragePartition {
virtual ZoomLevelDelegate* GetZoomLevelDelegate() = 0;
#endif // !defined(OS_ANDROID)
virtual PlatformNotificationContext* GetPlatformNotificationContext() = 0;
@@ -587,10 +639,12 @@ index 60e5c7d..14f50b3 100644
+ virtual PaymentAppContextImpl* GetPaymentAppContext() = 0;
+ virtual BroadcastChannelProvider* GetBroadcastChannelProvider() = 0;
+ virtual BluetoothAllowedDevicesMap* GetBluetoothAllowedDevicesMap() = 0;
+ virtual BlobURLLoaderFactory* GetBlobURLLoaderFactory() = 0;
+ virtual BlobRegistryWrapper* GetBlobRegistry() = 0;
enum : uint32_t {
REMOVE_DATA_MASK_APPCACHE = 1 << 0,
@@ -184,6 +201,14 @@ class CONTENT_EXPORT StoragePartition {
@@ -184,6 +205,14 @@ class CONTENT_EXPORT StoragePartition {
// Clear the bluetooth allowed devices map. For test use only.
virtual void ClearBluetoothAllowedDevicesMapForTesting() = 0;

View File

@@ -1,9 +1,9 @@
diff --git ui/base/dragdrop/os_exchange_data_provider_aurax11.cc ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
index 2e4b975..d0cb122 100644
index 1a6e9a1..08eb800 100644
--- ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
+++ ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
@@ -162,7 +162,8 @@ void OSExchangeDataProviderAuraX11::SetURL(const GURL& url,
mem);
@@ -141,7 +141,8 @@ void OSExchangeDataProviderAuraX11::SetURL(const GURL& url,
format_map_.Insert(gfx::GetAtom(Clipboard::kMimeTypeMozillaURL), mem);
// Set a string fallback as well.
- SetString(spec);

View File

@@ -39,10 +39,10 @@ index 0755f27..0322b8c 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index 97b6c8f..84b9387 100644
index 041c9f2..4b8beb4 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -567,6 +567,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) {
@@ -486,6 +486,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) {
}
}
@@ -57,7 +57,7 @@ index 97b6c8f..84b9387 100644
void RenderText::SetDisplayRect(const Rect& r) {
if (r != display_rect_) {
display_rect_ = r;
@@ -1466,6 +1474,19 @@ void RenderText::OnTextAttributeChanged() {
@@ -1386,6 +1394,19 @@ void RenderText::OnTextAttributeChanged() {
if (!multiline_ && replace_newline_chars_with_symbols_)
base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_);
@@ -78,10 +78,10 @@ index 97b6c8f..84b9387 100644
}
diff --git ui/gfx/render_text.h ui/gfx/render_text.h
index 00fe00c..bc4fd59 100644
index 24ea3d4..4554f12 100644
--- ui/gfx/render_text.h
+++ ui/gfx/render_text.h
@@ -312,6 +312,10 @@ class GFX_EXPORT RenderText {
@@ -275,6 +275,10 @@ class GFX_EXPORT RenderText {
void SetElideBehavior(ElideBehavior elide_behavior);
ElideBehavior elide_behavior() const { return elide_behavior_; }
@@ -92,9 +92,9 @@ index 00fe00c..bc4fd59 100644
const Rect& display_rect() const { return display_rect_; }
void SetDisplayRect(const Rect& r);
@@ -858,6 +862,8 @@ class GFX_EXPORT RenderText {
// OnLayoutTextAttributeChanged and OnDisplayTextAttributeChanged calls.
std::vector<internal::Line> lines_;
@@ -827,6 +831,8 @@ class GFX_EXPORT RenderText {
// The ratio of strike-through line thickness to text height.
SkScalar strike_thickness_factor_;
+ int draw_strings_flags_ = 0;
+
@@ -102,10 +102,10 @@ index 00fe00c..bc4fd59 100644
};
diff --git ui/views/animation/ink_drop_host_view.h ui/views/animation/ink_drop_host_view.h
index 68e5b60..3861921 100644
index 8ac475f..d052dec 100644
--- ui/views/animation/ink_drop_host_view.h
+++ ui/views/animation/ink_drop_host_view.h
@@ -130,6 +130,8 @@ class VIEWS_EXPORT InkDropHostView : public View, public InkDropHost {
@@ -136,6 +136,8 @@ class VIEWS_EXPORT InkDropHostView : public View, public InkDropHost {
// of CreateInkDrop() delegates to this function.
std::unique_ptr<InkDropImpl> CreateDefaultInkDropImpl();
@@ -115,10 +115,10 @@ index 68e5b60..3861921 100644
class InkDropGestureHandler;
friend class InkDropGestureHandler;
diff --git ui/views/controls/button/label_button.cc ui/views/controls/button/label_button.cc
index aa8dae7..05c89b3 100644
index 1d9e7b8..683d680 100644
--- ui/views/controls/button/label_button.cc
+++ ui/views/controls/button/label_button.cc
@@ -192,6 +192,7 @@ gfx::Size LabelButton::GetPreferredSize() const {
@@ -188,6 +188,7 @@ gfx::Size LabelButton::CalculatePreferredSize() const {
Label label(GetText(), {label_->font_list()});
label.SetLineHeight(label_->line_height());
label.SetShadows(label_->shadows());
@@ -126,7 +126,7 @@ index aa8dae7..05c89b3 100644
if (style_ == STYLE_BUTTON && PlatformStyle::kDefaultLabelButtonHasBoldFont) {
// Some text appears wider when rendered normally than when rendered bold.
@@ -404,6 +405,11 @@ std::unique_ptr<views::InkDropHighlight> LabelButton::CreateInkDropHighlight()
@@ -399,6 +400,11 @@ std::unique_ptr<views::InkDropHighlight> LabelButton::CreateInkDropHighlight()
gfx::RectF(image()->GetMirroredBounds()).CenterPoint());
}
@@ -139,10 +139,10 @@ index aa8dae7..05c89b3 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 8495c43..da7997e 100644
index 0fb0337..38397cd 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -109,6 +109,9 @@ class VIEWS_EXPORT LabelButton : public CustomButton,
@@ -106,6 +106,9 @@ class VIEWS_EXPORT LabelButton : public CustomButton,
std::unique_ptr<InkDropRipple> CreateInkDropRipple() const override;
std::unique_ptr<InkDropHighlight> CreateInkDropHighlight() const override;
@@ -151,21 +151,21 @@ index 8495c43..da7997e 100644
+
protected:
ImageView* image() const { return image_; }
Label* label() const { return label_; }
Label* label() const;
diff --git ui/views/controls/button/menu_button.cc ui/views/controls/button/menu_button.cc
index 33740d8..42c4cbc 100644
index 0e4194e..736e2c3 100644
--- ui/views/controls/button/menu_button.cc
+++ ui/views/controls/button/menu_button.cc
@@ -194,7 +194,7 @@ void MenuButton::OnPaint(gfx::Canvas* canvas) {
gfx::Size MenuButton::GetPreferredSize() const {
gfx::Size prefsize = LabelButton::GetPreferredSize();
@@ -186,7 +186,7 @@ bool MenuButton::IsTriggerableEventType(const ui::Event& event) {
gfx::Size MenuButton::CalculatePreferredSize() const {
gfx::Size prefsize = LabelButton::CalculatePreferredSize();
if (show_menu_marker_) {
- prefsize.Enlarge(menu_marker_->width() + kMenuMarkerPaddingLeft +
+ prefsize.Enlarge(menu_marker_->width() + GetMarkerPaddingLeft() +
kMenuMarkerPaddingRight,
0);
}
@@ -324,7 +324,7 @@ gfx::Rect MenuButton::GetChildAreaBounds() {
@@ -316,7 +316,7 @@ gfx::Rect MenuButton::GetChildAreaBounds() {
gfx::Size s = size();
if (show_menu_marker_) {
@@ -174,7 +174,7 @@ index 33740d8..42c4cbc 100644
kMenuMarkerPaddingRight);
}
@@ -416,4 +416,10 @@ int MenuButton::GetMaximumScreenXCoordinate() {
@@ -413,4 +413,10 @@ int MenuButton::GetMaximumScreenXCoordinate() {
return monitor_bounds.right() - 1;
}
@@ -186,7 +186,7 @@ index 33740d8..42c4cbc 100644
+
} // namespace views
diff --git ui/views/controls/button/menu_button.h ui/views/controls/button/menu_button.h
index 0d87c31..bcaa1ec 100644
index 9adbee9..1b5151a 100644
--- ui/views/controls/button/menu_button.h
+++ ui/views/controls/button/menu_button.h
@@ -57,6 +57,9 @@ class VIEWS_EXPORT MenuButton : public LabelButton {
@@ -210,7 +210,7 @@ index 0d87c31..bcaa1ec 100644
// The time is used for simulating menu behavior for the menu button; that
// is, if the menu is shown and the button is pressed, we need to close the
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index 2523f9a..ef64aac 100644
index 05c9338..3d64177 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -26,6 +26,7 @@
@@ -242,7 +242,7 @@ index 2523f9a..ef64aac 100644
} // namespace
const char Label::kViewClassName[] = "Label";
@@ -221,6 +236,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
@@ -219,6 +234,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
ResetLayout();
}
@@ -258,7 +258,7 @@ index 2523f9a..ef64aac 100644
void Label::SetTooltipText(const base::string16& tooltip_text) {
DCHECK(handles_tooltips_);
tooltip_text_ = tooltip_text;
@@ -446,7 +470,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText(
@@ -438,7 +462,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText(
render_text->SetFontList(font_list());
render_text->set_shadows(shadows());
render_text->SetCursorEnabled(false);
@@ -280,10 +280,10 @@ index 2523f9a..ef64aac 100644
}
diff --git ui/views/controls/label.h ui/views/controls/label.h
index 0fa4db8..6d48a9b 100644
index 38eb5f3..1298fc6 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -144,6 +144,10 @@ class VIEWS_EXPORT Label : public View,
@@ -146,6 +146,10 @@ class VIEWS_EXPORT Label : public View,
void SetElideBehavior(gfx::ElideBehavior elide_behavior);
gfx::ElideBehavior elide_behavior() const { return elide_behavior_; }
@@ -303,10 +303,10 @@ index 0fa4db8..6d48a9b 100644
// TODO(ckocagil): Remove is_first_paint_text_ before crbug.com/441028 is
// closed.
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index 7c44dd17..2da694b 100644
index e9125d6..e0849a7 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -2259,8 +2259,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
@@ -2267,8 +2267,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@@ -321,7 +321,7 @@ index 7c44dd17..2da694b 100644
MenuItemView* to_select = NULL;
if (item->GetSubmenu()->GetMenuItemCount() > 0)
to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN);
@@ -2275,8 +2280,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
@@ -2283,8 +2288,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);
@@ -330,7 +330,7 @@ index 7c44dd17..2da694b 100644
+ item->GetDelegate()->OnUnhandledCloseSubmenu(item, base::i18n::IsRTL());
return;
+ }
if (item->HasSubmenu() && item->GetSubmenu()->IsShowing())
if (item->SubmenuIsShowing())
SetSelection(item, SELECTION_UPDATE_IMMEDIATELY);
else if (item->GetParentMenuItem()->GetParentMenuItem())
diff --git ui/views/controls/menu/menu_delegate.h ui/views/controls/menu/menu_delegate.h
@@ -381,10 +381,10 @@ index 4dea63f..ef50b71 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 c2d98e2..8d12a05 100644
index 905690f..333148c 100644
--- ui/views/controls/menu/menu_item_view.cc
+++ ui/views/controls/menu/menu_item_view.cc
@@ -761,7 +761,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
@@ -763,7 +763,12 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
// only need the background when we want it to look different, as when we're
// selected.
ui::NativeTheme* native_theme = GetNativeTheme();
@@ -398,7 +398,7 @@ index c2d98e2..8d12a05 100644
gfx::Rect item_bounds(0, 0, width(), height());
AdjustBoundsForRTLUI(&item_bounds);
@@ -873,6 +878,13 @@ void MenuItemView::PaintMinorText(gfx::Canvas* canvas, SkColor color) {
@@ -875,6 +880,13 @@ void MenuItemView::PaintMinorText(gfx::Canvas* canvas, SkColor color) {
SkColor MenuItemView::GetTextColor(bool minor,
bool render_selection,
bool emphasized) const {
@@ -520,7 +520,7 @@ index 0ac493c..741769e 100644
void WillHideMenu(MenuItemView* menu) override;
void OnMenuClosed(MenuItemView* menu) override;
diff --git ui/views/controls/menu/menu_scroll_view_container.cc ui/views/controls/menu/menu_scroll_view_container.cc
index 124442a..c5cfe8b 100644
index 08ba198..595b375 100644
--- ui/views/controls/menu/menu_scroll_view_container.cc
+++ ui/views/controls/menu/menu_scroll_view_container.cc
@@ -184,6 +184,11 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view)
@@ -530,16 +530,16 @@ index 124442a..c5cfe8b 100644
+ SkColor override_color;
+ MenuDelegate* delegate = content_view_->GetMenuItem()->GetDelegate();
+ if (delegate && delegate->GetBackgroundColor(-1, false, &override_color))
+ set_background(views::Background::CreateSolidBackground(override_color));
+ SetBackground(views::CreateSolidBackground(override_color));
+
arrow_ = BubbleBorderTypeFromAnchor(
content_view_->GetMenuItem()->GetMenuController()->GetAnchorPosition());
diff --git ui/views/test/ui_controls_factory_desktop_aurax11.cc ui/views/test/ui_controls_factory_desktop_aurax11.cc
index 117a268..6065c73 100644
index 534e0c4..974d82d 100644
--- ui/views/test/ui_controls_factory_desktop_aurax11.cc
+++ ui/views/test/ui_controls_factory_desktop_aurax11.cc
@@ -146,10 +146,6 @@ class UIControlsDesktopX11 : public UIControlsAura {
@@ -147,10 +147,6 @@ class UIControlsDesktopX11 : public UIControlsAura {
aura::test::QueryLatestMousePositionRequestInHost(host);
host->ConvertPixelsToDIP(&root_current_location);
@@ -551,7 +551,7 @@ index 117a268..6065c73 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 410e2a5..0ba4765 100644
index 7a8a7b3..e712ef7 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -18,6 +18,7 @@
@@ -562,12 +562,12 @@ index 410e2a5..0ba4765 100644
#include "build/build_config.h"
#include "ui/accessibility/ax_enums.h"
#include "ui/base/accelerators/accelerator.h"
@@ -115,7 +116,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::LayerOwner,
@@ -117,7 +118,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::AcceleratorTarget,
public ui::EventTarget,
- public ui::EventHandler {
+ public ui::EventHandler,
public ui::EventHandler,
- public ui::PropertyHandler {
+ public ui::PropertyHandler,
+ public base::SupportsUserData {
public:
using Views = std::vector<View*>;

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 527e5ea..de52a1e 100644
index ebf64e9..f242f5f 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -299,6 +299,14 @@ void RenderWidgetHostViewBase::FocusedNodeTouched(
@@ -298,6 +298,14 @@ void RenderWidgetHostViewBase::FocusedNodeTouched(
DVLOG(1) << "FocusedNodeTouched: " << editable;
}
@@ -18,18 +18,18 @@ index 527e5ea..de52a1e 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 904897a..4454205 100644
index 9a124eb..84d1c63 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -72,6 +72,7 @@ class BrowserAccessibilityDelegate;
class BrowserAccessibilityManager;
@@ -77,6 +77,7 @@ class BrowserAccessibilityManager;
class CursorManager;
class RenderWidgetHostImpl;
class RenderWidgetHostViewBaseObserver;
+class RenderWidgetHostViewGuest;
class SyntheticGestureTarget;
class TextInputManager;
class TouchSelectionControllerClientManager;
@@ -88,6 +89,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@@ -94,6 +95,9 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
float current_device_scale_factor() const {
return current_device_scale_factor_;
}
@@ -39,16 +39,16 @@ index 904897a..4454205 100644
// Returns the focused RenderWidgetHost inside this |view|'s RWH.
RenderWidgetHostImpl* GetFocusedWidget() const;
@@ -119,6 +123,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@@ -123,6 +127,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
void EndFrameSubscription() override;
void FocusedNodeTouched(const gfx::Point& location_dips_screen,
bool editable) override;
+ void SetHasExternalParent(bool val) override;
+ bool HasExternalParent() const override;
TouchSelectionControllerClientManager*
GetTouchSelectionControllerClientManager() override;
// This only needs to be overridden by RenderWidgetHostViewBase subclasses
// that handle content embedded within other RenderWidgetHostViews.
@@ -355,6 +361,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@@ -365,6 +371,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
// helps to position the full screen widget on the correct monitor.
virtual void InitAsFullscreen(RenderWidgetHostView* reference_host_view) = 0;
@@ -58,12 +58,12 @@ index 904897a..4454205 100644
+ virtual void InitAsGuest(RenderWidgetHostView* parent_host_view,
+ RenderWidgetHostViewGuest* guest_view) {}
+
// Sets the cursor to the one associated with the specified cursor_type
// Sets the cursor for this view to the one associated with the specified
// cursor_type.
virtual void UpdateCursor(const WebCursor& cursor) = 0;
@@ -492,6 +504,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
@@ -469,6 +481,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
const bool wheel_scroll_latching_enabled_;
WebContentsAccessibility* web_contents_accessibility_;
+ // True if the widget has a external parent view/window outside of the
+ // Chromium-controlled view/window hierarchy.
@@ -73,7 +73,7 @@ index 904897a..4454205 100644
gfx::Rect current_display_area_;
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 0401ce6..99e85e9 100644
index ed267bc..514eade 100644
--- content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -28,6 +28,10 @@
@@ -87,7 +87,7 @@ index 0401ce6..99e85e9 100644
#if defined(OS_WIN)
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/public/common/context_menu_params.h"
@@ -847,6 +851,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() {
@@ -851,6 +855,14 @@ void RenderWidgetHostViewEventHandler::SetKeyboardFocus() {
}
}
#endif
@@ -103,10 +103,10 @@ index 0401ce6..99e85e9 100644
if (host_ && set_focus_on_mouse_down_or_key_event_) {
set_focus_on_mouse_down_or_key_event_ = false;
diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h
index e295ef2..dcce231 100644
index 995f917..dbbd883 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -234,6 +234,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@@ -236,6 +236,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
// when the value has changed. Views must initially default to false.
virtual void SetNeedsBeginFrames(bool needs_begin_frames) = 0;
@@ -135,7 +135,7 @@ index f772f64..7d13f9f 100644
return host ? host->GetAcceleratedWidget() : NULL;
}
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 e99be28..4d3fec5 100644
index 4d0dfbe..7ef6ace 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -85,6 +85,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin(
@@ -146,7 +146,7 @@ index e99be28..4d3fec5 100644
tooltip_(NULL) {
}
@@ -120,8 +121,12 @@ void DesktopWindowTreeHostWin::Init(aura::Window* content_window,
@@ -123,8 +124,12 @@ void DesktopWindowTreeHostWin::Init(aura::Window* content_window,
native_widget_delegate_);
HWND parent_hwnd = NULL;
@@ -160,7 +160,7 @@ index e99be28..4d3fec5 100644
remove_standard_frame_ = params.remove_standard_frame;
has_non_client_view_ = Widget::RequiresNonClientView(params.type);
@@ -824,11 +829,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
@@ -831,11 +836,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
}
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
@@ -179,10 +179,10 @@ index e99be28..4d3fec5 100644
bool DesktopWindowTreeHostWin::HandleMouseEvent(const 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 12d0616..ec5742a 100644
index 3f1c7bf..2658da5 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -256,6 +256,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@@ -264,6 +264,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
// True if the window should have the frame removed.
bool remove_standard_frame_;
@@ -194,10 +194,10 @@ index 12d0616..ec5742a 100644
// 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 e7fd89c..d3b2621 100644
index e8a7a79..1c1057f 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -198,6 +198,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
@@ -152,6 +152,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
use_native_frame_(false),
should_maximize_after_map_(false),
use_argb_visual_(false),
@@ -205,15 +205,15 @@ index e7fd89c..d3b2621 100644
drag_drop_client_(NULL),
native_widget_delegate_(native_widget_delegate),
desktop_native_widget_aura_(desktop_native_widget_aura),
@@ -211,6 +212,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
@@ -165,6 +166,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
has_window_focus_(false),
has_pointer_focus_(false),
modal_dialog_counter_(0),
+ xwindow_destroyed_(false),
close_widget_factory_(this),
weak_factory_(this) {}
@@ -246,6 +248,8 @@ std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
weak_factory_(this) {
}
@@ -201,6 +203,8 @@ std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
}
gfx::Rect DesktopWindowTreeHostX11::GetX11RootWindowBounds() const {
@@ -222,7 +222,7 @@ index e7fd89c..d3b2621 100644
return bounds_in_pixels_;
}
@@ -554,7 +558,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
@@ -512,7 +516,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
// Actually free our native resources.
if (ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
@@ -232,7 +232,7 @@ index e7fd89c..d3b2621 100644
xwindow_ = None;
desktop_native_widget_aura_->OnHostClosed();
@@ -695,6 +700,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
@@ -653,6 +658,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
}
gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
@@ -241,7 +241,7 @@ index e7fd89c..d3b2621 100644
return ToDIPRect(bounds_in_pixels_);
}
@@ -1296,6 +1303,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels(
@@ -1245,6 +1252,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels(
}
gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const {
@@ -250,7 +250,7 @@ index e7fd89c..d3b2621 100644
return bounds_in_pixels_.origin();
}
@@ -1422,9 +1431,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
@@ -1391,9 +1400,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
attribute_mask |= CWBorderPixel;
swa.border_pixel = 0;
@@ -267,7 +267,7 @@ index e7fd89c..d3b2621 100644
bounds_in_pixels_.y(), bounds_in_pixels_.width(),
bounds_in_pixels_.height(),
0, // border width
@@ -2042,6 +2057,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
@@ -1998,6 +2013,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
}
break;
}
@@ -279,10 +279,10 @@ index e7fd89c..d3b2621 100644
case FocusOut:
OnFocusEvent(xev->type == FocusIn, event->xfocus.mode,
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 757b780..45d57ae 100644
index cb18967..0c143d2 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
@@ -87,6 +87,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -86,6 +86,12 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
// Disables event listening to make |dialog| modal.
std::unique_ptr<base::Closure> DisableEventListening();
@@ -295,7 +295,7 @@ index 757b780..45d57ae 100644
protected:
// Overridden from DesktopWindowTreeHost:
void Init(aura::Window* content_window,
@@ -300,6 +306,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -305,6 +311,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
// The bounds of |xwindow_|.
gfx::Rect bounds_in_pixels_;
@@ -305,7 +305,7 @@ index 757b780..45d57ae 100644
// Whenever the bounds are set, we keep the previous set of bounds around so
// we can have a better chance of getting the real
// |restored_bounds_in_pixels_|. Window managers tend to send a Configure
@@ -339,6 +348,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -344,6 +353,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
// Whether we used an ARGB visual for our window.
bool use_argb_visual_;
@@ -316,7 +316,7 @@ index 757b780..45d57ae 100644
DesktopDragDropClientAuraX11* drag_drop_client_;
std::unique_ptr<ui::EventHandler> x11_non_client_event_filter_;
@@ -426,6 +439,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@@ -431,6 +444,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
uint32_t modal_dialog_counter_;
@@ -327,10 +327,10 @@ index 757b780..45d57ae 100644
base::WeakPtrFactory<DesktopWindowTreeHostX11> weak_factory_;
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index fbce29e..0538a4c 100644
index 32a50e8..06d39f0 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -131,6 +131,7 @@ Widget::InitParams::InitParams(Type type)
@@ -130,6 +130,7 @@ Widget::InitParams::InitParams(Type type)
use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT),
parent(nullptr),
@@ -338,7 +338,7 @@ index fbce29e..0538a4c 100644
native_widget(nullptr),
desktop_window_tree_host(nullptr),
layer_type(ui::LAYER_TEXTURED),
@@ -305,7 +306,7 @@ void Widget::Init(const InitParams& in_params) {
@@ -304,7 +305,7 @@ void Widget::Init(const InitParams& in_params) {
params.name = params.delegate->GetContentsView()->GetClassName();
params.child |= (params.type == InitParams::TYPE_CONTROL);
@@ -347,7 +347,7 @@ index fbce29e..0538a4c 100644
if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
params.type != views::Widget::InitParams::TYPE_WINDOW &&
@@ -369,7 +370,12 @@ void Widget::Init(const InitParams& in_params) {
@@ -368,7 +369,12 @@ void Widget::Init(const InitParams& in_params) {
}
} else if (params.delegate) {
SetContentsView(params.delegate->GetContentsView());
@@ -374,10 +374,10 @@ index 63fcb9d..7237ae6 100644
// 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/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc
index 3c67457..e34a9a6 100644
index 559f968..f679144 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -2670,8 +2670,12 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -2650,8 +2650,12 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
active_mouse_tracking_flags_ = 0;
} else if (event.type() == ui::ET_MOUSEWHEEL) {
// Reroute the mouse wheel to the window under the pointer if applicable.

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 627a0e5..21c6210 100644
index 13cb8a2..4bd3e2f 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -1692,6 +1692,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -1698,6 +1698,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
std::string unique_name;
frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name);
@@ -15,7 +15,7 @@ index 627a0e5..21c6210 100644
WebContentsViewDelegate* delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -1702,6 +1708,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -1708,6 +1714,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
view_.reset(CreateWebContentsView(this, delegate,
&render_view_host_delegate_view_));
}
@@ -23,7 +23,7 @@ index 627a0e5..21c6210 100644
if (browser_plugin_guest_ && !GuestMode::IsCrossProcessFrameGuest(this)) {
view_.reset(new WebContentsViewGuest(this, browser_plugin_guest_.get(),
@@ -2259,6 +2266,15 @@ void WebContentsImpl::CreateNewWindow(
@@ -2272,6 +2279,15 @@ void WebContentsImpl::CreateNewWindow(
create_params.renderer_initiated_creation =
main_frame_route_id != MSG_ROUTING_NONE;
@@ -39,7 +39,7 @@ index 627a0e5..21c6210 100644
WebContentsImpl* new_contents = NULL;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -2288,7 +2304,7 @@ void WebContentsImpl::CreateNewWindow(
@@ -2301,7 +2317,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(
@@ -48,7 +48,7 @@ index 627a0e5..21c6210 100644
}
// Save the created window associated with the route so we can show it
// later.
@@ -5182,7 +5198,7 @@ NavigationEntry*
@@ -5345,7 +5361,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() {
void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(
RenderViewHost* render_view_host) {
RenderWidgetHostViewBase* rwh_view =
@@ -73,10 +73,10 @@ index fa0afb5..d677b31 100644
WebContents::CreateParams::CreateParams(const CreateParams& other) = default;
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index ebd18a0..549329f 100644
index 06f8d80..4ec9757 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -67,9 +67,11 @@ class PageState;
@@ -68,9 +68,11 @@ class PageState;
class RenderFrameHost;
class RenderProcessHost;
class RenderViewHost;
@@ -88,7 +88,7 @@ index ebd18a0..549329f 100644
struct CustomContextMenuContext;
struct DropData;
struct Manifest;
@@ -170,6 +172,10 @@ class WebContents : public PageNavigator,
@@ -171,6 +173,10 @@ class WebContents : public PageNavigator,
// Note that the pre-created renderer process may not be used if the first
// navigation requires a dedicated or privileged process, such as a WebUI.
bool initialize_renderer;
@@ -100,10 +100,10 @@ index ebd18a0..549329f 100644
// Creates a new WebContents.
diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h
index 9176c4b..7d73b9d 100644
index e62fe35..f5b9fe0 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -43,10 +43,12 @@ class ColorChooser;
@@ -43,11 +43,13 @@ class ColorChooser;
class JavaScriptDialogManager;
class PageState;
class RenderFrameHost;
@@ -111,12 +111,13 @@ index 9176c4b..7d73b9d 100644
class RenderWidgetHost;
class SessionStorageNamespace;
class SiteInstance;
class WebContents;
class WebContentsImpl;
+class WebContentsView;
struct ColorSuggestion;
struct ContextMenuParams;
struct DropData;
@@ -329,6 +331,14 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -331,6 +333,14 @@ class CONTENT_EXPORT WebContentsDelegate {
const std::string& partition_id,
SessionStorageNamespace* session_storage_namespace);
@@ -130,4 +131,4 @@ index 9176c4b..7d73b9d 100644
+
// Notifies the delegate about the creation of a new WebContents. This
// typically happens when popups are created.
virtual void WebContentsCreated(
virtual void WebContentsCreated(WebContents* source_contents,

View File

@@ -1,8 +1,8 @@
diff --git third_party/WebKit/Source/core/dom/DOMImplementation.cpp third_party/WebKit/Source/core/dom/DOMImplementation.cpp
index 372b21d..78107f3 100644
index 9a2e9f7..4379c0c 100644
--- third_party/WebKit/Source/core/dom/DOMImplementation.cpp
+++ third_party/WebKit/Source/core/dom/DOMImplementation.cpp
@@ -242,10 +242,11 @@ Document* DOMImplementation::createDocument(const String& type,
@@ -241,10 +241,11 @@ Document* DOMImplementation::createDocument(const String& type,
// For that reason, the origin must be retrieved directly from init.url().
if (init.GetFrame()->IsMainFrame()) {
RefPtr<SecurityOrigin> origin = SecurityOrigin::Create(init.Url());
@@ -17,10 +17,10 @@ index 372b21d..78107f3 100644
.Top()
.GetSecurityContext()
diff --git third_party/WebKit/Source/core/frame/LocalFrame.cpp third_party/WebKit/Source/core/frame/LocalFrame.cpp
index 9c6d497..6296f53 100644
index 72aaf88..ec45bcb 100644
--- third_party/WebKit/Source/core/frame/LocalFrame.cpp
+++ third_party/WebKit/Source/core/frame/LocalFrame.cpp
@@ -930,7 +930,7 @@ ContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -1012,7 +1012,7 @@ ContentSettingsClient* LocalFrame::GetContentSettingsClient() {
PluginData* LocalFrame::GetPluginData() const {
if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
return nullptr;
@@ -30,137 +30,145 @@ index 9c6d497..6296f53 100644
}
diff --git third_party/WebKit/Source/core/page/Page.cpp third_party/WebKit/Source/core/page/Page.cpp
index 6dc4b21..41d56b5 100644
index 17f01a7..4a0b13b 100644
--- third_party/WebKit/Source/core/page/Page.cpp
+++ third_party/WebKit/Source/core/page/Page.cpp
@@ -289,16 +289,30 @@ void Page::RefreshPlugins() {
for (const Page* page : AllPages()) {
// Clear out the page's plugin data.
- if (page->plugin_data_)
- page->plugin_data_ = nullptr;
+ if (page->plugin_data_main_frame_)
+ page->plugin_data_main_frame_ = nullptr;
+ if (page->plugin_data_sub_frame_)
+ page->plugin_data_sub_frame_ = nullptr;
}
@@ -118,7 +118,8 @@ Page::Page(PageClients& page_clients)
overscroll_controller_(
OverscrollController::Create(GetVisualViewport(), GetChromeClient())),
main_frame_(nullptr),
- plugin_data_(nullptr),
+ plugin_data_main_frame_(nullptr),
+ plugin_data_sub_frame_(nullptr),
editor_client_(page_clients.editor_client),
spell_checker_client_(page_clients.spell_checker_client),
use_counter_(page_clients.chrome_client &&
@@ -292,21 +293,38 @@ void Page::RefreshPlugins() {
PluginData::RefreshBrowserSidePluginCache();
}
-PluginData* Page::GetPluginData(SecurityOrigin* main_frame_origin) const {
- if (!plugin_data_ ||
- !main_frame_origin->IsSameSchemeHostPort(plugin_data_->Origin()))
- plugin_data_ = PluginData::Create(main_frame_origin);
- return plugin_data_.Get();
-PluginData* Page::GetPluginData(SecurityOrigin* main_frame_origin) {
- if (!plugin_data_)
- plugin_data_ = PluginData::Create();
+PluginData* Page::GetPluginData(bool is_main_frame,
+ SecurityOrigin* main_frame_origin) const {
+ SecurityOrigin* main_frame_origin) {
+ if (is_main_frame) {
+ if (!plugin_data_main_frame_ ||
+ if (!plugin_data_main_frame_)
+ plugin_data_main_frame_ = PluginData::Create();
- if (!plugin_data_->Origin() ||
- !main_frame_origin->IsSameSchemeHostPort(plugin_data_->Origin()))
- plugin_data_->UpdatePluginList(main_frame_origin);
+ if (!plugin_data_main_frame_->Origin() ||
+ !main_frame_origin->IsSameSchemeHostPort(
+ plugin_data_main_frame_->Origin())) {
+ plugin_data_main_frame_ = PluginData::Create(true, main_frame_origin);
+ }
+ plugin_data_main_frame_->Origin()))
+ plugin_data_main_frame_->UpdatePluginList(true, main_frame_origin);
- return plugin_data_.Get();
+ return plugin_data_main_frame_.Get();
+ } else {
+ if (!plugin_data_sub_frame_ ||
+ if (!plugin_data_sub_frame_)
+ plugin_data_sub_frame_ = PluginData::Create();
+
+ if (!plugin_data_sub_frame_->Origin() ||
+ !main_frame_origin->IsSameSchemeHostPort(
+ plugin_data_sub_frame_->Origin())) {
+ plugin_data_sub_frame_ = PluginData::Create(false, main_frame_origin);
+ }
+ plugin_data_sub_frame_->Origin()))
+ plugin_data_sub_frame_->UpdatePluginList(false, main_frame_origin);
+
+ return plugin_data_sub_frame_.Get();
+ }
}
void Page::SetValidationMessageClient(ValidationMessageClient* client) {
void Page::ResetPluginData() {
for (Page* page : AllPages()) {
- if (page->plugin_data_) {
- page->plugin_data_->ResetPluginData();
+ if (page->plugin_data_main_frame_ || page->plugin_data_sub_frame_) {
+ if (page->plugin_data_main_frame_)
+ page->plugin_data_main_frame_->ResetPluginData();
+ if (page->plugin_data_sub_frame_)
+ page->plugin_data_sub_frame_->ResetPluginData();
page->NotifyPluginsChanged();
}
}
@@ -653,7 +671,8 @@ DEFINE_TRACE(Page) {
visitor->Trace(visual_viewport_);
visitor->Trace(overscroll_controller_);
visitor->Trace(main_frame_);
- visitor->Trace(plugin_data_);
+ visitor->Trace(plugin_data_main_frame_);
+ visitor->Trace(plugin_data_sub_frame_);
visitor->Trace(validation_message_client_);
visitor->Trace(use_counter_);
visitor->Trace(plugins_changed_observers_);
diff --git third_party/WebKit/Source/core/page/Page.h third_party/WebKit/Source/core/page/Page.h
index e644faa..2fe0d37 100644
index f854ba7..0fd317c 100644
--- third_party/WebKit/Source/core/page/Page.h
+++ third_party/WebKit/Source/core/page/Page.h
@@ -132,7 +132,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
@@ -135,7 +135,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
ViewportDescription GetViewportDescription() const;
static void RefreshPlugins();
- PluginData* GetPluginData(SecurityOrigin* main_frame_origin) const;
// Returns the plugin data associated with |main_frame_origin|.
- PluginData* GetPluginData(SecurityOrigin* main_frame_origin);
+ PluginData* GetPluginData(bool is_main_frame,
+ SecurityOrigin* main_frame_origin) const;
+ SecurityOrigin* main_frame_origin);
EditorClient& GetEditorClient() const { return *editor_client_; }
SpellCheckerClient& GetSpellCheckerClient() const {
@@ -324,7 +325,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
// Refreshes the browser-side plugin cache.
static void RefreshPlugins();
@@ -348,7 +349,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
// longer needed.
Member<Frame> main_frame_;
- mutable RefPtr<PluginData> plugin_data_;
+ mutable RefPtr<PluginData> plugin_data_main_frame_;
+ mutable RefPtr<PluginData> plugin_data_sub_frame_;
- Member<PluginData> plugin_data_;
+ Member<PluginData> plugin_data_main_frame_;
+ Member<PluginData> plugin_data_sub_frame_;
EditorClient* const editor_client_;
SpellCheckerClient* const spell_checker_client_;
diff --git third_party/WebKit/Source/platform/plugins/PluginData.cpp third_party/WebKit/Source/platform/plugins/PluginData.cpp
index 03618f6..5ac59e8 100644
index c4fb8d7..1d5945c 100644
--- third_party/WebKit/Source/platform/plugins/PluginData.cpp
+++ third_party/WebKit/Source/platform/plugins/PluginData.cpp
@@ -30,11 +30,12 @@
namespace blink {
-PluginData::PluginData(SecurityOrigin* main_frame_origin)
- : main_frame_origin_(main_frame_origin) {
+PluginData::PluginData(bool is_main_frame, SecurityOrigin* main_frame_origin)
+ : is_main_frame_(is_main_frame),
+ main_frame_origin_(main_frame_origin) {
PluginListBuilder builder(&plugins_);
Platform::Current()->GetPluginList(
- false, WebSecurityOrigin(main_frame_origin_), &builder);
+ false, is_main_frame_, WebSecurityOrigin(main_frame_origin_), &builder);
for (unsigned i = 0; i < plugins_.size(); ++i) {
const PluginInfo& plugin = plugins_[i];
@@ -73,7 +74,8 @@ String PluginData::PluginNameForMimeType(const String& mime_type) const {
@@ -79,16 +79,18 @@ DEFINE_TRACE(PluginData) {
// static
void PluginData::RefreshBrowserSidePluginCache() {
Vector<PluginInfo> plugins;
PluginListBuilder builder(&plugins);
PluginListBuilder builder(nullptr);
- Platform::Current()->GetPluginList(true, WebSecurityOrigin::CreateUnique(),
+ Platform::Current()->GetPluginList(true, true,
+ WebSecurityOrigin::CreateUnique(),
&builder);
}
-void PluginData::UpdatePluginList(SecurityOrigin* main_frame_origin) {
+void PluginData::UpdatePluginList(bool is_main_frame,
+ SecurityOrigin* main_frame_origin) {
ResetPluginData();
main_frame_origin_ = main_frame_origin;
PluginListBuilder builder(&plugins_);
Platform::Current()->GetPluginList(
- false, WebSecurityOrigin(main_frame_origin_), &builder);
+ false, is_main_frame, WebSecurityOrigin(main_frame_origin_), &builder);
for (PluginInfo* plugin_info : plugins_) {
for (MimeClassInfo* mime_class_info : plugin_info->mimes_)
diff --git third_party/WebKit/Source/platform/plugins/PluginData.h third_party/WebKit/Source/platform/plugins/PluginData.h
index cdf3381..671f17c 100644
index 6cb520cd..fdcaf93 100644
--- third_party/WebKit/Source/platform/plugins/PluginData.h
+++ third_party/WebKit/Source/platform/plugins/PluginData.h
@@ -52,8 +52,9 @@ class PLATFORM_EXPORT PluginData : public RefCounted<PluginData> {
WTF_MAKE_NONCOPYABLE(PluginData);
public:
- static PassRefPtr<PluginData> Create(SecurityOrigin* main_frame_origin) {
- return AdoptRef(new PluginData(main_frame_origin));
+ static PassRefPtr<PluginData> Create(bool is_main_frame,
+ SecurityOrigin* main_frame_origin) {
+ return AdoptRef(new PluginData(is_main_frame, main_frame_origin));
}
const Vector<PluginInfo>& Plugins() const { return plugins_; }
@@ -71,12 +72,13 @@ class PLATFORM_EXPORT PluginData : public RefCounted<PluginData> {
static void RefreshBrowserSidePluginCache();
private:
- explicit PluginData(SecurityOrigin* main_frame_origin);
+ explicit PluginData(bool is_main_frame, SecurityOrigin* main_frame_origin);
const PluginInfo* PluginInfoForMimeType(const String& mime_type) const;
Vector<PluginInfo> plugins_;
Vector<MimeClassInfo> mimes_;
Vector<size_t> mime_plugin_indices_;
+ bool is_main_frame_;
RefPtr<SecurityOrigin> main_frame_origin_;
};
@@ -93,7 +93,7 @@ class PLATFORM_EXPORT PluginData final
const HeapVector<Member<PluginInfo>>& Plugins() const { return plugins_; }
const HeapVector<Member<MimeClassInfo>>& Mimes() const { return mimes_; }
const SecurityOrigin* Origin() const { return main_frame_origin_.Get(); }
- void UpdatePluginList(SecurityOrigin* main_frame_origin);
+ void UpdatePluginList(bool is_main_frame, SecurityOrigin* main_frame_origin);
void ResetPluginData();
bool SupportsMimeType(const String& mime_type) const;
diff --git third_party/WebKit/public/platform/Platform.h third_party/WebKit/public/platform/Platform.h
index f7360bf6..f7599cc 100644
index bf92050..6f4949d 100644
--- third_party/WebKit/public/platform/Platform.h
+++ third_party/WebKit/public/platform/Platform.h
@@ -363,6 +363,7 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -379,6 +379,7 @@ class BLINK_PLATFORM_EXPORT Platform {
// satisfy this call. mainFrameOrigin is used by the browser process to
// filter plugins from the plugin list based on content settings.
virtual void GetPluginList(bool refresh,

View File

@@ -1,8 +1,8 @@
diff --git third_party/WebKit/Source/core/exported/WebViewBase.h third_party/WebKit/Source/core/exported/WebViewBase.h
index ed45829..a43bd1e 100644
index 5b6db09f..73c2260 100644
--- third_party/WebKit/Source/core/exported/WebViewBase.h
+++ third_party/WebKit/Source/core/exported/WebViewBase.h
@@ -151,7 +151,7 @@ class WebViewBase : public WebView, public RefCounted<WebViewBase> {
@@ -157,7 +157,7 @@ class WebViewBase : public WebView, public RefCounted<WebViewBase> {
// Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default).
@@ -12,10 +12,10 @@ index ed45829..a43bd1e 100644
virtual GraphicsLayer* RootGraphicsLayer() = 0;
virtual void RegisterViewportLayersWithCompositor() = 0;
diff --git third_party/WebKit/Source/web/ChromeClientImpl.cpp third_party/WebKit/Source/web/ChromeClientImpl.cpp
index 2a35f2c..dded520 100644
index cf36ed93..e508f14 100644
--- third_party/WebKit/Source/web/ChromeClientImpl.cpp
+++ third_party/WebKit/Source/web/ChromeClientImpl.cpp
@@ -935,7 +935,7 @@ PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
@@ -781,7 +781,7 @@ PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
return nullptr;
NotifyPopupOpeningObservers();
@@ -23,12 +23,12 @@ index 2a35f2c..dded520 100644
+ if (web_view_->UseExternalPopupMenus())
return new ExternalPopupMenu(frame, select, *web_view_);
DCHECK(RuntimeEnabledFeatures::pagePopupEnabled());
DCHECK(RuntimeEnabledFeatures::PagePopupEnabled());
diff --git third_party/WebKit/Source/web/WebViewImpl.cpp third_party/WebKit/Source/web/WebViewImpl.cpp
index dccdd58..a2a7ab9 100644
index f7fc7dd..7aa4f01 100644
--- third_party/WebKit/Source/web/WebViewImpl.cpp
+++ third_party/WebKit/Source/web/WebViewImpl.cpp
@@ -355,6 +355,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
@@ -320,6 +320,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client,
enable_fake_page_scale_animation_for_testing_(false),
fake_page_scale_animation_page_scale_factor_(0),
fake_page_scale_animation_use_anchor_(false),
@@ -36,7 +36,7 @@ index dccdd58..a2a7ab9 100644
compositor_device_scale_factor_override_(0),
suppress_next_keypress_event_(false),
ime_accept_events_(true),
@@ -3693,12 +3694,13 @@ void WebViewImpl::MainFrameScrollOffsetChanged() {
@@ -3644,12 +3645,13 @@ void WebViewImpl::MainFrameScrollOffsetChanged() {
dev_tools_emulator_->MainFrameScrollOrScaleChanged();
}
@@ -55,10 +55,10 @@ index dccdd58..a2a7ab9 100644
void WebViewImpl::SetBackgroundColorOverride(WebColor color) {
diff --git third_party/WebKit/Source/web/WebViewImpl.h third_party/WebKit/Source/web/WebViewImpl.h
index ba65d8f..490e451 100644
index 5ea6e7b..5c7b4d8 100644
--- third_party/WebKit/Source/web/WebViewImpl.h
+++ third_party/WebKit/Source/web/WebViewImpl.h
@@ -357,7 +357,8 @@ class WEB_EXPORT WebViewImpl final
@@ -345,7 +345,8 @@ class WEB_EXPORT WebViewImpl final
// Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default).
@@ -68,7 +68,7 @@ index ba65d8f..490e451 100644
bool ShouldAutoResize() const override { return should_auto_resize_; }
@@ -650,6 +651,8 @@ class WEB_EXPORT WebViewImpl final
@@ -637,6 +638,8 @@ class WEB_EXPORT WebViewImpl final
float fake_page_scale_animation_page_scale_factor_;
bool fake_page_scale_animation_use_anchor_;
@@ -78,10 +78,10 @@ index ba65d8f..490e451 100644
TransformationMatrix device_emulation_transform_;
diff --git third_party/WebKit/public/web/WebView.h third_party/WebKit/public/web/WebView.h
index c55118b..56d8896 100644
index 1917509..536c147 100644
--- third_party/WebKit/public/web/WebView.h
+++ third_party/WebKit/public/web/WebView.h
@@ -399,6 +399,7 @@ class WebView : protected WebWidget {
@@ -374,6 +374,7 @@ class WebView : protected WebWidget {
// Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void SetUseExternalPopupMenus(bool);

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/ui/webui/net_internals/net_internals_ui.cc chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index 2fa6e2a..f7bb035 100644
index 028eff9..b8390d2 100644
--- chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -526,8 +526,7 @@ void NetInternalsMessageHandler::OnGetSessionNetworkStats(
@@ -525,8 +525,7 @@ void NetInternalsMessageHandler::OnGetSessionNetworkStats(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
SendJavascriptCommand(
@@ -12,12 +12,12 @@ index 2fa6e2a..f7bb035 100644
}
void NetInternalsMessageHandler::OnGetExtensionInfo(
@@ -623,9 +622,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady(
@@ -622,9 +621,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady(
PrePopulateEventList();
- // Register with network stack to observe events.
- io_thread_->net_log()->DeprecatedAddObserver(
- io_thread_->net_log()->AddObserver(
- this, net::NetLogCaptureMode::IncludeCookiesAndCredentials());
+ net::NetLog* net_log = nullptr;
+ if (io_thread_)
@@ -27,22 +27,19 @@ index 2fa6e2a..f7bb035 100644
+
+ if (net_log) {
+ // Register with network stack to observe events.
+ net_log->DeprecatedAddObserver(
+ net_log->AddObserver(
+ this, net::NetLogCaptureMode::IncludeCookiesAndCredentials());
+ }
}
void NetInternalsMessageHandler::IOThreadImpl::OnGetNetInfo(
@@ -1027,8 +1034,10 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() {
@@ -1026,7 +1033,8 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() {
std::set<net::URLRequestContext*> contexts;
for (const auto& getter : context_getters_)
contexts.insert(getter->GetURLRequestContext());
- contexts.insert(io_thread_->globals()->proxy_script_fetcher_context.get());
- contexts.insert(io_thread_->globals()->system_request_context.get());
+ if (io_thread_) {
+ contexts.insert(io_thread_->globals()->proxy_script_fetcher_context.get());
+ contexts.insert(io_thread_->globals()->system_request_context.get());
+ }
- contexts.insert(io_thread_->globals()->system_request_context);
+ if (io_thread_)
+ contexts.insert(io_thread_->globals()->system_request_context);
// Add entries for ongoing network objects.
CreateNetLogEntriesForActiveObjects(contexts, this);

View File

@@ -1,8 +1,8 @@
diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd
index 3ff9d30..5b53c44 100644
index 7bd88ac..7fe77b3 100644
--- chrome/app/generated_resources.grd
+++ chrome/app/generated_resources.grd
@@ -5158,7 +5158,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
@@ -5045,7 +5045,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.">