Commit b7b145fa authored by Marshall Greenblatt's avatar Marshall Greenblatt

Update to Chromium revision ad51088c (#444943)

parent 9d48a4f8
......@@ -634,13 +634,14 @@ static_library("libcef_static") {
"//media/blink",
"//net",
"//net:net_browser_services",
"//net:net_utility_services",
"//net:net_with_v8",
"//pdf",
"//ppapi/features",
"//printing/features",
"//skia",
"//storage/browser",
"//third_party/brotli",
"//third_party/brotli:dec",
"//third_party/cld",
"//third_party/hunspell",
"//third_party/leveldatabase",
......
......@@ -7,5 +7,5 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{
'chromium_checkout': '3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a',
'chromium_checkout': 'ad51088c0e8776e8dcd963dbe752c4035ba6dab6',
}
......@@ -87,20 +87,30 @@ typedef struct _cef_scheme_registrar_t {
// is. For example, "scheme:///some%20text" will remain the same. Non-standard
// scheme URLs cannot be used as a target for form submission.
//
// If |is_local| is true (1) the scheme will be treated as local (i.e., with
// the same security rules as those applied to "file" URLs). Normal pages
// cannot link to or access local URLs. Also, by default, local URLs can only
// perform XMLHttpRequest calls to the same URL (origin + path) that
// originated the request. To allow XMLHttpRequest calls from a local URL to
// other URLs with the same origin set the
// CefSettings.file_access_from_file_urls_allowed value to true (1). To allow
// XMLHttpRequest calls from a local URL to all origins set the
// CefSettings.universal_access_from_file_urls_allowed value to true (1).
// If |is_local| is true (1) the scheme will be treated with the same security
// rules as those applied to "file" URLs. Normal pages cannot link to or
// access local URLs. Also, by default, local URLs can only perform
// XMLHttpRequest calls to the same URL (origin + path) that originated the
// request. To allow XMLHttpRequest calls from a local URL to other URLs with
// the same origin set the CefSettings.file_access_from_file_urls_allowed
// value to true (1). To allow XMLHttpRequest calls from a local URL to all
// origins set the CefSettings.universal_access_from_file_urls_allowed value
// to true (1).
//
// If |is_display_isolated| is true (1) the scheme will be treated as display-
// isolated. This means that pages cannot display these URLs unless they are
// from the same scheme. For example, pages in another origin cannot create
// iframes or hyperlinks to URLs with this scheme.
// If |is_display_isolated| is true (1) the scheme can only be displayed from
// other content hosted with the same scheme. For example, pages in other
// origins cannot create iframes or hyperlinks to URLs with the scheme. For
// schemes that must be accessible from other schemes set this value to false
// (0), set |is_cors_enabled| to true (1), and use CORS "Access-Control-Allow-
// Origin" headers to further restrict access.
//
// If |is_secure| is true (1) the scheme will be treated with the same
// security rules as those applied to "https" URLs. For example, loading this
// scheme from other secure schemes will not trigger mixed content warnings.
//
// If |is_cors_enabled| is true (1) the scheme that can be sent CORS requests.
// This value should be true (1) in most cases where |is_standard| is true
// (1).
//
// This function may be called on any thread. It should only be called once
// per unique |scheme_name| value. If |scheme_name| is already registered or
......@@ -108,7 +118,7 @@ typedef struct _cef_scheme_registrar_t {
///
int (CEF_CALLBACK *add_custom_scheme)(struct _cef_scheme_registrar_t* self,
const cef_string_t* scheme_name, int is_standard, int is_local,
int is_display_isolated);
int is_display_isolated, int is_secure, int is_cors_enabled);
} cef_scheme_registrar_t;
......
......@@ -111,9 +111,9 @@ class CefSchemeRegistrar : public virtual CefBase {
// as-is. For example, "scheme:///some%20text" will remain the same.
// Non-standard scheme URLs cannot be used as a target for form submission.
//
// If |is_local| is true the scheme will be treated as local (i.e., with the
// same security rules as those applied to "file" URLs). Normal pages cannot
// link to or access local URLs. Also, by default, local URLs can only perform
// If |is_local| is true the scheme will be treated with the same security
// rules as those applied to "file" URLs. Normal pages cannot link to or
// access local URLs. Also, by default, local URLs can only perform
// XMLHttpRequest calls to the same URL (origin + path) that originated the
// request. To allow XMLHttpRequest calls from a local URL to other URLs with
// the same origin set the CefSettings.file_access_from_file_urls_allowed
......@@ -121,10 +121,19 @@ class CefSchemeRegistrar : public virtual CefBase {
// origins set the CefSettings.universal_access_from_file_urls_allowed value
// to true.
//
// If |is_display_isolated| is true the scheme will be treated as display-
// isolated. This means that pages cannot display these URLs unless they are
// from the same scheme. For example, pages in another origin cannot create
// iframes or hyperlinks to URLs with this scheme.
// If |is_display_isolated| is true the scheme can only be displayed from
// other content hosted with the same scheme. For example, pages in other
// origins cannot create iframes or hyperlinks to URLs with the scheme. For
// schemes that must be accessible from other schemes set this value to false,
// set |is_cors_enabled| to true, and use CORS "Access-Control-Allow-Origin"
// headers to further restrict access.
//
// If |is_secure| is true the scheme will be treated with the same security
// rules as those applied to "https" URLs. For example, loading this scheme
// from other secure schemes will not trigger mixed content warnings.
//
// If |is_cors_enabled| is true the scheme that can be sent CORS requests.
// This value should be true in most cases where |is_standard| is true.
//
// This function may be called on any thread. It should only be called once
// per unique |scheme_name| value. If |scheme_name| is already registered or
......@@ -134,7 +143,9 @@ class CefSchemeRegistrar : public virtual CefBase {
virtual bool AddCustomScheme(const CefString& scheme_name,
bool is_standard,
bool is_local,
bool is_display_isolated) =0;
bool is_display_isolated,
bool is_secure,
bool is_cors_enabled) =0;
};
......
......@@ -62,6 +62,7 @@
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/resource_request_info.h"
#include "third_party/WebKit/public/web/WebFindOptions.h"
#include "ui/events/base_event_utils.h"
#if defined(OS_MACOSX)
#include "components/spellcheck/browser/spellcheck_platform.h"
......@@ -1035,7 +1036,10 @@ void CefBrowserHostImpl::SendKeyEvent(const CefKeyEvent& event) {
if (!web_contents() || !platform_delegate_)
return;
content::NativeWebKeyboardEvent web_event;
content::NativeWebKeyboardEvent web_event(
blink::WebInputEvent::Undefined,
blink::WebInputEvent::NoModifiers,
ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
platform_delegate_->TranslateKeyEvent(web_event, event);
platform_delegate_->SendKeyEvent(web_event);
}
......@@ -1214,7 +1218,7 @@ void CefBrowserHostImpl::Reload() {
}
if (web_contents_.get())
web_contents_->GetController().Reload(true);
web_contents_->GetController().Reload(content::ReloadType::NORMAL, true);
} else {
CEF_POST_TASK(CEF_UIT,
base::Bind(&CefBrowserHostImpl::Reload, this));
......@@ -1230,8 +1234,10 @@ void CefBrowserHostImpl::ReloadIgnoreCache() {
return;
}
if (web_contents_.get())
web_contents_->GetController().ReloadBypassingCache(true);
if (web_contents_.get()) {
web_contents_->GetController().Reload(
content::ReloadType::BYPASSING_CACHE, true);
}
} else {
CEF_POST_TASK(CEF_UIT,
base::Bind(&CefBrowserHostImpl::ReloadIgnoreCache, this));
......@@ -2235,10 +2241,12 @@ bool CefBrowserHostImpl::CanDragEnter(
bool CefBrowserHostImpl::ShouldCreateWebContents(
content::WebContents* web_contents,
int route_id,
int main_frame_route_id,
content::SiteInstance* source_site_instance,
int32_t route_id,
int32_t main_frame_route_id,
int32_t main_frame_widget_route_id,
WindowContainerType window_container_type,
const GURL& opener_url,
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
......
......@@ -404,10 +404,12 @@ class CefBrowserHostImpl : public CefBrowserHost,
blink::WebDragOperationsMask operations_allowed) override;
bool ShouldCreateWebContents(
content::WebContents* web_contents,
int route_id,
int main_frame_route_id,
content::SiteInstance* source_site_instance,
int32_t route_id,
int32_t main_frame_route_id,
int32_t main_frame_widget_route_id,
WindowContainerType window_container_type,
const GURL& opener_url,
const std::string& frame_name,
const GURL& target_url,
const std::string& partition_id,
......
......@@ -145,17 +145,16 @@ bool CefBrowserInfoManager::CanCreateWindow(
const blink::WebWindowFeatures& features,
bool user_gesture,
bool opener_suppressed,
int render_process_id,
int opener_render_view_id,
int opener_render_process_id,
int opener_render_frame_id,
bool* no_javascript_access) {
DCHECK_NE(render_process_id, content::ChildProcessHost::kInvalidUniqueID);
DCHECK_GT(opener_render_view_id, 0);
DCHECK_NE(opener_render_process_id,
content::ChildProcessHost::kInvalidUniqueID);
DCHECK_GT(opener_render_frame_id, 0);
bool is_guest_view = false;
CefRefPtr<CefBrowserHostImpl> browser = extensions::GetOwnerBrowserForView(
render_process_id, opener_render_view_id, &is_guest_view);
CefRefPtr<CefBrowserHostImpl> browser = extensions::GetOwnerBrowserForFrame(
opener_render_process_id, opener_render_frame_id, &is_guest_view);
DCHECK(browser.get());
if (!browser.get()) {
// Cancel the popup.
......@@ -190,8 +189,7 @@ bool CefBrowserInfoManager::CanCreateWindow(
auto pending_popup = base::MakeUnique<CefBrowserInfoManager::PendingPopup>();
pending_popup->step = CefBrowserInfoManager::PendingPopup::CAN_CREATE_WINDOW;
pending_popup->opener_process_id = render_process_id;
pending_popup->opener_view_id = opener_render_view_id;
pending_popup->opener_process_id = opener_render_process_id;
pending_popup->opener_frame_id = opener_render_frame_id;
pending_popup->target_url = target_url;
pending_popup->target_frame_name = frame_name;
......@@ -250,7 +248,7 @@ bool CefBrowserInfoManager::CanCreateWindow(
// Filtering needs to be done on the UI thread.
CEF_POST_TASK(CEF_UIT,
base::Bind(FilterPendingPopupURL, render_process_id,
base::Bind(FilterPendingPopupURL, opener_render_process_id,
base::Passed(&pending_popup)));
}
......@@ -262,10 +260,11 @@ void CefBrowserInfoManager::ShouldCreateWebContents(
const GURL& target_url,
content::WebContentsView** view,
content::RenderViewHostDelegateView** delegate_view) {
content::RenderFrameHost* host =
web_contents->GetRenderViewHost()->GetMainFrame();
std::unique_ptr<CefBrowserInfoManager::PendingPopup> pending_popup =
PopPendingPopup(CefBrowserInfoManager::PendingPopup::CAN_CREATE_WINDOW,
web_contents->GetRenderViewHost()->GetProcess()->GetID(),
web_contents->GetRenderViewHost()->GetRoutingID(),
host->GetProcess()->GetID(), host->GetRoutingID(),
target_url);
DCHECK(pending_popup.get());
DCHECK(pending_popup->platform_delegate.get());
......@@ -290,11 +289,12 @@ void CefBrowserInfoManager::WebContentsCreated(
DCHECK(source_contents);
DCHECK(new_contents);
content::RenderFrameHost* host =
source_contents->GetRenderViewHost()->GetMainFrame();
std::unique_ptr<CefBrowserInfoManager::PendingPopup> pending_popup =
PopPendingPopup(
CefBrowserInfoManager::PendingPopup::SHOULD_CREATE_WEB_CONTENTS,
source_contents->GetRenderViewHost()->GetProcess()->GetID(),
source_contents->GetRenderViewHost()->GetRoutingID(),
host->GetProcess()->GetID(), host->GetRoutingID(),
target_url);
DCHECK(pending_popup.get());
DCHECK(pending_popup->platform_delegate.get());
......@@ -442,10 +442,10 @@ void CefBrowserInfoManager::RenderProcessHostDestroyed(
}
void CefBrowserInfoManager::FilterPendingPopupURL(
int render_process_id,
int opener_process_id,
std::unique_ptr<CefBrowserInfoManager::PendingPopup> pending_popup) {
content::RenderProcessHost* host =
content::RenderProcessHost::FromID(render_process_id);
content::RenderProcessHost::FromID(opener_process_id);
DCHECK(host);
host->FilterURL(false, &pending_popup->target_url);
......@@ -461,10 +461,10 @@ std::unique_ptr<CefBrowserInfoManager::PendingPopup>
CefBrowserInfoManager::PopPendingPopup(
PendingPopup::Step step,
int opener_process_id,
int opener_view_id,
int opener_frame_id,
const GURL& target_url) {
DCHECK_GT(opener_process_id, 0);
DCHECK_GT(opener_view_id, 0);
DCHECK_GT(opener_frame_id, 0);
base::AutoLock lock_scope(pending_popup_lock_);
......@@ -473,7 +473,7 @@ std::unique_ptr<CefBrowserInfoManager::PendingPopup>
PendingPopup* popup = *it;
if (popup->step == step &&
popup->opener_process_id == opener_process_id &&
popup->opener_view_id == opener_view_id &&
popup->opener_frame_id == opener_frame_id &&
popup->target_url == target_url) {
pending_popup_list_.weak_erase(it);
return base::WrapUnique(popup);
......
......@@ -67,8 +67,7 @@ class CefBrowserInfoManager : public content::RenderProcessHostObserver {
const blink::WebWindowFeatures& features,
bool user_gesture,
bool opener_suppressed,
int render_process_id,
int opener_render_view_id,
int opener_render_process_id,
int opener_render_frame_id,
bool* no_javascript_access);
......@@ -113,7 +112,7 @@ class CefBrowserInfoManager : public content::RenderProcessHostObserver {
// Retrieves the CefBrowserInfo matching the specified IDs or an empty
// pointer if no match is found. It is allowed to add new callers of this
// method but consider using CefBrowserHostImpl::GetBrowserFor[View|Frame]()
// or extensions::GetOwnerBrowserForView() instead.
// or extensions::GetOwnerBrowserForFrame() instead.
// |is_guest_view| will be set to true if the IDs match a guest view
// associated with the returned browser info instead of the browser itself.
scoped_refptr<CefBrowserInfo> GetBrowserInfoForView(int render_process_id,
......@@ -157,8 +156,7 @@ class CefBrowserInfoManager : public content::RenderProcessHostObserver {
// |target_url| will be empty if a popup is created via window.open() and
// never navigated. For example: javascript:window.open();
int opener_process_id;
int opener_view_id;
int64 opener_frame_id;
int opener_frame_id;
GURL target_url;
std::string target_frame_name;
......@@ -176,7 +174,7 @@ class CefBrowserInfoManager : public content::RenderProcessHostObserver {
// URIs, rewrites the URL to "about:blank". We need to apply the same filter
// otherwise ShouldCreateWebContents will fail to retrieve the PopupInfo.
static void FilterPendingPopupURL(
int render_process_id,
int opener_process_id,
std::unique_ptr<PendingPopup> pending_popup);
// Manage pending popups.
......@@ -184,7 +182,7 @@ class CefBrowserInfoManager : public content::RenderProcessHostObserver {
std::unique_ptr<PendingPopup> PopPendingPopup(
PendingPopup::Step step,
int opener_process_id,
int opener_view_id,
int opener_frame_id,
const GURL& target_url);
// Retrieves the BrowserInfo matching the specified IDs. If both sets are
......
......@@ -47,6 +47,7 @@
#include "ui/views/widget/desktop_aura/desktop_screen.h"
#if defined(OS_WIN)
#include "libcef/common/crash_reporting_win.h"
#include "ui/base/cursor/cursor_loader_win.h"
#endif
#endif // defined(USE_AURA)
......@@ -168,6 +169,10 @@ int CefBrowserMainParts::PreCreateThreads() {
}
void CefBrowserMainParts::PreMainMessageLoopRun() {
#if defined(OS_WIN)
crash_reporting_win::BlockUntilHandlerStarted();
#endif
if (extensions::ExtensionsEnabled()) {
// Initialize extension global objects before creating the global
// BrowserContext.
......
......@@ -10,7 +10,7 @@ namespace browser_util {
bool GetCefKeyEvent(const content::NativeWebKeyboardEvent& event,
CefKeyEvent& cef_event) {
switch (event.type) {
switch (event.type()) {
case blink::WebKeyboardEvent::RawKeyDown:
cef_event.type = KEYEVENT_RAWKEYDOWN;
break;
......@@ -28,15 +28,15 @@ bool GetCefKeyEvent(const content::NativeWebKeyboardEvent& event,
}
cef_event.modifiers = 0;
if (event.modifiers & blink::WebKeyboardEvent::ShiftKey)
if (event.modifiers() & blink::WebKeyboardEvent::ShiftKey)
cef_event.modifiers |= EVENTFLAG_SHIFT_DOWN;
if (event.modifiers & blink::WebKeyboardEvent::ControlKey)
if (event.modifiers() & blink::WebKeyboardEvent::ControlKey)
cef_event.modifiers |= EVENTFLAG_CONTROL_DOWN;
if (event.modifiers & blink::WebKeyboardEvent::AltKey)
if (event.modifiers() & blink::WebKeyboardEvent::AltKey)
cef_event.modifiers |= EVENTFLAG_ALT_DOWN;
if (event.modifiers & blink::WebKeyboardEvent::MetaKey)
if (event.modifiers() & blink::WebKeyboardEvent::MetaKey)
cef_event.modifiers |= EVENTFLAG_COMMAND_DOWN;
if (event.modifiers & blink::WebKeyboardEvent::IsKeyPad)
if (event.modifiers() & blink::WebKeyboardEvent::IsKeyPad)
cef_event.modifiers |= EVENTFLAG_IS_KEY_PAD;
cef_event.windows_key_code = event.windowsKeyCode;
......
......@@ -98,7 +98,7 @@ metrics::MetricsService* ChromeBrowserProcessStub::metrics_service() {
return NULL;
}
rappor::RapporService* ChromeBrowserProcessStub::rappor_service() {
rappor::RapporServiceImpl* ChromeBrowserProcessStub::rappor_service() {
NOTREACHED();
return NULL;
}
......@@ -322,7 +322,7 @@ bool ChromeBrowserProcessStub::created_local_state() const {
return false;
}
#if defined(ENABLE_WEBRTC)
#if BUILDFLAG(ENABLE_WEBRTC)
WebRtcLogUploader* ChromeBrowserProcessStub::webrtc_log_uploader() {
NOTREACHED();
return NULL;
......@@ -351,7 +351,8 @@ memory::TabManager* ChromeBrowserProcessStub::GetTabManager() {
return NULL;
}
PhysicalWebDataSource* ChromeBrowserProcessStub::GetPhysicalWebDataSource() {
physical_web::PhysicalWebDataSource*
ChromeBrowserProcessStub::GetPhysicalWebDataSource() {
NOTREACHED();
return NULL;
}
......
......@@ -16,6 +16,7 @@
#include "chrome/browser/extensions/event_router_forwarder.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "base/compiler_specific.h"
#include "media/media_features.h"
class ChromeProfileManagerStub;
......@@ -43,7 +44,7 @@ class ChromeBrowserProcessStub : public BrowserProcess,
metrics_services_manager::MetricsServicesManager*
GetMetricsServicesManager() override;
metrics::MetricsService* metrics_service() override;
rappor::RapporService* rappor_service() override;
rappor::RapporServiceImpl* rappor_service() override;
IOThread* io_thread() override;
WatchDogThread* watchdog_thread() override;
ProfileManager* profile_manager() override;
......@@ -100,7 +101,7 @@ class ChromeBrowserProcessStub : public BrowserProcess,
MediaFileSystemRegistry*
media_file_system_registry() override;
bool created_local_state() const override;
#if defined(ENABLE_WEBRTC)
#if BUILDFLAG(ENABLE_WEBRTC)
WebRtcLogUploader* webrtc_log_uploader() override;
#endif
network_time::NetworkTimeTracker* network_time_tracker() override;
......@@ -108,7 +109,7 @@ class ChromeBrowserProcessStub : public BrowserProcess,
shell_integration::DefaultWebClientState
CachedDefaultWebClientState() override;
memory::TabManager* GetTabManager() override;
PhysicalWebDataSource* GetPhysicalWebDataSource() override;
physical_web::PhysicalWebDataSource* GetPhysicalWebDataSource() override;
// BrowserContextIncognitoHelper implementation.
content::BrowserContext* GetBrowserContextRedirectedInIncognito(
......
......@@ -284,8 +284,8 @@ class CefQuotaPermissionContext : public content::QuotaPermissionContext {
bool handled = false;
CefRefPtr<CefBrowserHostImpl> browser =
CefBrowserHostImpl::GetBrowserForView(render_process_id,
params.render_view_id);
CefBrowserHostImpl::GetBrowserForFrame(render_process_id,
params.render_frame_id);
if (browser.get()) {
CefRefPtr<CefClient> client = browser->GetClient();
if (client.get()) {
......@@ -593,8 +593,7 @@ void CefContentBrowserClient::SiteInstanceDeleting(
}
std::unique_ptr<base::Value>
CefContentBrowserClient::GetServiceManifestOverlay(
const std::string& name) {
CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
int id = -1;
if (name == content::mojom::kBrowserServiceName)
id = IDR_CEF_BROWSER_MANIFEST_OVERLAY;
......@@ -820,6 +819,8 @@ void CefContentBrowserClient::SelectClientCertificate(
}
bool CefContentBrowserClient::CanCreateWindow(
int opener_render_process_id,
int opener_render_frame_id,
const GURL& opener_url,
const GURL& opener_top_level_frame_url,
const GURL& source_origin,
......@@ -832,17 +833,14 @@ bool CefContentBrowserClient::CanCreateWindow(
bool user_gesture,
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
int opener_render_view_id,
int opener_render_frame_id,
bool* no_javascript_access) {
CEF_REQUIRE_IOT();
*no_javascript_access = false;
return CefBrowserInfoManager::GetInstance()->CanCreateWindow(
target_url, referrer, frame_name, disposition, features, user_gesture,
opener_suppressed, render_process_id, opener_render_view_id,
opener_render_frame_id, no_javascript_access);
opener_suppressed, opener_render_process_id, opener_render_frame_id,
no_javascript_access);
}
void CefContentBrowserClient::ResourceDispatcherHostCreated() {
......@@ -855,6 +853,8 @@ void CefContentBrowserClient::ResourceDispatcherHostCreated() {
void CefContentBrowserClient::OverrideWebkitPrefs(
content::RenderViewHost* rvh,
content::WebPreferences* prefs) {
// Using RVH instead of RFH here because rvh->GetMainFrame() may be nullptr
// when this method is called.
renderer_prefs::PopulateWebPreferences(rvh, *prefs);
if (rvh->GetWidget()->GetView()) {
......@@ -884,12 +884,12 @@ content::DevToolsManagerDelegate*
return new CefDevToolsManagerDelegate();
}
ScopedVector<content::NavigationThrottle>
std::vector<std::unique_ptr<content::NavigationThrottle>>
CefContentBrowserClient::CreateThrottlesForNavigation(
content::NavigationHandle* navigation_handle) {
CEF_REQUIRE_UIT();
ScopedVector<content::NavigationThrottle> throttles;
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
const bool is_main_frame = navigation_handle->IsInMainFrame();
......@@ -919,13 +919,13 @@ CefContentBrowserClient::CreateThrottlesForNavigation(
frame_id = CefFrameHostImpl::kInvalidFrameId;
}
content::NavigationThrottle* throttle =
new navigation_interception::InterceptNavigationThrottle(
std::unique_ptr<content::NavigationThrottle> throttle =
base::MakeUnique<navigation_interception::InterceptNavigationThrottle>(
navigation_handle,
base::Bind(&NavigationOnUIThread, is_main_frame, frame_id,
parent_frame_id),
true);
throttles.push_back(throttle);
throttles.push_back(std::move(throttle));
return throttles;
}
......
......@@ -47,7 +47,7 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
void SiteInstanceGotProcess(content::SiteInstance* site_instance) override;
void SiteInstanceDeleting(content::SiteInstance* site_instance) override;
std::unique_ptr<base::Value> GetServiceManifestOverlay(
const std::string& name) override;
base::StringPiece name) override;
void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
int child_process_id) override;
content::QuotaPermissionContext*
......@@ -70,7 +70,9 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
content::WebContents* web_contents,
net::SSLCertRequestInfo* cert_request_info,
std::unique_ptr<content::ClientCertificateDelegate> delegate) override;
bool CanCreateWindow(const GURL& opener_url,
bool CanCreateWindow(int opener_render_process_id,
int opener_render_frame_id,
const GURL& opener_url,
const GURL& opener_top_level_frame_url,
const GURL& source_origin,
WindowContainerType container_type,
......@@ -82,9 +84,6 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
bool user_gesture,
bool opener_suppressed,
content::ResourceContext* context,
int render_process_id,
int opener_render_view_id,
int opener_render_frame_id,
bool* no_javascript_access) override;
void ResourceDispatcherHostCreated() override;
void OverrideWebkitPrefs(content::RenderViewHost* rvh,
......@@ -95,7 +94,8 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override;
content::DevToolsManagerDelegate* GetDevToolsManagerDelegate()
override;
ScopedVector<content::NavigationThrottle> CreateThrottlesForNavigation(
std::vector<std::unique_ptr<content::NavigationThrottle>>
CreateThrottlesForNavigation(
content::NavigationHandle* navigation_handle) override;
#if defined(OS_POSIX) && !defined(OS_MACOSX)
......
......@@ -60,8 +60,7 @@ class CefForceShutdown {
}
} g_force_shutdown;
#if defined(OS_WIN)
#if defined(ARCH_CPU_X86_64)
#if defined(OS_WIN) && defined(ARCH_CPU_X86_64)
// VS2013 only checks the existence of FMA3 instructions, not the enabled-ness
// of them at the OS level (this is fixed in VS2015). We force off usage of
// FMA3 instructions in the CRT to avoid using that path and hitting illegal
......@@ -73,18 +72,7 @@ void DisableFMA3() {
disabled = true;
_set_FMA3_enable(0);
}
#endif // defined(ARCH_CPU_X86_64)