Update to Chromium revision 59d44948 (#323860)

This commit is contained in:
Marshall Greenblatt 2015-04-20 14:11:11 +03:00
parent 0369063810
commit 1c6da5fe86
38 changed files with 491 additions and 429 deletions

View File

@ -7,5 +7,5 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{ {
'chromium_checkout': 'fea846358e7c2efe04bdeb4b01ecccee6efe7759', 'chromium_checkout': '59d4494849b405682265ed5d3f5164573b9a939b',
} }

15
cef.gyp
View File

@ -762,6 +762,7 @@
'action_name': 'repack_cef_100_percent_pack', 'action_name': 'repack_cef_100_percent_pack',
'variables': { 'variables': {
'pak_inputs': [ 'pak_inputs': [
'<(SHARED_INTERMEDIATE_DIR)/blink/public/resources/blink_image_resources_100_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/components/components_resources_100_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/components/components_resources_100_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/content/app/resources/content_resources_100_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/content/app/resources/content_resources_100_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/ui/resources/ui_resources_100_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/ui/resources/ui_resources_100_percent.pak',
@ -774,6 +775,7 @@
'action_name': 'repack_cef_200_percent_pack', 'action_name': 'repack_cef_200_percent_pack',
'variables': { 'variables': {
'pak_inputs': [ 'pak_inputs': [
'<(SHARED_INTERMEDIATE_DIR)/blink/public/resources/blink_image_resources_200_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/components/components_resources_200_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/components/components_resources_200_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/content/app/resources/content_resources_200_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/content/app/resources/content_resources_200_percent.pak',
'<(SHARED_INTERMEDIATE_DIR)/ui/resources/ui_resources_200_percent.pak', '<(SHARED_INTERMEDIATE_DIR)/ui/resources/ui_resources_200_percent.pak',
@ -860,6 +862,9 @@
'<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', '<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'<(DEPTH)/cc/blink/cc_blink.gyp:cc_blink', '<(DEPTH)/cc/blink/cc_blink.gyp:cc_blink',
'<(DEPTH)/cc/cc.gyp:cc', '<(DEPTH)/cc/cc.gyp:cc',
# Generate chrome/common/safe_browsing/csd.pb.h required by
# zip_analyzer_results.h via chrome_utility_messages.h
'<(DEPTH)/chrome/chrome.gyp:safe_browsing_proto',
'<(DEPTH)/components/components.gyp:crash_component_breakpad_mac_to_be_deleted', '<(DEPTH)/components/components.gyp:crash_component_breakpad_mac_to_be_deleted',
'<(DEPTH)/components/components.gyp:keyed_service_content', '<(DEPTH)/components/components.gyp:keyed_service_content',
'<(DEPTH)/components/components.gyp:keyed_service_core', '<(DEPTH)/components/components.gyp:keyed_service_core',
@ -976,6 +981,8 @@
'libcef/browser/pepper/pepper_flash_browser_host.cc', 'libcef/browser/pepper/pepper_flash_browser_host.cc',
'libcef/browser/pepper/pepper_flash_browser_host.h', 'libcef/browser/pepper/pepper_flash_browser_host.h',
'libcef/browser/pepper/device_id_fetcher.cc', 'libcef/browser/pepper/device_id_fetcher.cc',
'libcef/browser/permission_manager.cc',
'libcef/browser/permission_manager.h',
'libcef/browser/print_settings_impl.cc', 'libcef/browser/print_settings_impl.cc',
'libcef/browser/print_settings_impl.h', 'libcef/browser/print_settings_impl.h',
'libcef/browser/printing/printing_message_filter.cc', 'libcef/browser/printing/printing_message_filter.cc',
@ -1170,6 +1177,12 @@
'<(DEPTH)/chrome/browser/browser_process.cc', '<(DEPTH)/chrome/browser/browser_process.cc',
'<(DEPTH)/chrome/browser/browser_process.h', '<(DEPTH)/chrome/browser/browser_process.h',
# Include sources for spell checking support. # Include sources for spell checking support.
'<(DEPTH)/chrome/browser/spellchecker/feedback.cc',
'<(DEPTH)/chrome/browser/spellchecker/feedback.h',
'<(DEPTH)/chrome/browser/spellchecker/feedback_sender.cc',
'<(DEPTH)/chrome/browser/spellchecker/feedback_sender.h',
'<(DEPTH)/chrome/browser/spellchecker/misspelling.cc',
'<(DEPTH)/chrome/browser/spellchecker/misspelling.h',
'<(DEPTH)/chrome/browser/spellchecker/spellcheck_action.cc', '<(DEPTH)/chrome/browser/spellchecker/spellcheck_action.cc',
'<(DEPTH)/chrome/browser/spellchecker/spellcheck_action.h', '<(DEPTH)/chrome/browser/spellchecker/spellcheck_action.h',
'<(DEPTH)/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc', '<(DEPTH)/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc',
@ -1186,6 +1199,8 @@
'<(DEPTH)/chrome/browser/spellchecker/spellcheck_service.h', '<(DEPTH)/chrome/browser/spellchecker/spellcheck_service.h',
'<(DEPTH)/chrome/browser/spellchecker/spelling_service_client.cc', '<(DEPTH)/chrome/browser/spellchecker/spelling_service_client.cc',
'<(DEPTH)/chrome/browser/spellchecker/spelling_service_client.h', '<(DEPTH)/chrome/browser/spellchecker/spelling_service_client.h',
'<(DEPTH)/chrome/browser/spellchecker/word_trimmer.cc',
'<(DEPTH)/chrome/browser/spellchecker/word_trimmer.h',
'<(DEPTH)/chrome/common/chrome_constants.cc', '<(DEPTH)/chrome/common/chrome_constants.cc',
'<(DEPTH)/chrome/common/chrome_constants.h', '<(DEPTH)/chrome/common/chrome_constants.h',
'<(DEPTH)/chrome/common/spellcheck_common.cc', '<(DEPTH)/chrome/common/spellcheck_common.cc',

View File

@ -9,6 +9,7 @@
#include "libcef/browser/content_browser_client.h" #include "libcef/browser/content_browser_client.h"
#include "libcef/browser/context.h" #include "libcef/browser/context.h"
#include "libcef/browser/download_manager_delegate.h" #include "libcef/browser/download_manager_delegate.h"
#include "libcef/browser/permission_manager.h"
#include "libcef/browser/thread_util.h" #include "libcef/browser/thread_util.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
@ -197,6 +198,12 @@ content::SSLHostStateDelegate*
return NULL; return NULL;
} }
content::PermissionManager* CefBrowserContextImpl::GetPermissionManager() {
if (!permission_manager_.get())
permission_manager_.reset(new CefPermissionManager());
return permission_manager_.get();
}
bool CefBrowserContextImpl::IsProxy() const { bool CefBrowserContextImpl::IsProxy() const {
return false; return false;
} }

View File

@ -58,6 +58,7 @@ class CefBrowserContextImpl : public CefBrowserContext {
storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override; storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override;
content::PushMessagingService* GetPushMessagingService() override; content::PushMessagingService* GetPushMessagingService() override;
content::SSLHostStateDelegate* GetSSLHostStateDelegate() override; content::SSLHostStateDelegate* GetSSLHostStateDelegate() override;
content::PermissionManager* GetPermissionManager() override;
// CefBrowserContext methods. // CefBrowserContext methods.
bool IsProxy() const override; bool IsProxy() const override;
@ -95,6 +96,7 @@ class CefBrowserContextImpl : public CefBrowserContext {
scoped_ptr<CefDownloadManagerDelegate> download_manager_delegate_; scoped_ptr<CefDownloadManagerDelegate> download_manager_delegate_;
scoped_refptr<CefURLRequestContextGetterImpl> url_request_getter_; scoped_refptr<CefURLRequestContextGetterImpl> url_request_getter_;
scoped_ptr<content::PermissionManager> permission_manager_;
DISALLOW_COPY_AND_ASSIGN(CefBrowserContextImpl); DISALLOW_COPY_AND_ASSIGN(CefBrowserContextImpl);
}; };

View File

@ -95,6 +95,10 @@ content::SSLHostStateDelegate*
return parent_->GetSSLHostStateDelegate(); return parent_->GetSSLHostStateDelegate();
} }
content::PermissionManager* CefBrowserContextProxy::GetPermissionManager() {
return parent_->GetPermissionManager();
}
bool CefBrowserContextProxy::IsProxy() const { bool CefBrowserContextProxy::IsProxy() const {
return true; return true;
} }

View File

@ -49,6 +49,7 @@ class CefBrowserContextProxy : public CefBrowserContext {
storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override; storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override;
content::PushMessagingService* GetPushMessagingService() override; content::PushMessagingService* GetPushMessagingService() override;
content::SSLHostStateDelegate* GetSSLHostStateDelegate() override; content::SSLHostStateDelegate* GetSSLHostStateDelegate() override;
content::PermissionManager* GetPermissionManager() override;
// CefBrowserContext methods. // CefBrowserContext methods.
bool IsProxy() const override; bool IsProxy() const override;

View File

@ -1620,9 +1620,6 @@ void CefBrowserHostImpl::LoadURL(
return; return;
} }
// Update the loading URL.
OnLoadingURLChange(gurl);
web_contents_->GetController().LoadURL( web_contents_->GetController().LoadURL(
gurl, gurl,
referrer, referrer,
@ -1786,11 +1783,6 @@ int CefBrowserHostImpl::browser_id() const {
return browser_info_->browser_id(); return browser_info_->browser_id();
} }
GURL CefBrowserHostImpl::GetLoadingURL() {
base::AutoLock lock_scope(state_lock_);
return loading_url_;
}
void CefBrowserHostImpl::OnSetFocus(cef_focus_source_t source) { void CefBrowserHostImpl::OnSetFocus(cef_focus_source_t source) {
if (CEF_CURRENTLY_ON_UIT()) { if (CEF_CURRENTLY_ON_UIT()) {
// SetFocus() might be called while inside the OnSetFocus() callback. If so, // SetFocus() might be called while inside the OnSetFocus() callback. If so,
@ -2641,7 +2633,6 @@ bool CefBrowserHostImpl::OnMessageReceived(const IPC::Message& message) {
IPC_BEGIN_MESSAGE_MAP(CefBrowserHostImpl, message) IPC_BEGIN_MESSAGE_MAP(CefBrowserHostImpl, message)
IPC_MESSAGE_HANDLER(CefHostMsg_FrameIdentified, OnFrameIdentified) IPC_MESSAGE_HANDLER(CefHostMsg_FrameIdentified, OnFrameIdentified)
IPC_MESSAGE_HANDLER(CefHostMsg_DidFinishLoad, OnDidFinishLoad) IPC_MESSAGE_HANDLER(CefHostMsg_DidFinishLoad, OnDidFinishLoad)
IPC_MESSAGE_HANDLER(CefHostMsg_LoadingURLChange, OnLoadingURLChange)
IPC_MESSAGE_HANDLER(CefHostMsg_Request, OnRequest) IPC_MESSAGE_HANDLER(CefHostMsg_Request, OnRequest)
IPC_MESSAGE_HANDLER(CefHostMsg_Response, OnResponse) IPC_MESSAGE_HANDLER(CefHostMsg_Response, OnResponse)
IPC_MESSAGE_HANDLER(CefHostMsg_ResponseAck, OnResponseAck) IPC_MESSAGE_HANDLER(CefHostMsg_ResponseAck, OnResponseAck)
@ -2691,11 +2682,6 @@ void CefBrowserHostImpl::OnDidFinishLoad(int64 frame_id,
OnLoadEnd(frame, validated_url, http_status_code); OnLoadEnd(frame, validated_url, http_status_code);
} }
void CefBrowserHostImpl::OnLoadingURLChange(const GURL& loading_url) {
base::AutoLock lock_scope(state_lock_);
loading_url_ = loading_url;
}
void CefBrowserHostImpl::OnRequest(const Cef_Request_Params& params) { void CefBrowserHostImpl::OnRequest(const Cef_Request_Params& params) {
bool success = false; bool success = false;
std::string response; std::string response;

View File

@ -307,9 +307,6 @@ class CefBrowserHostImpl : public CefBrowserHost,
CefWindowX11* window_x11() const { return window_x11_; } CefWindowX11* window_x11() const { return window_x11_; }
#endif #endif
// Returns the URL that is currently loading (or loaded) in the main frame.
GURL GetLoadingURL();
#if defined(OS_WIN) #if defined(OS_WIN)
static void RegisterWindowClass(); static void RegisterWindowClass();
#endif #endif
@ -478,7 +475,6 @@ class CefBrowserHostImpl : public CefBrowserHost,
const GURL& validated_url, const GURL& validated_url,
bool is_main_frame, bool is_main_frame,
int http_status_code); int http_status_code);
void OnLoadingURLChange(const GURL& pending_url);
void OnRequest(const Cef_Request_Params& params); void OnRequest(const Cef_Request_Params& params);
void OnResponse(const Cef_Response_Params& params); void OnResponse(const Cef_Response_Params& params);
void OnResponseAck(int request_id); void OnResponseAck(int request_id);
@ -617,7 +613,6 @@ class CefBrowserHostImpl : public CefBrowserHost,
bool can_go_back_; bool can_go_back_;
bool can_go_forward_; bool can_go_forward_;
bool has_document_; bool has_document_;
GURL loading_url_;
// Messages we queue while waiting for the RenderView to be ready. We queue // Messages we queue while waiting for the RenderView to be ready. We queue
// them here instead of in the RenderProcessHost to ensure that they're sent // them here instead of in the RenderProcessHost to ensure that they're sent

View File

@ -37,7 +37,6 @@
#include "content/public/browser/access_token_store.h" #include "content/public/browser/access_token_store.h"
#include "content/public/browser/browser_url_handler.h" #include "content/public/browser/browser_url_handler.h"
#include "content/public/browser/child_process_security_policy.h" #include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/geolocation_provider.h"
#include "content/public/browser/plugin_service_filter.h" #include "content/public/browser/plugin_service_filter.h"
#include "content/public/browser/quota_permission_context.h" #include "content/public/browser/quota_permission_context.h"
#include "content/public/browser/render_process_host.h" #include "content/public/browser/render_process_host.h"
@ -198,42 +197,6 @@ class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
DISALLOW_COPY_AND_ASSIGN(CefAllowCertificateErrorCallbackImpl); DISALLOW_COPY_AND_ASSIGN(CefAllowCertificateErrorCallbackImpl);
}; };
class CefGeolocationCallbackImpl : public CefGeolocationCallback {
public:
typedef base::Callback<void(content::PermissionStatus)> CallbackType;
explicit CefGeolocationCallbackImpl(const CallbackType& callback)
: callback_(callback) {}
void Continue(bool allow) override {
if (CEF_CURRENTLY_ON_UIT()) {
if (!callback_.is_null()) {
if (allow) {
content::GeolocationProvider::GetInstance()->
UserDidOptIntoLocationServices();
}
callback_.Run(allow ? content::PERMISSION_STATUS_GRANTED :
content::PERMISSION_STATUS_DENIED);
callback_.Reset();
}
} else {
CEF_POST_TASK(CEF_UIT,
base::Bind(&CefGeolocationCallbackImpl::Continue, this, allow));
}
}
void Disconnect() {
callback_.Reset();
}
private:
CallbackType callback_;
IMPLEMENT_REFCOUNTING(CefGeolocationCallbackImpl);
DISALLOW_COPY_AND_ASSIGN(CefGeolocationCallbackImpl);
};
class CefQuotaPermissionContext : public content::QuotaPermissionContext { class CefQuotaPermissionContext : public content::QuotaPermissionContext {
public: public:
CefQuotaPermissionContext() { CefQuotaPermissionContext() {
@ -787,75 +750,6 @@ content::AccessTokenStore* CefContentBrowserClient::CreateAccessTokenStore() {
browser_main_parts_->browser_context()->request_context().get()); browser_main_parts_->browser_context()->request_context().get());
} }
void CefContentBrowserClient::RequestPermission(
content::PermissionType permission,
content::WebContents* web_contents,
int bridge_id,
const GURL& requesting_frame,
bool user_gesture,
const base::Callback<void(content::PermissionStatus)>& result_callback) {
CEF_REQUIRE_UIT();
if (permission != content::PermissionType::PERMISSION_GEOLOCATION) {
result_callback.Run(content::PERMISSION_STATUS_DENIED);
return;
}
bool proceed = false;
CefRefPtr<CefBrowserHostImpl> browser =
CefBrowserHostImpl::GetBrowserForContents(web_contents);
if (browser.get()) {
CefRefPtr<CefClient> client = browser->GetClient();
if (client.get()) {
CefRefPtr<CefGeolocationHandler> handler =
client->GetGeolocationHandler();
if (handler.get()) {
CefRefPtr<CefGeolocationCallbackImpl> callbackImpl(
new CefGeolocationCallbackImpl(result_callback));
// Notify the handler.
proceed = handler->OnRequestGeolocationPermission(
browser.get(), requesting_frame.spec(), bridge_id,
callbackImpl.get());
if (!proceed)
callbackImpl->Disconnect();
}
}
}
if (!proceed) {
// Disallow geolocation access by default.
result_callback.Run(content::PERMISSION_STATUS_DENIED);
}
}
void CefContentBrowserClient::CancelPermissionRequest(
content::PermissionType permission,
content::WebContents* web_contents,
int bridge_id,
const GURL& requesting_frame) {
CEF_REQUIRE_UIT();
if (permission != content::PermissionType::PERMISSION_GEOLOCATION)
return;
CefRefPtr<CefBrowserHostImpl> browser =
CefBrowserHostImpl::GetBrowserForContents(web_contents);
if (browser.get()) {
CefRefPtr<CefClient> client = browser->GetClient();
if (client.get()) {
CefRefPtr<CefGeolocationHandler> handler =
client->GetGeolocationHandler();
if (handler.get()) {
handler->OnCancelGeolocationPermission(browser.get(),
requesting_frame.spec(),
bridge_id);
}
}
}
}
bool CefContentBrowserClient::CanCreateWindow( bool CefContentBrowserClient::CanCreateWindow(
const GURL& opener_url, const GURL& opener_url,
const GURL& opener_top_level_frame_url, const GURL& opener_top_level_frame_url,

View File

@ -106,18 +106,6 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
const base::Callback<void(bool)>& callback, const base::Callback<void(bool)>& callback,
content::CertificateRequestResultType* result) override; content::CertificateRequestResultType* result) override;
content::AccessTokenStore* CreateAccessTokenStore() override; content::AccessTokenStore* CreateAccessTokenStore() override;
void RequestPermission(
content::PermissionType permission,
content::WebContents* web_contents,
int bridge_id,
const GURL& requesting_frame,
bool user_gesture,
const base::Callback<void(content::PermissionStatus)>& result_callback)
override;
void CancelPermissionRequest(content::PermissionType permission,
content::WebContents* web_contents,
int bridge_id,
const GURL& requesting_frame) override;
bool CanCreateWindow(const GURL& opener_url, bool CanCreateWindow(const GURL& opener_url,
const GURL& opener_top_level_frame_url, const GURL& opener_top_level_frame_url,
const GURL& source_origin, const GURL& source_origin,

View File

@ -0,0 +1,161 @@
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "libcef/browser/permission_manager.h"
#include "include/cef_client.h"
#include "include/cef_geolocation_handler.h"
#include "libcef/browser/browser_host_impl.h"
#include "libcef/browser/thread_util.h"
#include "base/callback.h"
#include "content/public/browser/geolocation_provider.h"
#include "content/public/browser/permission_type.h"
namespace {
class CefGeolocationCallbackImpl : public CefGeolocationCallback {
public:
typedef base::Callback<void(content::PermissionStatus)> CallbackType;
explicit CefGeolocationCallbackImpl(const CallbackType& callback)
: callback_(callback) {}
void Continue(bool allow) override {
if (CEF_CURRENTLY_ON_UIT()) {
if (!callback_.is_null()) {
if (allow) {
content::GeolocationProvider::GetInstance()->
UserDidOptIntoLocationServices();
}
callback_.Run(allow ? content::PERMISSION_STATUS_GRANTED :
content::PERMISSION_STATUS_DENIED);
callback_.Reset();
}
} else {
CEF_POST_TASK(CEF_UIT,
base::Bind(&CefGeolocationCallbackImpl::Continue, this, allow));
}
}
void Disconnect() {
callback_.Reset();
}
private:
CallbackType callback_;
IMPLEMENT_REFCOUNTING(CefGeolocationCallbackImpl);
DISALLOW_COPY_AND_ASSIGN(CefGeolocationCallbackImpl);
};
} // namespace
CefPermissionManager::CefPermissionManager()
: PermissionManager() {
}
CefPermissionManager::~CefPermissionManager() {
}
void CefPermissionManager::RequestPermission(
content::PermissionType permission,
content::WebContents* web_contents,
int request_id,
const GURL& requesting_origin,
bool user_gesture,
const base::Callback<void(content::PermissionStatus)>& callback) {
CEF_REQUIRE_UIT();
if (permission != content::PermissionType::GEOLOCATION) {
callback.Run(content::PERMISSION_STATUS_DENIED);
return;
}
bool proceed = false;
CefRefPtr<CefBrowserHostImpl> browser =
CefBrowserHostImpl::GetBrowserForContents(web_contents);
if (browser.get()) {
CefRefPtr<CefClient> client = browser->GetClient();
if (client.get()) {
CefRefPtr<CefGeolocationHandler> handler =
client->GetGeolocationHandler();
if (handler.get()) {
CefRefPtr<CefGeolocationCallbackImpl> callbackImpl(
new CefGeolocationCallbackImpl(callback));
// Notify the handler.
proceed = handler->OnRequestGeolocationPermission(
browser.get(), requesting_origin.spec(), request_id,
callbackImpl.get());
if (!proceed)
callbackImpl->Disconnect();
}
}
}
if (!proceed) {
// Disallow geolocation access by default.
callback.Run(content::PERMISSION_STATUS_DENIED);
}
}
void CefPermissionManager::CancelPermissionRequest(
content::PermissionType permission,
content::WebContents* web_contents,
int request_id,
const GURL& requesting_origin) {
CEF_REQUIRE_UIT();
if (permission != content::PermissionType::GEOLOCATION)
return;
CefRefPtr<CefBrowserHostImpl> browser =
CefBrowserHostImpl::GetBrowserForContents(web_contents);
if (browser.get()) {
CefRefPtr<CefClient> client = browser->GetClient();
if (client.get()) {
CefRefPtr<CefGeolocationHandler> handler =
client->GetGeolocationHandler();
if (handler.get()) {
handler->OnCancelGeolocationPermission(browser.get(),
requesting_origin.spec(),
request_id);
}
}
}
}
void CefPermissionManager::ResetPermission(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
}
content::PermissionStatus CefPermissionManager::GetPermissionStatus(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
return content::PERMISSION_STATUS_DENIED;
}
void CefPermissionManager::RegisterPermissionUsage(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
}
int CefPermissionManager::SubscribePermissionStatusChange(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin,
const base::Callback<void(content::PermissionStatus)>& callback) {
return -1;
}
void CefPermissionManager::UnsubscribePermissionStatusChange(
int subscription_id) {
}

View File

@ -0,0 +1,50 @@
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CEF_LIBCEF_BROWSER_PERMISSION_MANAGER_H_
#define CEF_LIBCEF_BROWSER_PERMISSION_MANAGER_H_
#include "base/callback_forward.h"
#include "base/macros.h"
#include "content/public/browser/permission_manager.h"
class CefPermissionManager : public content::PermissionManager {
public:
CefPermissionManager();
~CefPermissionManager() override;
// PermissionManager implementation.
void RequestPermission(
content::PermissionType permission,
content::WebContents* web_contents,
int request_id,
const GURL& requesting_origin,
bool user_gesture,
const base::Callback<void(content::PermissionStatus)>& callback) override;
void CancelPermissionRequest(content::PermissionType permission,
content::WebContents* web_contents,
int request_id,
const GURL& requesting_origin) override;
void ResetPermission(content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) override;
content::PermissionStatus GetPermissionStatus(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) override;
void RegisterPermissionUsage(content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) override;
int SubscribePermissionStatusChange(
content::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin,
const base::Callback<void(content::PermissionStatus)>& callback) override;
void UnsubscribePermissionStatusChange(int subscription_id) override;
private:
DISALLOW_COPY_AND_ASSIGN(CefPermissionManager);
};
#endif // CEF_LIBCEF_BROWSER_PERMISSION_MANAGER_H_

View File

@ -12,6 +12,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "cc/output/copy_output_request.h" #include "cc/output/copy_output_request.h"
#include "cc/scheduler/delay_based_time_source.h" #include "cc/scheduler/delay_based_time_source.h"
#include "content/browser/bad_message.h"
#include "content/browser/compositor/image_transport_factory.h" #include "content/browser/compositor/image_transport_factory.h"
#include "content/browser/compositor/resize_lock.h" #include "content/browser/compositor/resize_lock.h"
#include "content/browser/renderer_host/dip_util.h" #include "content/browser/renderer_host/dip_util.h"
@ -651,8 +652,11 @@ void CefRenderWidgetHostViewOSR::OnSwapCompositorFrame(
if (frame->software_frame_data) { if (frame->software_frame_data) {
DLOG(ERROR) << "Unable to use software frame in CEF windowless rendering"; DLOG(ERROR) << "Unable to use software frame in CEF windowless rendering";
if (render_widget_host_) if (render_widget_host_) {
render_widget_host_->GetProcess()->ReceivedBadMessage(); content::bad_message::ReceivedBadMessage(
render_widget_host_->GetProcess(),
content::bad_message::RWHVM_UNEXPECTED_FRAME_TYPE);
}
return; return;
} }
} }

View File

@ -175,11 +175,6 @@ IPC_MESSAGE_ROUTED4(CefHostMsg_DidFinishLoad,
bool /* is_main_frame */, bool /* is_main_frame */,
int /* http_status_code */) int /* http_status_code */)
// Sent when a new URL is about to be loaded in the main frame. Used for the
// cookie manager.
IPC_MESSAGE_ROUTED1(CefHostMsg_LoadingURLChange,
GURL /* loading_url */)
// Sent when the renderer has a request for the browser. The browser may respond // Sent when the renderer has a request for the browser. The browser may respond
// with a CefMsg_Response. // with a CefMsg_Response.
IPC_MESSAGE_ROUTED1(CefHostMsg_Request, IPC_MESSAGE_ROUTED1(CefHostMsg_Request,

View File

@ -307,9 +307,6 @@ void CefBrowserImpl::LoadRequest(const CefMsg_LoadRequest_Params& params) {
blink::WebURLRequest request(params.url); blink::WebURLRequest request(params.url);
// DidCreateDataSource checks for this value.
request.setRequestorID(-1);
if (!params.method.empty()) if (!params.method.empty())
request.setHTTPMethod(base::ASCIIToUTF16(params.method)); request.setHTTPMethod(base::ASCIIToUTF16(params.method));
@ -574,30 +571,6 @@ void CefBrowserImpl::FocusedNodeChanged(const blink::WebNode& node) {
} }
} }
void CefBrowserImpl::DidCreateDataSource(blink::WebLocalFrame* frame,
blink::WebDataSource* ds) {
const blink::WebURLRequest& request = ds->request();
if (request.requestorID() == -1) {
// Mark the request as browser-initiated so
// RenderViewImpl::decidePolicyForNavigation won't attempt to fork it.
content::DocumentState* document_state =
content::DocumentState::FromDataSource(ds);
document_state->set_navigation_state(
content::NavigationStateImpl::CreateBrowserInitiated(
content::CommonNavigationParams(),
content::StartNavigationParams(),
content::HistoryNavigationParams()));
}
if (frame->parent() == 0) {
GURL url = ds->request().url();
if (!url.is_empty()) {
// Notify that the loading URL has changed.
Send(new CefHostMsg_LoadingURLChange(routing_id(), url));
}
}
}
bool CefBrowserImpl::OnMessageReceived(const IPC::Message& message) { bool CefBrowserImpl::OnMessageReceived(const IPC::Message& message) {
bool handled = true; bool handled = true;
IPC_BEGIN_MESSAGE_MAP(CefBrowserImpl, message) IPC_BEGIN_MESSAGE_MAP(CefBrowserImpl, message)

View File

@ -119,8 +119,6 @@ class CefBrowserImpl : public CefBrowser,
bool is_new_navigation) override; bool is_new_navigation) override;
void FrameDetached(blink::WebFrame* frame) override; void FrameDetached(blink::WebFrame* frame) override;
void FocusedNodeChanged(const blink::WebNode& node) override; void FocusedNodeChanged(const blink::WebNode& node) override;
void DidCreateDataSource(blink::WebLocalFrame* frame,
blink::WebDataSource* ds) override;
bool OnMessageReceived(const IPC::Message& message) override; bool OnMessageReceived(const IPC::Message& message) override;
// RenderViewObserver::OnMessageReceived message handlers. // RenderViewObserver::OnMessageReceived message handlers.

View File

@ -3,17 +3,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "base/compiler_specific.h"
#include "config.h"
MSVC_PUSH_WARNING_LEVEL(0);
#include "bindings/core/v8/V8Binding.h"
#include "bindings/core/v8/V8RecursionScope.h"
MSVC_POP_WARNING();
#undef ceil
#undef FROM_HERE
#undef LOG
#include "libcef/renderer/content_renderer_client.h" #include "libcef/renderer/content_renderer_client.h"
#include "libcef/browser/context.h" #include "libcef/browser/context.h"
@ -61,13 +50,11 @@ MSVC_POP_WARNING();
#include "third_party/WebKit/public/web/WebElement.h" #include "third_party/WebKit/public/web/WebElement.h"
#include "third_party/WebKit/public/web/WebFrame.h" #include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h" #include "third_party/WebKit/public/web/WebLocalFrame.h"
#include "third_party/WebKit/public/web/WebKit.h"
#include "third_party/WebKit/public/web/WebPluginParams.h" #include "third_party/WebKit/public/web/WebPluginParams.h"
#include "third_party/WebKit/public/web/WebPrerendererClient.h" #include "third_party/WebKit/public/web/WebPrerendererClient.h"
#include "third_party/WebKit/public/web/WebRuntimeFeatures.h" #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
#include "third_party/WebKit/public/web/WebSecurityPolicy.h" #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
#include "third_party/WebKit/public/web/WebView.h" #include "third_party/WebKit/public/web/WebView.h"
#include "v8/include/v8.h"
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
#include "base/mac/mac_util.h" #include "base/mac/mac_util.h"
@ -625,69 +612,6 @@ bool CefContentRendererClient::HandleNavigation(
return false; return false;
} }
void CefContentRendererClient::DidCreateScriptContext(
blink::WebLocalFrame* frame,
v8::Handle<v8::Context> context,
int extension_group,
int world_id) {
CefRefPtr<CefBrowserImpl> browserPtr =
CefBrowserImpl::GetBrowserForMainFrame(frame->top());
DCHECK(browserPtr.get());
if (!browserPtr.get())
return;
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
v8::Isolate* isolate = blink::mainThreadIsolate();
v8::HandleScope handle_scope(isolate);
v8::Context::Scope scope(context);
blink::V8RecursionScope recursion_scope(isolate);
CefRefPtr<CefV8Context> contextPtr(new CefV8ContextImpl(isolate, context));
// Notify the render process handler.
CefRefPtr<CefApp> application = CefContentClient::Get()->application();
if (application.get()) {
CefRefPtr<CefRenderProcessHandler> handler =
application->GetRenderProcessHandler();
if (handler.get())
handler->OnContextCreated(browserPtr.get(), framePtr.get(), contextPtr);
}
}
void CefContentRendererClient::WillReleaseScriptContext(
blink::WebLocalFrame* frame,
v8::Handle<v8::Context> context,
int world_id) {
// Notify the render process handler.
CefRefPtr<CefApp> application = CefContentClient::Get()->application();
if (application.get()) {
CefRefPtr<CefRenderProcessHandler> handler =
application->GetRenderProcessHandler();
if (handler.get()) {
CefRefPtr<CefBrowserImpl> browserPtr =
CefBrowserImpl::GetBrowserForMainFrame(frame->top());
DCHECK(browserPtr.get());
if (browserPtr.get()) {
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
v8::Isolate* isolate = blink::mainThreadIsolate();
v8::HandleScope handle_scope(isolate);
v8::Context::Scope scope(context);
blink::V8RecursionScope recursion_scope(isolate);
CefRefPtr<CefV8Context> contextPtr(
new CefV8ContextImpl(isolate, context));
handler->OnContextReleased(browserPtr.get(), framePtr.get(),
contextPtr);
}
}
}
CefV8ReleaseContext(context);
}
void CefContentRendererClient::WillDestroyCurrentMessageLoop() { void CefContentRendererClient::WillDestroyCurrentMessageLoop() {
base::AutoLock lock_scope(single_process_cleanup_lock_); base::AutoLock lock_scope(single_process_cleanup_lock_);
single_process_cleanup_complete_ = true; single_process_cleanup_complete_ = true;

View File

@ -94,14 +94,6 @@ class CefContentRendererClient : public content::ContentRendererClient,
blink::WebNavigationType type, blink::WebNavigationType type,
blink::WebNavigationPolicy default_policy, blink::WebNavigationPolicy default_policy,
bool is_redirect) override; bool is_redirect) override;
void DidCreateScriptContext(blink::WebLocalFrame* frame,
v8::Handle<v8::Context> context,
int extension_group,
int world_id) override;
void WillReleaseScriptContext(blink::WebLocalFrame* frame,
v8::Handle<v8::Context> context,
int world_id);
// MessageLoop::DestructionObserver implementation. // MessageLoop::DestructionObserver implementation.
void WillDestroyCurrentMessageLoop() override; void WillDestroyCurrentMessageLoop() override;

View File

@ -2,11 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be found // Use of this source code is governed by a BSD-style license that can be found
// in the LICENSE file. // in the LICENSE file.
#include "base/compiler_specific.h"
#include "config.h"
MSVC_PUSH_WARNING_LEVEL(0);
#include "bindings/core/v8/V8RecursionScope.h"
MSVC_POP_WARNING();
#undef FROM_HERE
#undef LOG
#include "libcef/renderer/render_frame_observer.h" #include "libcef/renderer/render_frame_observer.h"
#include "libcef/common/content_client.h"
#include "libcef/renderer/content_renderer_client.h" #include "libcef/renderer/content_renderer_client.h"
#include "libcef/renderer/v8_impl.h"
#include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_frame.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h"
#include "third_party/WebKit/public/web/WebKit.h"
CefRenderFrameObserver::CefRenderFrameObserver( CefRenderFrameObserver::CefRenderFrameObserver(
content::RenderFrame* render_frame) content::RenderFrame* render_frame)
@ -16,9 +30,67 @@ CefRenderFrameObserver::CefRenderFrameObserver(
CefRenderFrameObserver::~CefRenderFrameObserver() { CefRenderFrameObserver::~CefRenderFrameObserver() {
} }
void CefRenderFrameObserver::DidCreateScriptContext(
v8::Handle<v8::Context> context,
int extension_group,
int world_id) {
blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
CefRefPtr<CefBrowserImpl> browserPtr =
CefBrowserImpl::GetBrowserForMainFrame(frame->top());
DCHECK(browserPtr.get());
if (!browserPtr.get())
return;
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
v8::Isolate* isolate = blink::mainThreadIsolate();
v8::HandleScope handle_scope(isolate);
v8::Context::Scope scope(context);
blink::V8RecursionScope recursion_scope(isolate);
CefRefPtr<CefV8Context> contextPtr(new CefV8ContextImpl(isolate, context));
// Notify the render process handler.
CefRefPtr<CefApp> application = CefContentClient::Get()->application();
if (application.get()) {
CefRefPtr<CefRenderProcessHandler> handler =
application->GetRenderProcessHandler();
if (handler.get())
handler->OnContextCreated(browserPtr.get(), framePtr.get(), contextPtr);
}
}
void CefRenderFrameObserver::WillReleaseScriptContext( void CefRenderFrameObserver::WillReleaseScriptContext(
v8::Handle<v8::Context> context, v8::Handle<v8::Context> context,
int world_id) { int world_id) {
CefContentRendererClient::Get()->WillReleaseScriptContext( blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
render_frame()->GetWebFrame(), context, world_id);
// Notify the render process handler.
CefRefPtr<CefApp> application = CefContentClient::Get()->application();
if (application.get()) {
CefRefPtr<CefRenderProcessHandler> handler =
application->GetRenderProcessHandler();
if (handler.get()) {
CefRefPtr<CefBrowserImpl> browserPtr =
CefBrowserImpl::GetBrowserForMainFrame(frame->top());
DCHECK(browserPtr.get());
if (browserPtr.get()) {
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
v8::Isolate* isolate = blink::mainThreadIsolate();
v8::HandleScope handle_scope(isolate);
v8::Context::Scope scope(context);
blink::V8RecursionScope recursion_scope(isolate);
CefRefPtr<CefV8Context> contextPtr(
new CefV8ContextImpl(isolate, context));
handler->OnContextReleased(browserPtr.get(), framePtr.get(),
contextPtr);
}
}
}
CefV8ReleaseContext(context);
} }

View File

@ -16,6 +16,9 @@ class CefRenderFrameObserver : public content::RenderFrameObserver {
explicit CefRenderFrameObserver(content::RenderFrame* render_frame); explicit CefRenderFrameObserver(content::RenderFrame* render_frame);
~CefRenderFrameObserver() override; ~CefRenderFrameObserver() override;
void DidCreateScriptContext(v8::Handle<v8::Context> context,
int extension_group,
int world_id) override;
void WillReleaseScriptContext(v8::Handle<v8::Context> context, void WillReleaseScriptContext(v8::Handle<v8::Context> context,
int world_id) override; int world_id) override;

View File

@ -83,7 +83,7 @@ class CefV8IsolateManager {
} }
scoped_refptr<CefV8ContextState> GetContextState( scoped_refptr<CefV8ContextState> GetContextState(
v8::Handle<v8::Context> context) { v8::Local<v8::Context> context) {
DCHECK_EQ(isolate_, v8::Isolate::GetCurrent()); DCHECK_EQ(isolate_, v8::Isolate::GetCurrent());
DCHECK(context.IsEmpty() || isolate_ == context->GetIsolate()); DCHECK(context.IsEmpty() || isolate_ == context->GetIsolate());
@ -108,11 +108,11 @@ class CefV8IsolateManager {
return state; return state;
} else { } else {
v8::Handle<v8::String> key = v8::Local<v8::String> key =
v8::String::NewFromUtf8(isolate_, kCefContextState); v8::String::NewFromUtf8(isolate_, kCefContextState);
v8::Handle<v8::Object> object = context->Global(); v8::Local<v8::Object> object = context->Global();
v8::Handle<v8::Value> value = object->GetHiddenValue(key); v8::Local<v8::Value> value = object->GetHiddenValue(key);
if (!value.IsEmpty()) { if (!value.IsEmpty()) {
return static_cast<CefV8ContextState*>( return static_cast<CefV8ContextState*>(
v8::External::Cast(*value)->Value()); v8::External::Cast(*value)->Value());
@ -128,7 +128,7 @@ class CefV8IsolateManager {
} }
} }
void ReleaseContext(v8::Handle<v8::Context> context) { void ReleaseContext(v8::Local<v8::Context> context) {
DCHECK_EQ(isolate_, v8::Isolate::GetCurrent()); DCHECK_EQ(isolate_, v8::Isolate::GetCurrent());
DCHECK_EQ(isolate_, context->GetIsolate()); DCHECK_EQ(isolate_, context->GetIsolate());
@ -143,10 +143,10 @@ class CefV8IsolateManager {
context_map_.erase(it); context_map_.erase(it);
} }
} else { } else {
v8::Handle<v8::String> key = v8::Local<v8::String> key =
v8::String::NewFromUtf8(isolate_, kCefContextState); v8::String::NewFromUtf8(isolate_, kCefContextState);
v8::Handle<v8::Object> object = context->Global(); v8::Local<v8::Object> object = context->Global();
v8::Handle<v8::Value> value = object->GetHiddenValue(key); v8::Local<v8::Value> value = object->GetHiddenValue(key);
if (value.IsEmpty()) if (value.IsEmpty())
return; return;
@ -323,14 +323,14 @@ class V8TrackObject : public CefTrackNode {
} }
// Attach this track object to the specified V8 object. // Attach this track object to the specified V8 object.
void AttachTo(v8::Handle<v8::Object> object) { void AttachTo(v8::Local<v8::Object> object) {
object->SetHiddenValue(v8::String::NewFromUtf8(isolate_, kCefTrackObject), object->SetHiddenValue(v8::String::NewFromUtf8(isolate_, kCefTrackObject),
v8::External::New(isolate_, this)); v8::External::New(isolate_, this));
} }
// Retrieve the track object for the specified V8 object. // Retrieve the track object for the specified V8 object.
static V8TrackObject* Unwrap(v8::Isolate* isolate, static V8TrackObject* Unwrap(v8::Isolate* isolate,
v8::Handle<v8::Object> object) { v8::Local<v8::Object> object) {
DCHECK(isolate); DCHECK(isolate);
v8::Local<v8::Value> value = v8::Local<v8::Value> value =
object->GetHiddenValue( object->GetHiddenValue(
@ -360,7 +360,7 @@ class V8TrackString : public CefTrackNode {
// Convert a CefString to a V8::String. // Convert a CefString to a V8::String.
v8::Handle<v8::String> GetV8String(v8::Isolate* isolate, v8::Local<v8::String> GetV8String(v8::Isolate* isolate,
const CefString& str) { const CefString& str) {
#if defined(CEF_STRING_TYPE_UTF16) #if defined(CEF_STRING_TYPE_UTF16)
// Already a UTF16 string. // Already a UTF16 string.
@ -397,7 +397,7 @@ void v8impl_string_dtor(char* str) {
#endif #endif
// Convert a v8::String to CefString. // Convert a v8::String to CefString.
void GetCefString(v8::Handle<v8::String> str, CefString& out) { void GetCefString(v8::Local<v8::String> str, CefString& out) {
if (str.IsEmpty()) if (str.IsEmpty())
return; return;
@ -481,7 +481,7 @@ void AccessorGetterCallbackImpl(
const v8::PropertyCallbackInfo<v8::Value>& info) { const v8::PropertyCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate(); v8::Isolate* isolate = info.GetIsolate();
v8::Handle<v8::Object> obj = info.This(); v8::Local<v8::Object> obj = info.This();
CefRefPtr<CefV8Accessor> accessorPtr; CefRefPtr<CefV8Accessor> accessorPtr;
@ -519,7 +519,7 @@ void AccessorSetterCallbackImpl(
const v8::PropertyCallbackInfo<void>& info) { const v8::PropertyCallbackInfo<void>& info) {
v8::Isolate* isolate = info.GetIsolate(); v8::Isolate* isolate = info.GetIsolate();
v8::Handle<v8::Object> obj = info.This(); v8::Local<v8::Object> obj = info.This();
CefRefPtr<CefV8Accessor> accessorPtr; CefRefPtr<CefV8Accessor> accessorPtr;
@ -541,11 +541,11 @@ void AccessorSetterCallbackImpl(
} }
} }
v8::Local<v8::Value> CallV8Function(v8::Handle<v8::Context> context, v8::Local<v8::Value> CallV8Function(v8::Local<v8::Context> context,
v8::Handle<v8::Function> function, v8::Local<v8::Function> function,
v8::Handle<v8::Object> receiver, v8::Local<v8::Object> receiver,
int argc, int argc,
v8::Handle<v8::Value> args[], v8::Local<v8::Value> args[],
v8::Isolate* isolate) { v8::Isolate* isolate) {
v8::Local<v8::Value> func_rv; v8::Local<v8::Value> func_rv;
@ -583,7 +583,7 @@ class ExtensionWrapper : public v8::Extension {
v8::Isolate* isolate, v8::Isolate* isolate,
v8::Handle<v8::String> name) override { v8::Handle<v8::String> name) override {
if (!handler_) if (!handler_)
return v8::Handle<v8::FunctionTemplate>(); return v8::Local<v8::FunctionTemplate>();
return v8::FunctionTemplate::New(isolate, return v8::FunctionTemplate::New(isolate,
FunctionCallbackImpl, FunctionCallbackImpl,
@ -596,7 +596,7 @@ class ExtensionWrapper : public v8::Extension {
class CefV8ExceptionImpl : public CefV8Exception { class CefV8ExceptionImpl : public CefV8Exception {
public: public:
explicit CefV8ExceptionImpl(v8::Handle<v8::Message> message) explicit CefV8ExceptionImpl(v8::Local<v8::Message> message)
: line_number_(0), : line_number_(0),
start_position_(0), start_position_(0),
end_position_(0), end_position_(0),
@ -653,7 +653,7 @@ void MessageListenerCallbackImpl(v8::Handle<v8::Message> message,
v8::Isolate* isolate = GetIsolateManager()->isolate(); v8::Isolate* isolate = GetIsolateManager()->isolate();
CefRefPtr<CefV8Context> context = CefV8Context::GetCurrentContext(); CefRefPtr<CefV8Context> context = CefV8Context::GetCurrentContext();
v8::Handle<v8::StackTrace> v8Stack = message->GetStackTrace(); v8::Local<v8::StackTrace> v8Stack = message->GetStackTrace();
DCHECK(!v8Stack.IsEmpty()); DCHECK(!v8Stack.IsEmpty());
CefRefPtr<CefV8StackTrace> stackTrace = CefRefPtr<CefV8StackTrace> stackTrace =
new CefV8StackTraceImpl(isolate, v8Stack); new CefV8StackTraceImpl(isolate, v8Stack);
@ -679,7 +679,7 @@ void CefV8IsolateDestroyed() {
g_v8_state.Pointer()->DestroyIsolateManager(); g_v8_state.Pointer()->DestroyIsolateManager();
} }
void CefV8ReleaseContext(v8::Handle<v8::Context> context) { void CefV8ReleaseContext(v8::Local<v8::Context> context) {
GetIsolateManager()->ReleaseContext(context); GetIsolateManager()->ReleaseContext(context);
} }
@ -771,7 +771,7 @@ bool CefV8HandleBase::BelongsToCurrentThread() const {
} }
CefV8HandleBase::CefV8HandleBase(v8::Isolate* isolate, CefV8HandleBase::CefV8HandleBase(v8::Isolate* isolate,
v8::Handle<v8::Context> context) v8::Local<v8::Context> context)
: isolate_(isolate) { : isolate_(isolate) {
DCHECK(isolate_); DCHECK(isolate_);
@ -821,7 +821,7 @@ bool CefV8Context::InContext() {
// CefV8ContextImpl // CefV8ContextImpl
CefV8ContextImpl::CefV8ContextImpl(v8::Isolate* isolate, CefV8ContextImpl::CefV8ContextImpl(v8::Isolate* isolate,
v8::Handle<v8::Context> context) v8::Local<v8::Context> context)
: handle_(new Handle(isolate, context, context)) : handle_(new Handle(isolate, context, context))
#ifndef NDEBUG #ifndef NDEBUG
, enter_count_(0) , enter_count_(0)
@ -879,7 +879,7 @@ CefRefPtr<CefV8Value> CefV8ContextImpl::GetGlobal() {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Context> context = GetV8Context(); v8::Local<v8::Context> context = GetV8Context();
v8::Context::Scope context_scope(context); v8::Context::Scope context_scope(context);
return new CefV8ValueImpl(isolate, context->Global()); return new CefV8ValueImpl(isolate, context->Global());
} }
@ -946,7 +946,7 @@ bool CefV8ContextImpl::Eval(const CefString& code,
return false; return false;
v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(val); v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(val);
v8::Handle<v8::Value> code_val = GetV8String(isolate, code); v8::Local<v8::Value> code_val = GetV8String(isolate, code);
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -966,7 +966,7 @@ bool CefV8ContextImpl::Eval(const CefString& code,
return true; return true;
} }
v8::Handle<v8::Context> CefV8ContextImpl::GetV8Context() { v8::Local<v8::Context> CefV8ContextImpl::GetV8Context() {
return handle_->GetNewV8Handle(); return handle_->GetNewV8Handle();
} }
@ -981,7 +981,7 @@ blink::WebFrame* CefV8ContextImpl::GetWebFrame() {
// CefV8ValueImpl::Handle // CefV8ValueImpl::Handle
CefV8ValueImpl::Handle::Handle(v8::Isolate* isolate, CefV8ValueImpl::Handle::Handle(v8::Isolate* isolate,
v8::Handle<v8::Context> context, v8::Local<v8::Context> context,
handleType v, handleType v,
CefTrackNode* tracker) CefTrackNode* tracker)
: CefV8HandleBase(isolate, context), : CefV8HandleBase(isolate, context),
@ -1271,7 +1271,7 @@ CefV8ValueImpl::CefV8ValueImpl(v8::Isolate* isolate)
} }
CefV8ValueImpl::CefV8ValueImpl(v8::Isolate* isolate, CefV8ValueImpl::CefV8ValueImpl(v8::Isolate* isolate,
v8::Handle<v8::Value> value) v8::Local<v8::Value> value)
: isolate_(isolate), : isolate_(isolate),
type_(TYPE_INVALID), type_(TYPE_INVALID),
rethrow_exceptions_(false) { rethrow_exceptions_(false) {
@ -1286,7 +1286,7 @@ CefV8ValueImpl::~CefV8ValueImpl() {
handle_->SetWeakIfNecessary(); handle_->SetWeakIfNecessary();
} }
void CefV8ValueImpl::InitFromV8Value(v8::Handle<v8::Value> value) { void CefV8ValueImpl::InitFromV8Value(v8::Local<v8::Value> value) {
if (value->IsUndefined()) { if (value->IsUndefined()) {
InitUndefined(); InitUndefined();
} else if (value->IsNull()) { } else if (value->IsNull()) {
@ -1371,13 +1371,13 @@ void CefV8ValueImpl::InitString(CefString& value) {
} }
} }
void CefV8ValueImpl::InitObject(v8::Handle<v8::Value> value, CefTrackNode* tracker) { void CefV8ValueImpl::InitObject(v8::Local<v8::Value> value, CefTrackNode* tracker) {
DCHECK_EQ(type_, TYPE_INVALID); DCHECK_EQ(type_, TYPE_INVALID);
type_ = TYPE_OBJECT; type_ = TYPE_OBJECT;
handle_ = new Handle(isolate_, v8::Handle<v8::Context>(), value, tracker); handle_ = new Handle(isolate_, v8::Local<v8::Context>(), value, tracker);
} }
v8::Handle<v8::Value> CefV8ValueImpl::GetV8Value(bool should_persist) { v8::Local<v8::Value> CefV8ValueImpl::GetV8Value(bool should_persist) {
switch (type_) { switch (type_) {
case TYPE_UNDEFINED: case TYPE_UNDEFINED:
return v8::Undefined(isolate_); return v8::Undefined(isolate_);
@ -1403,7 +1403,7 @@ v8::Handle<v8::Value> CefV8ValueImpl::GetV8Value(bool should_persist) {
} }
NOTREACHED() << "Invalid type for CefV8ValueImpl"; NOTREACHED() << "Invalid type for CefV8ValueImpl";
return v8::Handle<v8::Value>(); return v8::Local<v8::Value>();
} }
bool CefV8ValueImpl::IsValid() { bool CefV8ValueImpl::IsValid() {
@ -1568,8 +1568,8 @@ bool CefV8ValueImpl::IsUserCreated() {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
return (tracker != NULL); return (tracker != NULL);
@ -1612,8 +1612,8 @@ bool CefV8ValueImpl::HasValue(const CefString& key) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
return obj->Has(GetV8String(isolate, key)); return obj->Has(GetV8String(isolate, key));
} }
@ -1626,8 +1626,8 @@ bool CefV8ValueImpl::HasValue(int index) {
} }
v8::HandleScope handle_scope(handle_->isolate()); v8::HandleScope handle_scope(handle_->isolate());
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
return obj->Has(index); return obj->Has(index);
} }
@ -1636,8 +1636,8 @@ bool CefV8ValueImpl::DeleteValue(const CefString& key) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1654,8 +1654,8 @@ bool CefV8ValueImpl::DeleteValue(int index) {
} }
v8::HandleScope handle_scope(handle_->isolate()); v8::HandleScope handle_scope(handle_->isolate());
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1668,8 +1668,8 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::GetValue(const CefString& key) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1689,8 +1689,8 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::GetValue(int index) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1709,8 +1709,8 @@ bool CefV8ValueImpl::SetValue(const CefString& key,
if (impl && impl->IsValid()) { if (impl && impl->IsValid()) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1743,8 +1743,8 @@ bool CefV8ValueImpl::SetValue(int index, CefRefPtr<CefV8Value> value) {
CefV8ValueImpl* impl = static_cast<CefV8ValueImpl*>(value.get()); CefV8ValueImpl* impl = static_cast<CefV8ValueImpl*>(value.get());
if (impl && impl->IsValid()) { if (impl && impl->IsValid()) {
v8::HandleScope handle_scope(handle_->isolate()); v8::HandleScope handle_scope(handle_->isolate());
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::TryCatch try_catch; v8::TryCatch try_catch;
try_catch.SetVerbose(true); try_catch.SetVerbose(true);
@ -1762,8 +1762,8 @@ bool CefV8ValueImpl::SetValue(const CefString& key, AccessControl settings,
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
CefRefPtr<CefV8Accessor> accessorPtr; CefRefPtr<CefV8Accessor> accessorPtr;
@ -1793,8 +1793,8 @@ bool CefV8ValueImpl::GetKeys(std::vector<CefString>& keys) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::Local<v8::Array> arr_keys = obj->GetPropertyNames(); v8::Local<v8::Array> arr_keys = obj->GetPropertyNames();
uint32_t len = arr_keys->Length(); uint32_t len = arr_keys->Length();
@ -1812,8 +1812,8 @@ bool CefV8ValueImpl::SetUserData(CefRefPtr<CefBase> user_data) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
if (tracker) { if (tracker) {
@ -1829,8 +1829,8 @@ CefRefPtr<CefBase> CefV8ValueImpl::GetUserData() {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
if (tracker) if (tracker)
@ -1844,8 +1844,8 @@ int CefV8ValueImpl::GetExternallyAllocatedMemory() {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
if (tracker) if (tracker)
@ -1859,8 +1859,8 @@ int CefV8ValueImpl::AdjustExternallyAllocatedMemory(int change_in_bytes) {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
if (tracker) if (tracker)
@ -1873,14 +1873,14 @@ int CefV8ValueImpl::GetArrayLength() {
CEF_V8_REQUIRE_OBJECT_RETURN(0); CEF_V8_REQUIRE_OBJECT_RETURN(0);
v8::HandleScope handle_scope(handle_->isolate()); v8::HandleScope handle_scope(handle_->isolate());
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
if (!value->IsArray()) { if (!value->IsArray()) {
NOTREACHED() << "V8 value is not an array"; NOTREACHED() << "V8 value is not an array";
return 0; return 0;
} }
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::Local<v8::Array> arr = v8::Handle<v8::Array>::Cast(obj); v8::Local<v8::Array> arr = v8::Local<v8::Array>::Cast(obj);
return arr->Length(); return arr->Length();
} }
@ -1889,14 +1889,14 @@ CefString CefV8ValueImpl::GetFunctionName() {
CEF_V8_REQUIRE_OBJECT_RETURN(rv); CEF_V8_REQUIRE_OBJECT_RETURN(rv);
v8::HandleScope handle_scope(handle_->isolate()); v8::HandleScope handle_scope(handle_->isolate());
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
if (!value->IsFunction()) { if (!value->IsFunction()) {
NOTREACHED() << "V8 value is not a function"; NOTREACHED() << "V8 value is not a function";
return rv; return rv;
} }
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(obj); v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(obj);
GetCefString(v8::Handle<v8::String>::Cast(func->GetName()), rv); GetCefString(v8::Handle<v8::String>::Cast(func->GetName()), rv);
return rv; return rv;
} }
@ -1906,13 +1906,13 @@ CefRefPtr<CefV8Handler> CefV8ValueImpl::GetFunctionHandler() {
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
if (!value->IsFunction()) { if (!value->IsFunction()) {
NOTREACHED() << "V8 value is not a function"; NOTREACHED() << "V8 value is not a function";
return 0; return 0;
} }
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj); V8TrackObject* tracker = V8TrackObject::Unwrap(isolate, obj);
if (tracker) if (tracker)
return tracker->GetHandler(); return tracker->GetHandler();
@ -1936,7 +1936,7 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::ExecuteFunctionWithContext(
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
if (!value->IsFunction()) { if (!value->IsFunction()) {
NOTREACHED() << "V8 value is not a function"; NOTREACHED() << "V8 value is not a function";
return 0; return 0;
@ -1972,21 +1972,21 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::ExecuteFunctionWithContext(
v8::Context::Scope context_scope(context_local); v8::Context::Scope context_scope(context_local);
v8::Handle<v8::Object> obj = value->ToObject(); v8::Local<v8::Object> obj = value->ToObject();
v8::Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(obj); v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(obj);
v8::Handle<v8::Object> recv; v8::Local<v8::Object> recv;
// Default to the global object if no object was provided. // Default to the global object if no object was provided.
if (object.get()) { if (object.get()) {
CefV8ValueImpl* recv_impl = static_cast<CefV8ValueImpl*>(object.get()); CefV8ValueImpl* recv_impl = static_cast<CefV8ValueImpl*>(object.get());
recv = v8::Handle<v8::Object>::Cast(recv_impl->GetV8Value(true)); recv = v8::Local<v8::Object>::Cast(recv_impl->GetV8Value(true));
} else { } else {
recv = context_local->Global(); recv = context_local->Global();
} }
v8::Handle<v8::Value> *argv = NULL; v8::Local<v8::Value> *argv = NULL;
if (argc > 0) { if (argc > 0) {
argv = new v8::Handle<v8::Value>[argc]; argv = new v8::Local<v8::Value>[argc];
for (int i = 0; i < argc; ++i) { for (int i = 0; i < argc; ++i) {
argv[i] = argv[i] =
static_cast<CefV8ValueImpl*>(arguments[i].get())->GetV8Value(true); static_cast<CefV8ValueImpl*>(arguments[i].get())->GetV8Value(true);
@ -2035,7 +2035,7 @@ CefRefPtr<CefV8StackTrace> CefV8StackTrace::GetCurrent(int frame_limit) {
v8::Isolate* isolate = GetIsolateManager()->isolate(); v8::Isolate* isolate = GetIsolateManager()->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
v8::Handle<v8::StackTrace> stackTrace = v8::Local<v8::StackTrace> stackTrace =
v8::StackTrace::CurrentStackTrace( v8::StackTrace::CurrentStackTrace(
isolate, frame_limit, v8::StackTrace::kDetailed); isolate, frame_limit, v8::StackTrace::kDetailed);
if (stackTrace.IsEmpty()) if (stackTrace.IsEmpty())
@ -2048,7 +2048,7 @@ CefRefPtr<CefV8StackTrace> CefV8StackTrace::GetCurrent(int frame_limit) {
CefV8StackTraceImpl::CefV8StackTraceImpl( CefV8StackTraceImpl::CefV8StackTraceImpl(
v8::Isolate* isolate, v8::Isolate* isolate,
v8::Handle<v8::StackTrace> handle) { v8::Local<v8::StackTrace> handle) {
int frame_count = handle->GetFrameCount(); int frame_count = handle->GetFrameCount();
if (frame_count > 0) { if (frame_count > 0) {
frames_.reserve(frame_count); frames_.reserve(frame_count);
@ -2079,19 +2079,19 @@ CefRefPtr<CefV8StackFrame> CefV8StackTraceImpl::GetFrame(int index) {
CefV8StackFrameImpl::CefV8StackFrameImpl( CefV8StackFrameImpl::CefV8StackFrameImpl(
v8::Isolate* isolate, v8::Isolate* isolate,
v8::Handle<v8::StackFrame> handle) v8::Local<v8::StackFrame> handle)
: line_number_(0), : line_number_(0),
column_(0), column_(0),
is_eval_(false), is_eval_(false),
is_constructor_(false) { is_constructor_(false) {
if (handle.IsEmpty()) if (handle.IsEmpty())
return; return;
GetCefString(v8::Handle<v8::String>::Cast(handle->GetScriptName()), GetCefString(v8::Local<v8::String>::Cast(handle->GetScriptName()),
script_name_); script_name_);
GetCefString( GetCefString(
v8::Handle<v8::String>::Cast(handle->GetScriptNameOrSourceURL()), v8::Local<v8::String>::Cast(handle->GetScriptNameOrSourceURL()),
script_name_or_source_url_); script_name_or_source_url_);
GetCefString(v8::Handle<v8::String>::Cast(handle->GetFunctionName()), GetCefString(v8::Local<v8::String>::Cast(handle->GetFunctionName()),
function_name_); function_name_);
line_number_ = handle->GetLineNumber(); line_number_ = handle->GetLineNumber();
column_ = handle->GetColumn(); column_ = handle->GetColumn();

View File

@ -31,7 +31,7 @@ void CefV8IsolateCreated();
void CefV8IsolateDestroyed(); void CefV8IsolateDestroyed();
// Call to detach all handles associated with the specified context. // Call to detach all handles associated with the specified context.
void CefV8ReleaseContext(v8::Handle<v8::Context> context); void CefV8ReleaseContext(v8::Local<v8::Context> context);
// Set the stack size for uncaught exceptions. // Set the stack size for uncaught exceptions.
void CefV8SetUncaughtExceptionStackSize(int stack_size); void CefV8SetUncaughtExceptionStackSize(int stack_size);
@ -117,7 +117,7 @@ class CefV8HandleBase :
// |context| is the context that owns this handle. If empty the current // |context| is the context that owns this handle. If empty the current
// context will be used. // context will be used.
CefV8HandleBase(v8::Isolate* isolate, CefV8HandleBase(v8::Isolate* isolate,
v8::Handle<v8::Context> context); v8::Local<v8::Context> context);
virtual ~CefV8HandleBase(); virtual ~CefV8HandleBase();
protected: protected:
@ -135,7 +135,7 @@ class CefV8Handle : public CefV8HandleBase {
typedef v8::Persistent<v8class> persistentType; typedef v8::Persistent<v8class> persistentType;
CefV8Handle(v8::Isolate* isolate, CefV8Handle(v8::Isolate* isolate,
v8::Handle<v8::Context> context, v8::Local<v8::Context> context,
handleType v) handleType v)
: CefV8HandleBase(isolate, context), : CefV8HandleBase(isolate, context),
handle_(isolate, v) { handle_(isolate, v) {
@ -170,7 +170,7 @@ class CefV8Handle<v8::Value> {
class CefV8ContextImpl : public CefV8Context { class CefV8ContextImpl : public CefV8Context {
public: public:
CefV8ContextImpl(v8::Isolate* isolate, CefV8ContextImpl(v8::Isolate* isolate,
v8::Handle<v8::Context> context); v8::Local<v8::Context> context);
~CefV8ContextImpl() override; ~CefV8ContextImpl() override;
CefRefPtr<CefTaskRunner> GetTaskRunner() override; CefRefPtr<CefTaskRunner> GetTaskRunner() override;
@ -185,7 +185,7 @@ class CefV8ContextImpl : public CefV8Context {
CefRefPtr<CefV8Value>& retval, CefRefPtr<CefV8Value>& retval,
CefRefPtr<CefV8Exception>& exception) override; CefRefPtr<CefV8Exception>& exception) override;
v8::Handle<v8::Context> GetV8Context(); v8::Local<v8::Context> GetV8Context();
blink::WebFrame* GetWebFrame(); blink::WebFrame* GetWebFrame();
protected: protected:
@ -205,12 +205,12 @@ class CefV8ValueImpl : public CefV8Value {
public: public:
explicit CefV8ValueImpl(v8::Isolate* isolate); explicit CefV8ValueImpl(v8::Isolate* isolate);
CefV8ValueImpl(v8::Isolate* isolate, CefV8ValueImpl(v8::Isolate* isolate,
v8::Handle<v8::Value> value); v8::Local<v8::Value> value);
~CefV8ValueImpl() override; ~CefV8ValueImpl() override;
// Used for initializing the CefV8ValueImpl. Should be called a single time // Used for initializing the CefV8ValueImpl. Should be called a single time
// after the CefV8ValueImpl is created. // after the CefV8ValueImpl is created.
void InitFromV8Value(v8::Handle<v8::Value> value); void InitFromV8Value(v8::Local<v8::Value> value);
void InitUndefined(); void InitUndefined();
void InitNull(); void InitNull();
void InitBool(bool value); void InitBool(bool value);
@ -219,11 +219,11 @@ class CefV8ValueImpl : public CefV8Value {
void InitDouble(double value); void InitDouble(double value);
void InitDate(const CefTime& value); void InitDate(const CefTime& value);
void InitString(CefString& value); void InitString(CefString& value);
void InitObject(v8::Handle<v8::Value> value, CefTrackNode* tracker); void InitObject(v8::Local<v8::Value> value, CefTrackNode* tracker);
// Creates a new V8 value for the underlying value or returns the existing // Creates a new V8 value for the underlying value or returns the existing
// object handle. // object handle.
v8::Handle<v8::Value> GetV8Value(bool should_persist); v8::Local<v8::Value> GetV8Value(bool should_persist);
bool IsValid() override; bool IsValid() override;
bool IsUndefined() override; bool IsUndefined() override;
@ -287,7 +287,7 @@ class CefV8ValueImpl : public CefV8Value {
typedef v8::Persistent<v8::Value> persistentType; typedef v8::Persistent<v8::Value> persistentType;
Handle(v8::Isolate* isolate, Handle(v8::Isolate* isolate,
v8::Handle<v8::Context> context, v8::Local<v8::Context> context,
handleType v, handleType v,
CefTrackNode* tracker); CefTrackNode* tracker);
@ -356,7 +356,7 @@ class CefV8ValueImpl : public CefV8Value {
class CefV8StackTraceImpl : public CefV8StackTrace { class CefV8StackTraceImpl : public CefV8StackTrace {
public: public:
CefV8StackTraceImpl(v8::Isolate* isolate, CefV8StackTraceImpl(v8::Isolate* isolate,
v8::Handle<v8::StackTrace> handle); v8::Local<v8::StackTrace> handle);
~CefV8StackTraceImpl() override; ~CefV8StackTraceImpl() override;
bool IsValid() override; bool IsValid() override;
@ -373,7 +373,7 @@ class CefV8StackTraceImpl : public CefV8StackTrace {
class CefV8StackFrameImpl : public CefV8StackFrame { class CefV8StackFrameImpl : public CefV8StackFrame {
public: public:
CefV8StackFrameImpl(v8::Isolate* isolate, CefV8StackFrameImpl(v8::Isolate* isolate,
v8::Handle<v8::StackFrame> handle); v8::Local<v8::StackFrame> handle);
~CefV8StackFrameImpl() override; ~CefV8StackFrameImpl() override;
bool IsValid() override; bool IsValid() override;

View File

@ -328,6 +328,11 @@ need to be translated for each locale.-->
The selected printer is not available or not installed correctly. Check your printer or try selecting another printer. The selected printer is not available or not installed correctly. Check your printer or try selecting another printer.
</message> </message>
<!-- Proxy settings -->
<message name="IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME" desc="The name of the utility process used for out-of-process V8 proxy resolution.">
V8 Proxy Resolver
</message>
<!-- Spell checking --> <!-- Spell checking -->
<!-- The file name of the spellchecking dictionary without the extension (case-sensitive). --> <!-- The file name of the spellchecking dictionary without the extension (case-sensitive). -->
<message name="IDS_SPELLCHECK_DICTIONARY" use_name_for_id="true"> <message name="IDS_SPELLCHECK_DICTIONARY" use_name_for_id="true">

View File

@ -1,8 +1,8 @@
diff --git web_contents_impl.cc web_contents_impl.cc diff --git web_contents_impl.cc web_contents_impl.cc
index 8dd4307..e3a6baa 100644 index 24122cd..52cd0c6 100644
--- web_contents_impl.cc --- web_contents_impl.cc
+++ web_contents_impl.cc +++ web_contents_impl.cc
@@ -1269,22 +1269,29 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { @@ -1205,22 +1205,29 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
params.browser_context, params.site_instance, params.routing_id, params.browser_context, params.site_instance, params.routing_id,
params.main_frame_routing_id); params.main_frame_routing_id);
@ -48,7 +48,7 @@ index 8dd4307..e3a6baa 100644
} }
CHECK(render_view_host_delegate_view_); CHECK(render_view_host_delegate_view_);
CHECK(view_.get()); CHECK(view_.get());
@@ -1640,6 +1647,9 @@ void WebContentsImpl::CreateNewWindow( @@ -1551,6 +1558,9 @@ void WebContentsImpl::CreateNewWindow(
static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace); static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace);
CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context)); CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
@ -58,7 +58,7 @@ index 8dd4307..e3a6baa 100644
if (delegate_ && if (delegate_ &&
!delegate_->ShouldCreateWebContents(this, !delegate_->ShouldCreateWebContents(this,
route_id, route_id,
@@ -1648,7 +1658,9 @@ void WebContentsImpl::CreateNewWindow( @@ -1559,7 +1569,9 @@ void WebContentsImpl::CreateNewWindow(
params.frame_name, params.frame_name,
params.target_url, params.target_url,
partition_id, partition_id,
@ -69,7 +69,7 @@ index 8dd4307..e3a6baa 100644
if (route_id != MSG_ROUTING_NONE && if (route_id != MSG_ROUTING_NONE &&
!RenderViewHost::FromID(render_process_id, route_id)) { !RenderViewHost::FromID(render_process_id, route_id)) {
// If the embedder didn't create a WebContents for this route, we need to // If the embedder didn't create a WebContents for this route, we need to
@@ -1668,6 +1680,8 @@ void WebContentsImpl::CreateNewWindow( @@ -1579,6 +1591,8 @@ void WebContentsImpl::CreateNewWindow(
create_params.main_frame_routing_id = main_frame_route_id; create_params.main_frame_routing_id = main_frame_route_id;
create_params.opener = this; create_params.opener = this;
create_params.opener_suppressed = params.opener_suppressed; create_params.opener_suppressed = params.opener_suppressed;

View File

@ -1,5 +1,5 @@
diff --git common.gypi common.gypi diff --git common.gypi common.gypi
index e32eae2..46c355a 100644 index dccdfec..65b9540 100644
--- common.gypi --- common.gypi
+++ common.gypi +++ common.gypi
@@ -9,6 +9,9 @@ @@ -9,6 +9,9 @@

View File

@ -1,8 +1,8 @@
diff --git ui/browser.cc ui/browser.cc diff --git ui/browser.cc ui/browser.cc
index 21e292e..074b41e 100644 index 50b6506..cc6a201 100644
--- ui/browser.cc --- ui/browser.cc
+++ ui/browser.cc +++ ui/browser.cc
@@ -1596,7 +1596,9 @@ bool Browser::ShouldCreateWebContents( @@ -1592,7 +1592,9 @@ bool Browser::ShouldCreateWebContents(
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,
const std::string& partition_id, const std::string& partition_id,
@ -14,10 +14,10 @@ index 21e292e..074b41e 100644
// If a BackgroundContents is created, suppress the normal WebContents. // If a BackgroundContents is created, suppress the normal WebContents.
return !MaybeCreateBackgroundContents(route_id, return !MaybeCreateBackgroundContents(route_id,
diff --git ui/browser.h ui/browser.h diff --git ui/browser.h ui/browser.h
index fcb711c..5a59434 100644 index 49c3962..4fac697 100644
--- ui/browser.h --- ui/browser.h
+++ ui/browser.h +++ ui/browser.h
@@ -588,7 +588,9 @@ class Browser : public TabStripModelObserver, @@ -587,7 +587,9 @@ class Browser : public TabStripModelObserver,
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,
const std::string& partition_id, const std::string& partition_id,

View File

@ -1,26 +1,19 @@
diff --git pepper_flash.cc pepper_flash.cc diff --git pepper_flash.cc pepper_flash.cc
index b21d4d1..11fac76 100644 index da1c00d..f96c17d 100644
--- pepper_flash.cc --- pepper_flash.cc
+++ pepper_flash.cc +++ pepper_flash.cc
@@ -117,6 +117,14 @@ bool CheckPepperFlashManifest(const base::DictionaryValue& manifest, @@ -119,8 +119,15 @@ bool CheckPepperFlashManifest(const base::DictionaryValue& manifest,
if (os != kPepperFlashOperatingSystem)
return false;
std::string arch;
manifest.GetStringASCII("x-ppapi-arch", &arch);
+#if defined(OS_MACOSX) +#if defined(OS_MACOSX)
+ // On Mac newer versions of the plugin are a universal binary and use "mac" + // On Mac newer versions of the plugin are a universal binary and use "mac"
+ // as the value. + // as the value.
+ std::string arch;
+ manifest.GetStringASCII("x-ppapi-arch", &arch);
+ if (arch != kPepperFlashArch && arch != kPepperFlashOperatingSystem) + if (arch != kPepperFlashArch && arch != kPepperFlashOperatingSystem)
+ return false; + return false;
+#else +#else
// On Win64, PepperFlash manifests have "ia32" instead of "x64" so skip the
// architecture check. TODO(wfh): remove this when crbug.com/458894 is fixed.
#if !defined(OS_WIN) || !defined(ARCH_CPU_X86_64)
@@ -125,6 +133,7 @@ bool CheckPepperFlashManifest(const base::DictionaryValue& manifest,
if (arch != kPepperFlashArch) if (arch != kPepperFlashArch)
return false; return false;
#endif
+#endif +#endif
*version_out = version; *version_out = version;

View File

@ -1,8 +1,8 @@
diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc
index dfb1041..4a4b14d 100644 index 4fc6a67..ed42b09 100644
--- content/browser/compositor/gpu_process_transport_factory.cc --- content/browser/compositor/gpu_process_transport_factory.cc
+++ content/browser/compositor/gpu_process_transport_factory.cc +++ content/browser/compositor/gpu_process_transport_factory.cc
@@ -100,6 +100,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() { @@ -130,6 +130,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() {
scoped_ptr<cc::SoftwareOutputDevice> CreateSoftwareOutputDevice( scoped_ptr<cc::SoftwareOutputDevice> CreateSoftwareOutputDevice(
ui::Compositor* compositor) { ui::Compositor* compositor) {
@ -17,19 +17,19 @@ index dfb1041..4a4b14d 100644
return scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareOutputDeviceWin( return scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareOutputDeviceWin(
compositor)); compositor));
diff --git ui/compositor/compositor.h ui/compositor/compositor.h diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index 3a3e4cc..9fed916 100644 index 5a6d932..07bd025 100644
--- ui/compositor/compositor.h --- ui/compositor/compositor.h
+++ ui/compositor/compositor.h +++ ui/compositor/compositor.h
@@ -13,6 +13,7 @@ @@ -15,6 +15,7 @@
#include "base/observer_list.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "cc/output/begin_frame_args.h"
+#include "cc/output/software_output_device.h" +#include "cc/output/software_output_device.h"
#include "cc/surfaces/surface_sequence.h" #include "cc/surfaces/surface_sequence.h"
#include "cc/trees/layer_tree_host_client.h" #include "cc/trees/layer_tree_host_client.h"
#include "cc/trees/layer_tree_host_single_thread_client.h" #include "cc/trees/layer_tree_host_single_thread_client.h"
@@ -132,6 +133,17 @@ class COMPOSITOR_EXPORT CompositorLock @@ -145,6 +146,17 @@ class COMPOSITOR_EXPORT CompositorBeginFrameObserver {
DISALLOW_COPY_AND_ASSIGN(CompositorLock); virtual void OnSendBeginFrame(const cc::BeginFrameArgs& args) = 0;
}; };
+class COMPOSITOR_EXPORT CompositorDelegate { +class COMPOSITOR_EXPORT CompositorDelegate {
@ -46,7 +46,7 @@ index 3a3e4cc..9fed916 100644
// Compositor object to take care of GPU painting. // Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final // A Browser compositor object is responsible for generating the final
// displayable form of pixels comprising a single widget's contents. It draws an // displayable form of pixels comprising a single widget's contents. It draws an
@@ -153,6 +165,9 @@ class COMPOSITOR_EXPORT Compositor @@ -166,6 +178,9 @@ class COMPOSITOR_EXPORT Compositor
// Schedules a redraw of the layer tree associated with this compositor. // Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw(); void ScheduleDraw();
@ -56,7 +56,7 @@ index 3a3e4cc..9fed916 100644
// Sets the root of the layer tree drawn by this Compositor. The root layer // 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 // 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 // is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -305,6 +320,8 @@ class COMPOSITOR_EXPORT Compositor @@ -322,6 +337,8 @@ class COMPOSITOR_EXPORT Compositor
ui::ContextFactory* context_factory_; ui::ContextFactory* context_factory_;

View File

@ -19,7 +19,7 @@ index 6e66fe3..32957fc 100644
bool ContentRendererClient::ShouldFork(blink::WebFrame* frame, bool ContentRendererClient::ShouldFork(blink::WebFrame* frame,
const GURL& url, const GURL& url,
diff --git public/renderer/content_renderer_client.h public/renderer/content_renderer_client.h diff --git public/renderer/content_renderer_client.h public/renderer/content_renderer_client.h
index 45176ab..07de846 100644 index ca4d51d..5df0485 100644
--- public/renderer/content_renderer_client.h --- public/renderer/content_renderer_client.h
+++ public/renderer/content_renderer_client.h +++ public/renderer/content_renderer_client.h
@@ -193,7 +193,6 @@ class CONTENT_EXPORT ContentRendererClient { @@ -193,7 +193,6 @@ class CONTENT_EXPORT ContentRendererClient {
@ -39,10 +39,10 @@ index 45176ab..07de846 100644
// Returns true if we should fork a new process for the given navigation. // Returns true if we should fork a new process for the given navigation.
// If |send_referrer| is set to false (which is the default), no referrer // If |send_referrer| is set to false (which is the default), no referrer
diff --git renderer/render_frame_impl.cc renderer/render_frame_impl.cc diff --git renderer/render_frame_impl.cc renderer/render_frame_impl.cc
index 88c7bd4..70122f8 100644 index 88b26d2..07ed0cb 100644
--- renderer/render_frame_impl.cc --- renderer/render_frame_impl.cc
+++ renderer/render_frame_impl.cc +++ renderer/render_frame_impl.cc
@@ -4006,7 +4006,6 @@ void RenderFrameImpl::OnCommitNavigation( @@ -4076,7 +4076,6 @@ void RenderFrameImpl::OnCommitNavigation(
WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
RenderFrame* render_frame, RenderFrame* render_frame,
const NavigationPolicyInfo& info) { const NavigationPolicyInfo& info) {
@ -50,7 +50,7 @@ index 88c7bd4..70122f8 100644
// The handlenavigation API is deprecated and will be removed once // The handlenavigation API is deprecated and will be removed once
// crbug.com/325351 is resolved. // crbug.com/325351 is resolved.
if (info.urlRequest.url() != GURL(kSwappedOutURL) && if (info.urlRequest.url() != GURL(kSwappedOutURL) &&
@@ -4021,7 +4020,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( @@ -4091,7 +4090,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
info.isRedirect)) { info.isRedirect)) {
return blink::WebNavigationPolicyIgnore; return blink::WebNavigationPolicyIgnore;
} }

View File

@ -1,5 +1,5 @@
diff --git resource_ids resource_ids diff --git resource_ids resource_ids
index a64ae83..b32c534 100644 index a0c369d..bea28d8 100644
--- resource_ids --- resource_ids
+++ resource_ids +++ resource_ids
@@ -14,6 +14,12 @@ @@ -14,6 +14,12 @@

View File

@ -1,8 +1,8 @@
diff --git gyp/generator/ninja.py gyp/generator/ninja.py diff --git gyp/generator/ninja.py gyp/generator/ninja.py
index 09df83f..f2f7cd1 100644 index 6823f4f..e8ee2b7 100644
--- gyp/generator/ninja.py --- gyp/generator/ninja.py
+++ gyp/generator/ninja.py +++ gyp/generator/ninja.py
@@ -738,7 +738,16 @@ class NinjaWriter(object): @@ -741,7 +741,16 @@ class NinjaWriter(object):
for path in copy['files']: for path in copy['files']:
# Normalize the path so trailing slashes don't confuse us. # Normalize the path so trailing slashes don't confuse us.
path = os.path.normpath(path) path = os.path.normpath(path)

View File

@ -1,5 +1,5 @@
diff --git message_loop.cc message_loop.cc diff --git message_loop.cc message_loop.cc
index daa7782..6fea3c2 100644 index eb0f968..1852eb1 100644
--- message_loop.cc --- message_loop.cc
+++ message_loop.cc +++ message_loop.cc
@@ -152,12 +152,6 @@ MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump) @@ -152,12 +152,6 @@ MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump)

View File

@ -1,8 +1,8 @@
diff --git url_request.h url_request.h diff --git url_request.h url_request.h
index 1623368..16d292d 100644 index e623c20..c6c9058 100644
--- url_request.h --- url_request.h
+++ url_request.h +++ url_request.h
@@ -609,10 +609,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe), @@ -608,10 +608,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
return proxy_server_; return proxy_server_;
} }

View File

@ -35,10 +35,10 @@ index 8d25487..23b25ae 100644
bool slimming_paint_enabled; bool slimming_paint_enabled;
diff --git renderer/render_view_impl.cc renderer/render_view_impl.cc diff --git renderer/render_view_impl.cc renderer/render_view_impl.cc
index 3f0f76f..bf84bdb 100644 index c9cbd66..8124639 100644
--- renderer/render_view_impl.cc --- renderer/render_view_impl.cc
+++ renderer/render_view_impl.cc +++ renderer/render_view_impl.cc
@@ -940,6 +940,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, @@ -932,6 +932,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
settings->setJavaEnabled(prefs.java_enabled); settings->setJavaEnabled(prefs.java_enabled);

View File

@ -52,10 +52,10 @@ index 4380412..a67739d 100644
// Creates a new WebContents. // Creates a new WebContents.
diff --git web_contents_delegate.cc web_contents_delegate.cc diff --git web_contents_delegate.cc web_contents_delegate.cc
index 461927c..2217377 100644 index 0e48d7c..aa46ad9 100644
--- web_contents_delegate.cc --- web_contents_delegate.cc
+++ web_contents_delegate.cc +++ web_contents_delegate.cc
@@ -137,7 +137,9 @@ bool WebContentsDelegate::ShouldCreateWebContents( @@ -133,7 +133,9 @@ bool WebContentsDelegate::ShouldCreateWebContents(
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,
const std::string& partition_id, const std::string& partition_id,
@ -67,7 +67,7 @@ index 461927c..2217377 100644
} }
diff --git web_contents_delegate.h web_contents_delegate.h diff --git web_contents_delegate.h web_contents_delegate.h
index d88b27c..fefbed2 100644 index 1367f0b..7da1128 100644
--- web_contents_delegate.h --- web_contents_delegate.h
+++ web_contents_delegate.h +++ web_contents_delegate.h
@@ -36,9 +36,11 @@ class DownloadItem; @@ -36,9 +36,11 @@ class DownloadItem;
@ -82,7 +82,7 @@ index d88b27c..fefbed2 100644
struct ColorSuggestion; struct ColorSuggestion;
struct ContextMenuParams; struct ContextMenuParams;
struct DropData; struct DropData;
@@ -314,7 +316,9 @@ class CONTENT_EXPORT WebContentsDelegate { @@ -294,7 +296,9 @@ class CONTENT_EXPORT WebContentsDelegate {
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,
const std::string& partition_id, const std::string& partition_id,

View File

@ -1,8 +1,8 @@
diff --git render_process_host_impl.cc render_process_host_impl.cc diff --git render_process_host_impl.cc render_process_host_impl.cc
index 4152ce2..9e235d3 100644 index 91dd8b3..3cba806 100644
--- render_process_host_impl.cc --- render_process_host_impl.cc
+++ render_process_host_impl.cc +++ render_process_host_impl.cc
@@ -2084,6 +2084,8 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, @@ -2089,6 +2089,8 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead,
#endif #endif
RemoveUserData(kSessionStorageHolderKey); RemoveUserData(kSessionStorageHolderKey);
@ -11,7 +11,7 @@ index 4152ce2..9e235d3 100644
IDMap<IPC::Listener>::iterator iter(&listeners_); IDMap<IPC::Listener>::iterator iter(&listeners_);
while (!iter.IsAtEnd()) { while (!iter.IsAtEnd()) {
iter.GetCurrentValue()->OnMessageReceived( iter.GetCurrentValue()->OnMessageReceived(
@@ -2093,8 +2095,6 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, @@ -2098,8 +2100,6 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead,
iter.Advance(); iter.Advance();
} }

View File

@ -12,10 +12,10 @@ index a8e088c..838b6a0 100644
return host ? host->GetAcceleratedWidget() : NULL; return host ? host->GetAcceleratedWidget() : NULL;
} }
diff --git desktop_aura/desktop_window_tree_host_win.cc desktop_aura/desktop_window_tree_host_win.cc diff --git desktop_aura/desktop_window_tree_host_win.cc desktop_aura/desktop_window_tree_host_win.cc
index b54a643..5a589e5 100644 index b53fc7f..0b24d2a 100644
--- desktop_aura/desktop_window_tree_host_win.cc --- desktop_aura/desktop_window_tree_host_win.cc
+++ desktop_aura/desktop_window_tree_host_win.cc +++ desktop_aura/desktop_window_tree_host_win.cc
@@ -133,7 +133,9 @@ void DesktopWindowTreeHostWin::Init(aura::Window* content_window, @@ -134,7 +134,9 @@ void DesktopWindowTreeHostWin::Init(aura::Window* content_window,
native_widget_delegate_); native_widget_delegate_);
HWND parent_hwnd = NULL; HWND parent_hwnd = NULL;
@ -26,7 +26,7 @@ index b54a643..5a589e5 100644
parent_hwnd = params.parent->GetHost()->GetAcceleratedWidget(); parent_hwnd = params.parent->GetHost()->GetAcceleratedWidget();
message_handler_->set_remove_standard_frame(params.remove_standard_frame); message_handler_->set_remove_standard_frame(params.remove_standard_frame);
@@ -820,6 +822,7 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { @@ -821,6 +823,7 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
// TODO(beng): inform the native_widget_delegate_. // TODO(beng): inform the native_widget_delegate_.
@ -34,7 +34,7 @@ index b54a643..5a589e5 100644
InputMethod* input_method = GetInputMethod(); InputMethod* input_method = GetInputMethod();
if (input_method) if (input_method)
input_method->OnFocus(); input_method->OnFocus();
@@ -827,6 +830,7 @@ void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -828,6 +831,7 @@ void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
void DesktopWindowTreeHostWin::HandleNativeBlur(HWND focused_window) { void DesktopWindowTreeHostWin::HandleNativeBlur(HWND focused_window) {
// TODO(beng): inform the native_widget_delegate_. // TODO(beng): inform the native_widget_delegate_.
@ -153,26 +153,26 @@ index 94d4b1b..2609f46 100644
}; };
diff --git widget.cc widget.cc diff --git widget.cc widget.cc
index 15b810a..2f01d9e 100644 index 8893d8c..e517828 100644
--- widget.cc --- widget.cc
+++ widget.cc +++ widget.cc
@@ -110,6 +110,7 @@ Widget::InitParams::InitParams() @@ -111,6 +111,7 @@ Widget::InitParams::InitParams()
use_system_default_icon(false), use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT), show_state(ui::SHOW_STATE_DEFAULT),
parent(NULL), parent(NULL),
+ parent_widget(gfx::kNullAcceleratedWidget), + parent_widget(gfx::kNullAcceleratedWidget),
native_widget(NULL), native_widget(NULL),
desktop_window_tree_host(NULL), desktop_window_tree_host(NULL),
layer_type(aura::WINDOW_LAYER_TEXTURED), layer_type(ui::LAYER_TEXTURED),
@@ -133,6 +134,7 @@ Widget::InitParams::InitParams(Type type) @@ -134,6 +135,7 @@ Widget::InitParams::InitParams(Type type)
use_system_default_icon(false), use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT), show_state(ui::SHOW_STATE_DEFAULT),
parent(NULL), parent(NULL),
+ parent_widget(gfx::kNullAcceleratedWidget), + parent_widget(gfx::kNullAcceleratedWidget),
native_widget(NULL), native_widget(NULL),
desktop_window_tree_host(NULL), desktop_window_tree_host(NULL),
layer_type(aura::WINDOW_LAYER_TEXTURED), layer_type(ui::LAYER_TEXTURED),
@@ -307,7 +309,7 @@ void Widget::Init(const InitParams& in_params) { @@ -308,7 +310,7 @@ void Widget::Init(const InitParams& in_params) {
InitParams params = in_params; InitParams params = in_params;
params.child |= (params.type == InitParams::TYPE_CONTROL); params.child |= (params.type == InitParams::TYPE_CONTROL);
@ -181,7 +181,7 @@ index 15b810a..2f01d9e 100644
if (params.opacity == views::Widget::InitParams::INFER_OPACITY && if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
params.type != views::Widget::InitParams::TYPE_WINDOW && params.type != views::Widget::InitParams::TYPE_WINDOW &&
@@ -370,7 +372,12 @@ void Widget::Init(const InitParams& in_params) { @@ -371,7 +373,12 @@ void Widget::Init(const InitParams& in_params) {
Minimize(); Minimize();
} else if (params.delegate) { } else if (params.delegate) {
SetContentsView(params.delegate->GetContentsView()); SetContentsView(params.delegate->GetContentsView());
@ -196,10 +196,10 @@ index 15b810a..2f01d9e 100644
// This must come after SetContentsView() or it might not be able to find // This must come after SetContentsView() or it might not be able to find
// the correct NativeTheme (on Linux). See http://crbug.com/384492 // the correct NativeTheme (on Linux). See http://crbug.com/384492
diff --git widget.h widget.h diff --git widget.h widget.h
index 2f6030b..fdf4172 100644 index 59e7b1d..bf888d7 100644
--- widget.h --- widget.h
+++ widget.h +++ widget.h
@@ -235,6 +235,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -234,6 +234,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// Whether the widget should be maximized or minimized. // Whether the widget should be maximized or minimized.
ui::WindowShowState show_state; ui::WindowShowState show_state;
gfx::NativeView parent; gfx::NativeView parent;

View File

@ -1,8 +1,8 @@
diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp
index 2565230..31a838f 100644 index 606a744..4003e49 100644
--- Source/web/ChromeClientImpl.cpp --- Source/web/ChromeClientImpl.cpp
+++ Source/web/ChromeClientImpl.cpp +++ Source/web/ChromeClientImpl.cpp
@@ -735,7 +735,7 @@ bool ChromeClientImpl::hasOpenedPopup() const @@ -775,7 +775,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::createPopupMenu(LocalFrame& frame, PopupMenuClient* client) PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::createPopupMenu(LocalFrame& frame, PopupMenuClient* client)
{ {
@ -12,10 +12,10 @@ index 2565230..31a838f 100644
if (RuntimeEnabledFeatures::htmlPopupMenuEnabled() && RuntimeEnabledFeatures::pagePopupEnabled()) if (RuntimeEnabledFeatures::htmlPopupMenuEnabled() && RuntimeEnabledFeatures::pagePopupEnabled())
diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp
index 14c0dbf..0943bf2 100644 index aa9c0c5..9f14208 100644
--- Source/web/WebViewImpl.cpp --- Source/web/WebViewImpl.cpp
+++ Source/web/WebViewImpl.cpp +++ Source/web/WebViewImpl.cpp
@@ -395,6 +395,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) @@ -396,6 +396,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
, m_fakePageScaleAnimationPageScaleFactor(0) , m_fakePageScaleAnimationPageScaleFactor(0)
, m_fakePageScaleAnimationUseAnchor(false) , m_fakePageScaleAnimationUseAnchor(false)
, m_contextMenuAllowed(false) , m_contextMenuAllowed(false)
@ -23,7 +23,7 @@ index 14c0dbf..0943bf2 100644
, m_doingDragAndDrop(false) , m_doingDragAndDrop(false)
, m_ignoreInputEvents(false) , m_ignoreInputEvents(false)
, m_compositorDeviceScaleFactorOverride(0) , m_compositorDeviceScaleFactorOverride(0)
@@ -4140,9 +4141,14 @@ void WebViewImpl::pageScaleFactorChanged() @@ -4036,9 +4037,14 @@ void WebViewImpl::pageScaleFactorChanged()
m_client->pageScaleFactorChanged(); m_client->pageScaleFactorChanged();
} }
@ -40,10 +40,10 @@ index 14c0dbf..0943bf2 100644
void WebViewImpl::startDragging(LocalFrame* frame, void WebViewImpl::startDragging(LocalFrame* frame,
diff --git Source/web/WebViewImpl.h Source/web/WebViewImpl.h diff --git Source/web/WebViewImpl.h Source/web/WebViewImpl.h
index 4c6e0a3..47b934b 100644 index cf3f40e..f6acc16 100644
--- Source/web/WebViewImpl.h --- Source/web/WebViewImpl.h
+++ Source/web/WebViewImpl.h +++ Source/web/WebViewImpl.h
@@ -401,7 +401,8 @@ public: @@ -394,7 +394,8 @@ public:
// Returns true if popup menus should be rendered by the browser, false if // Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default). // they should be rendered by WebKit (which is the default).
@ -53,7 +53,7 @@ index 4c6e0a3..47b934b 100644
bool contextMenuAllowed() const bool contextMenuAllowed() const
{ {
@@ -704,6 +705,8 @@ private: @@ -688,6 +689,8 @@ private:
bool m_contextMenuAllowed; bool m_contextMenuAllowed;
@ -63,10 +63,10 @@ index 4c6e0a3..47b934b 100644
bool m_ignoreInputEvents; bool m_ignoreInputEvents;
diff --git public/web/WebView.h public/web/WebView.h diff --git public/web/WebView.h public/web/WebView.h
index 20aeff9..0eeda6e 100644 index a7e9f99..f671362 100644
--- public/web/WebView.h --- public/web/WebView.h
+++ public/web/WebView.h +++ public/web/WebView.h
@@ -402,6 +402,7 @@ public: @@ -403,6 +403,7 @@ public:
// Sets whether select popup menus should be rendered by the browser. // Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void setUseExternalPopupMenus(bool); BLINK_EXPORT static void setUseExternalPopupMenus(bool);