Update to Chromium revision d3cf92ca (#310534).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1963 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2015-01-09 17:22:10 +00:00
parent b5e8914bde
commit ba198e9ef1
44 changed files with 583 additions and 404 deletions

View File

@ -7,5 +7,5 @@
# https://code.google.com/p/chromiumembedded/wiki/BranchesAndBuilding # https://code.google.com/p/chromiumembedded/wiki/BranchesAndBuilding
{ {
'chromium_checkout': '8cb76f56a1d0e12b80006e8958187bc8148ea346', 'chromium_checkout': 'd3cf92cac313434de99ae66f6e3e12d27ab536ef',
} }

View File

@ -781,11 +781,11 @@
'action_name': 'make_pack_resources_header', 'action_name': 'make_pack_resources_header',
'variables': { 'variables': {
'header_inputs': [ 'header_inputs': [
'<(SHARED_INTERMEDIATE_DIR)/blink/grit/devtools_resources.h',
'<(SHARED_INTERMEDIATE_DIR)/blink/public/resources/grit/blink_resources.h', '<(SHARED_INTERMEDIATE_DIR)/blink/public/resources/grit/blink_resources.h',
'<(SHARED_INTERMEDIATE_DIR)/content/grit/content_resources.h', '<(SHARED_INTERMEDIATE_DIR)/content/grit/content_resources.h',
'<(SHARED_INTERMEDIATE_DIR)/net/grit/net_resources.h', '<(SHARED_INTERMEDIATE_DIR)/net/grit/net_resources.h',
'<(SHARED_INTERMEDIATE_DIR)/ui/resources/grit/ui_resources.h', '<(SHARED_INTERMEDIATE_DIR)/ui/resources/grit/ui_resources.h',
'<(SHARED_INTERMEDIATE_DIR)/webkit/grit/devtools_resources.h',
'<(grit_out_dir)/grit/cef_resources.h', '<(grit_out_dir)/grit/cef_resources.h',
], ],
}, },
@ -825,7 +825,7 @@
# Keep the devtools_resources.pak file separate. # Keep the devtools_resources.pak file separate.
'destination': '<(PRODUCT_DIR)', 'destination': '<(PRODUCT_DIR)',
'files': [ 'files': [
'<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak', '<(SHARED_INTERMEDIATE_DIR)/blink/devtools_resources.pak',
], ],
}, },
], ],
@ -1132,13 +1132,10 @@
'<(DEPTH)/chrome/browser/printing/printer_query.h', '<(DEPTH)/chrome/browser/printing/printer_query.h',
'<(DEPTH)/chrome/common/extensions/extension_constants.cc', '<(DEPTH)/chrome/common/extensions/extension_constants.cc',
'<(DEPTH)/chrome/common/extensions/extension_constants.h', '<(DEPTH)/chrome/common/extensions/extension_constants.h',
'<(DEPTH)/chrome/common/prerender_messages.h',
'<(DEPTH)/chrome/common/print_messages.cc', '<(DEPTH)/chrome/common/print_messages.cc',
'<(DEPTH)/chrome/common/print_messages.h', '<(DEPTH)/chrome/common/print_messages.h',
'<(DEPTH)/chrome/renderer/pepper/chrome_pdf_print_client.cc', '<(DEPTH)/chrome/renderer/pepper/chrome_pdf_print_client.cc',
'<(DEPTH)/chrome/renderer/pepper/chrome_pdf_print_client.h', '<(DEPTH)/chrome/renderer/pepper/chrome_pdf_print_client.h',
'<(DEPTH)/chrome/renderer/prerender/prerender_helper.cc',
'<(DEPTH)/chrome/renderer/prerender/prerender_helper.h',
'<(DEPTH)/chrome/renderer/printing/print_web_view_helper.cc', '<(DEPTH)/chrome/renderer/printing/print_web_view_helper.cc',
'<(DEPTH)/chrome/renderer/printing/print_web_view_helper.h', '<(DEPTH)/chrome/renderer/printing/print_web_view_helper.h',
'<(DEPTH)/extensions/common/constants.cc', '<(DEPTH)/extensions/common/constants.cc',

View File

@ -57,10 +57,76 @@
#pragma once #pragma once
#if defined(BASE_TUPLE_H__) #if defined(BASE_TUPLE_H__)
// Do nothing if the Chromium header has already been included. // The Chromium header has already been included.
// This can happen in cases where Chromium code is used directly by the // This can happen in cases where Chromium code is used directly by the
// client application. When using Chromium code directly always include // client application. When using Chromium code directly always include
// the Chromium header first to avoid type conflicts. // the Chromium header first to avoid type conflicts.
// For legacy compatibility, we name the first 8 tuple elements "a", "b", ...
// TODO(cef): Remove this code when cef_runnable.h is deleted.
#define DEFINE_TUPLE_LEAF(N, x) \
template <typename T> \
struct TupleLeaf<N, T> { \
TupleLeaf() {} \
explicit TupleLeaf(typename TupleTraits<T>::ParamType x) : x(x) {} \
\
T& get() { return x; } \
const T& get() const { return x; } \
\
T x; \
}
DEFINE_TUPLE_LEAF(0, a);
DEFINE_TUPLE_LEAF(1, b);
DEFINE_TUPLE_LEAF(2, c);
DEFINE_TUPLE_LEAF(3, d);
DEFINE_TUPLE_LEAF(4, e);
DEFINE_TUPLE_LEAF(5, f);
DEFINE_TUPLE_LEAF(6, g);
DEFINE_TUPLE_LEAF(7, h);
#undef DEFINE_TUPLE_LEAF
// Deprecated compat aliases
// TODO(cef): Remove this code when cef_runnable.h is deleted.
using Tuple0 = Tuple<>;
template <typename A>
using Tuple1 = Tuple<A>;
template <typename A, typename B>
using Tuple2 = Tuple<A, B>;
template <typename A, typename B, typename C>
using Tuple3 = Tuple<A, B, C>;
template <typename A, typename B, typename C, typename D>
using Tuple4 = Tuple<A, B, C, D>;
template <typename A, typename B, typename C, typename D, typename E>
using Tuple5 = Tuple<A, B, C, D, E>;
template <typename A,
typename B,
typename C,
typename D,
typename E,
typename F>
using Tuple6 = Tuple<A, B, C, D, E, F>;
template <typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G>
using Tuple7 = Tuple<A, B, C, D, E, F, G>;
template <typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H>
using Tuple8 = Tuple<A, B, C, D, E, F, G, H>;
#elif defined(BUILDING_CEF_SHARED) #elif defined(BUILDING_CEF_SHARED)
// When building CEF include the Chromium header directly. // When building CEF include the Chromium header directly.
#include "base/tuple.h" #include "base/tuple.h"

View File

@ -34,6 +34,13 @@
#define CEF_INCLUDE_CEF_RUNNABLE_H_ #define CEF_INCLUDE_CEF_RUNNABLE_H_
#pragma once #pragma once
#if defined(BUILDING_CEF_SHARED)
// The implementation of cef_runnable.h depends on an obsolete version of
// base/tuple.h that is implemented by cef_tuple.h for client applications but
// is not compatible with the version used when building Chromium/CEF.
#error This header cannot be used when building Chromium/CEF.
#endif
#include "include/base/cef_tuple.h" #include "include/base/cef_tuple.h"
#include "include/cef_base.h" #include "include/cef_base.h"
#include "include/cef_task.h" #include "include/cef_task.h"

View File

@ -2187,6 +2187,7 @@ bool CefBrowserHostImpl::CanDragEnter(
bool CefBrowserHostImpl::ShouldCreateWebContents( bool CefBrowserHostImpl::ShouldCreateWebContents(
content::WebContents* web_contents, content::WebContents* web_contents,
int route_id, int route_id,
int main_frame_route_id,
WindowContainerType window_container_type, WindowContainerType window_container_type,
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,
@ -2297,8 +2298,9 @@ void CefBrowserHostImpl::RequestMediaAccessPermission(
content::MediaStreamDevices devices; content::MediaStreamDevices devices;
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
if (!command_line.HasSwitch(switches::kEnableMediaStream)) { base::CommandLine::ForCurrentProcess();
if (!command_line->HasSwitch(switches::kEnableMediaStream)) {
// Cancel the request. // Cancel the request.
callback.Run(devices, content::MEDIA_DEVICE_PERMISSION_DENIED, callback.Run(devices, content::MEDIA_DEVICE_PERMISSION_DENIED,
scoped_ptr<content::MediaStreamUI>()); scoped_ptr<content::MediaStreamUI>());

View File

@ -369,6 +369,7 @@ class CefBrowserHostImpl : public CefBrowserHost,
bool ShouldCreateWebContents( bool ShouldCreateWebContents(
content::WebContents* web_contents, content::WebContents* web_contents,
int route_id, int route_id,
int main_frame_route_id,
WindowContainerType window_container_type, WindowContainerType window_container_type,
const base::string16& frame_name, const base::string16& frame_name,
const GURL& target_url, const GURL& target_url,

View File

@ -30,7 +30,7 @@
#import "ui/base/cocoa/underlay_opengl_hosting_window.h" #import "ui/base/cocoa/underlay_opengl_hosting_window.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/events/keycodes/keyboard_codes_posix.h" #include "ui/events/keycodes/keyboard_codes_posix.h"
#include "ui/gfx/rect.h" #include "ui/gfx/geometry/rect.h"
// Wrapper NSView for the native view. Necessary to destroy the browser when // Wrapper NSView for the native view. Necessary to destroy the browser when
// the view is deleted. // the view is deleted.

View File

@ -140,10 +140,11 @@ void CefBrowserMainParts::PreMainMessageLoopRun() {
// to CefURLRequestContextGetter::GetURLRequestContext() on the IO thread. // to CefURLRequestContextGetter::GetURLRequestContext() on the IO thread.
global_request_context_ = global_browser_context_->GetRequestContext(); global_request_context_ = global_browser_context_->GetRequestContext();
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
if (command_line.HasSwitch(switches::kRemoteDebuggingPort)) { base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kRemoteDebuggingPort)) {
std::string port_str = std::string port_str =
command_line.GetSwitchValueASCII(switches::kRemoteDebuggingPort); command_line->GetSwitchValueASCII(switches::kRemoteDebuggingPort);
int port; int port;
if (base::StringToInt(port_str, &port) && port > 0 && port < 65535) { if (base::StringToInt(port_str, &port) && port > 0 && port < 65535) {
devtools_delegate_ = devtools_delegate_ =

View File

@ -15,33 +15,34 @@
// Set default preferences based on CEF command-line flags. Chromium command- // Set default preferences based on CEF command-line flags. Chromium command-
// line flags should not exist for these preferences. // line flags should not exist for these preferences.
void SetDefaults(content::WebPreferences& web) { void SetDefaults(content::WebPreferences& web) {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(switches::kDefaultEncoding)) { if (command_line->HasSwitch(switches::kDefaultEncoding)) {
web.default_encoding = web.default_encoding =
command_line.GetSwitchValueASCII(switches::kDefaultEncoding); command_line->GetSwitchValueASCII(switches::kDefaultEncoding);
} }
web.javascript_can_open_windows_automatically = web.javascript_can_open_windows_automatically =
!command_line.HasSwitch(switches::kDisableJavascriptOpenWindows); !command_line->HasSwitch(switches::kDisableJavascriptOpenWindows);
web.allow_scripts_to_close_windows = web.allow_scripts_to_close_windows =
!command_line.HasSwitch(switches::kDisableJavascriptCloseWindows); !command_line->HasSwitch(switches::kDisableJavascriptCloseWindows);
web.javascript_can_access_clipboard = web.javascript_can_access_clipboard =
!command_line.HasSwitch(switches::kDisableJavascriptAccessClipboard); !command_line->HasSwitch(switches::kDisableJavascriptAccessClipboard);
web.dom_paste_enabled = web.dom_paste_enabled =
!command_line.HasSwitch(switches::kDisableJavascriptDomPaste); !command_line->HasSwitch(switches::kDisableJavascriptDomPaste);
web.caret_browsing_enabled = web.caret_browsing_enabled =
command_line.HasSwitch(switches::kEnableCaretBrowsing); command_line->HasSwitch(switches::kEnableCaretBrowsing);
web.allow_universal_access_from_file_urls = web.allow_universal_access_from_file_urls =
command_line.HasSwitch(switches::kAllowUniversalAccessFromFileUrls); command_line->HasSwitch(switches::kAllowUniversalAccessFromFileUrls);
web.loads_images_automatically = web.loads_images_automatically =
!command_line.HasSwitch(switches::kDisableImageLoading); !command_line->HasSwitch(switches::kDisableImageLoading);
web.shrinks_standalone_images_to_fit = web.shrinks_standalone_images_to_fit =
command_line.HasSwitch(switches::kImageShrinkStandaloneToFit); command_line->HasSwitch(switches::kImageShrinkStandaloneToFit);
web.text_areas_are_resizable = web.text_areas_are_resizable =
!command_line.HasSwitch(switches::kDisableTextAreaResize); !command_line->HasSwitch(switches::kDisableTextAreaResize);
web.tabs_to_links = web.tabs_to_links =
!command_line.HasSwitch(switches::kDisableTabToLinks); !command_line->HasSwitch(switches::kDisableTabToLinks);
} }
// Helper macro for setting a WebPreferences variable based on the value of a // Helper macro for setting a WebPreferences variable based on the value of a

View File

@ -94,11 +94,11 @@ std::string GetOSType() {
std::string GetCommandLine() { std::string GetCommandLine() {
#if defined(OS_WIN) #if defined(OS_WIN)
return base::WideToUTF8( return base::WideToUTF8(
CommandLine::ForCurrentProcess()->GetCommandLineString()); base::CommandLine::ForCurrentProcess()->GetCommandLineString());
#elif defined(OS_POSIX) #elif defined(OS_POSIX)
std::string command_line = ""; std::string command_line = "";
typedef std::vector<std::string> ArgvList; typedef std::vector<std::string> ArgvList;
const ArgvList& argv = CommandLine::ForCurrentProcess()->argv(); const ArgvList& argv = base::CommandLine::ForCurrentProcess()->argv();
for (ArgvList::const_iterator iter = argv.begin(); iter != argv.end(); iter++) for (ArgvList::const_iterator iter = argv.begin(); iter != argv.end(); iter++)
command_line += " " + *iter; command_line += " " + *iter;
// TODO(viettrungluu): |command_line| could really have any encoding, whereas // TODO(viettrungluu): |command_line| could really have any encoding, whereas

View File

@ -657,8 +657,8 @@ bool CefContentBrowserClient::IsHandledURL(const GURL& url) {
void CefContentBrowserClient::AppendExtraCommandLineSwitches( void CefContentBrowserClient::AppendExtraCommandLineSwitches(
base::CommandLine* command_line, int child_process_id) { base::CommandLine* command_line, int child_process_id) {
const base::CommandLine& browser_cmd = const base::CommandLine* browser_cmd =
*base::CommandLine::ForCurrentProcess(); base::CommandLine::ForCurrentProcess();
{ {
// Propagate the following switches to all command lines (along with any // Propagate the following switches to all command lines (along with any
@ -677,7 +677,7 @@ void CefContentBrowserClient::AppendExtraCommandLineSwitches(
switches::kResourcesDirPath, switches::kResourcesDirPath,
switches::kUserAgent, switches::kUserAgent,
}; };
command_line->CopySwitchesFrom(browser_cmd, kSwitchNames, command_line->CopySwitchesFrom(*browser_cmd, kSwitchNames,
arraysize(kSwitchNames)); arraysize(kSwitchNames));
} }
@ -693,16 +693,16 @@ void CefContentBrowserClient::AppendExtraCommandLineSwitches(
switches::kEnableSpellingAutoCorrect, switches::kEnableSpellingAutoCorrect,
switches::kUncaughtExceptionStackSize, switches::kUncaughtExceptionStackSize,
}; };
command_line->CopySwitchesFrom(browser_cmd, kSwitchNames, command_line->CopySwitchesFrom(*browser_cmd, kSwitchNames,
arraysize(kSwitchNames)); arraysize(kSwitchNames));
} }
#if defined(OS_LINUX) #if defined(OS_LINUX)
if (process_type == switches::kZygoteProcess && if (process_type == switches::kZygoteProcess &&
browser_cmd.HasSwitch(switches::kBrowserSubprocessPath)) { browser_cmd->HasSwitch(switches::kBrowserSubprocessPath)) {
// Force use of the sub-process executable path for the zygote process. // Force use of the sub-process executable path for the zygote process.
const base::FilePath& subprocess_path = const base::FilePath& subprocess_path =
browser_cmd.GetSwitchValuePath(switches::kBrowserSubprocessPath); browser_cmd->GetSwitchValuePath(switches::kBrowserSubprocessPath);
if (!subprocess_path.empty()) if (!subprocess_path.empty())
command_line->SetProgram(subprocess_path); command_line->SetProgram(subprocess_path);
} }

View File

@ -58,7 +58,7 @@ class CefForceShutdown {
int CefExecuteProcess(const CefMainArgs& args, int CefExecuteProcess(const CefMainArgs& args,
CefRefPtr<CefApp> application, CefRefPtr<CefApp> application,
void* windows_sandbox_info) { void* windows_sandbox_info) {
CommandLine command_line(CommandLine::NO_PROGRAM); base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
#if defined(OS_WIN) #if defined(OS_WIN)
command_line.ParseFromString(::GetCommandLineW()); command_line.ParseFromString(::GetCommandLineW());
#else #else

View File

@ -23,6 +23,14 @@
#include "net/base/net_util.h" #include "net/base/net_util.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
namespace {
// This constant should be in sync with
// the constant at devtools_ui_bindings.cc.
const size_t kMaxMessageChunkSize = IPC::Channel::kMaximumMessageSize / 4;
} // namespace
// static // static
CefDevToolsFrontend* CefDevToolsFrontend::Show( CefDevToolsFrontend* CefDevToolsFrontend::Show(
CefRefPtr<CefBrowserHostImpl> inspected_browser, CefRefPtr<CefBrowserHostImpl> inspected_browser,
@ -148,12 +156,22 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontendToBackend(
void CefDevToolsFrontend::DispatchProtocolMessage( void CefDevToolsFrontend::DispatchProtocolMessage(
content::DevToolsAgentHost* agent_host, content::DevToolsAgentHost* agent_host,
const std::string& message) { const std::string& message) {
base::StringValue message_value(message); if (message.length() < kMaxMessageChunkSize) {
base::string16 javascript = base::UTF8ToUTF16(
"DevToolsAPI.dispatchMessage(" + message + ");");
web_contents()->GetMainFrame()->ExecuteJavaScript(javascript);
return;
}
base::FundamentalValue total_size(static_cast<int>(message.length()));
for (size_t pos = 0; pos < message.length(); pos += kMaxMessageChunkSize) {
base::StringValue message_value(message.substr(pos, kMaxMessageChunkSize));
std::string param; std::string param;
base::JSONWriter::Write(&message_value, &param); base::JSONWriter::Write(&message_value, &param);
std::string code = "DevToolsAPI.dispatchMessage(" + param + ");"; std::string code = "DevToolsAPI.dispatchMessageChunk(" + param + ");";
base::string16 javascript = base::UTF8ToUTF16(code); base::string16 javascript = base::UTF8ToUTF16(code);
web_contents()->GetMainFrame()->ExecuteJavaScript(javascript); web_contents()->GetMainFrame()->ExecuteJavaScript(javascript);
}
} }
void CefDevToolsFrontend::AgentHostClosed( void CefDevToolsFrontend::AgentHostClosed(

View File

@ -9,7 +9,7 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "ui/aura/window.h" #include "ui/aura/window.h"
#include "ui/gfx/point.h" #include "ui/gfx/geometry/point.h"
CefMenuCreatorRunnerLinux::CefMenuCreatorRunnerLinux() { CefMenuCreatorRunnerLinux::CefMenuCreatorRunnerLinux() {
} }

View File

@ -7,7 +7,7 @@
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "ui/aura/window.h" #include "ui/aura/window.h"
#include "ui/gfx/point.h" #include "ui/gfx/geometry/point.h"
#include "ui/views/controls/menu/menu_2.h" #include "ui/views/controls/menu/menu_2.h"
CefMenuCreatorRunnerWin::CefMenuCreatorRunnerWin() { CefMenuCreatorRunnerWin::CefMenuCreatorRunnerWin() {

View File

@ -263,10 +263,11 @@ void PrintingMessageFilter::OnGetDefaultPrintSettings(IPC::Message* reply_msg) {
// Loads default settings. This is asynchronous, only the IPC message sender // Loads default settings. This is asynchronous, only the IPC message sender
// will hang until the settings are retrieved. // will hang until the settings are retrieved.
printer_query->GetSettings( printer_query->GetSettings(
PrinterQuery::DEFAULTS, PrinterQuery::GetSettingsAskParam::DEFAULTS,
0, 0,
false, false,
DEFAULT_MARGINS, DEFAULT_MARGINS,
false,
base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply, base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply,
this, this,
printer_query, printer_query,
@ -307,10 +308,11 @@ void PrintingMessageFilter::OnScriptedPrint(
queue_->CreatePrinterQuery(render_process_id_, reply_msg->routing_id()); queue_->CreatePrinterQuery(render_process_id_, reply_msg->routing_id());
} }
printer_query->GetSettings( printer_query->GetSettings(
PrinterQuery::ASK_USER, PrinterQuery::GetSettingsAskParam::ASK_USER,
params.expected_pages_count, params.expected_pages_count,
params.has_selection, params.has_selection,
params.margin_type, params.margin_type,
params.is_scripted,
base::Bind(&PrintingMessageFilter::OnScriptedPrintReply, base::Bind(&PrintingMessageFilter::OnScriptedPrintReply,
this, this,
printer_query, printer_query,

View File

@ -38,8 +38,7 @@ class PrintingMessageFilter : public content::BrowserMessageFilter {
explicit PrintingMessageFilter(int render_process_id); explicit PrintingMessageFilter(int render_process_id);
// content::BrowserMessageFilter methods. // content::BrowserMessageFilter methods.
void OverrideThreadForMessage( void OverrideThreadForMessage(const IPC::Message& message,
const IPC::Message& message,
content::BrowserThread::ID* thread) override; content::BrowserThread::ID* thread) override;
bool OnMessageReceived(const IPC::Message& message) override; bool OnMessageReceived(const IPC::Message& message) override;

View File

@ -125,9 +125,10 @@ class CefSpeechRecognitionManagerDelegate::WebContentsWatcher
CefSpeechRecognitionManagerDelegate CefSpeechRecognitionManagerDelegate
::CefSpeechRecognitionManagerDelegate() { ::CefSpeechRecognitionManagerDelegate() {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
filter_profanities_ = filter_profanities_ =
command_line.HasSwitch(switches::kEnableProfanityFilter); command_line->HasSwitch(switches::kEnableProfanityFilter);
} }
CefSpeechRecognitionManagerDelegate CefSpeechRecognitionManagerDelegate

View File

@ -123,7 +123,8 @@ net::URLRequestContext* CefURLRequestContextGetter::GetURLRequestContext() {
if (!url_request_context_.get()) { if (!url_request_context_.get()) {
const base::FilePath& cache_path = CefContext::Get()->cache_path(); const base::FilePath& cache_path = CefContext::Get()->cache_path();
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
const CefSettings& settings = CefContext::Get()->settings(); const CefSettings& settings = CefContext::Get()->settings();
url_request_context_.reset(new net::URLRequestContext()); url_request_context_.reset(new net::URLRequestContext());
@ -132,7 +133,7 @@ net::URLRequestContext* CefURLRequestContextGetter::GetURLRequestContext() {
bool persist_session_cookies = bool persist_session_cookies =
(settings.persist_session_cookies || (settings.persist_session_cookies ||
command_line.HasSwitch(switches::kPersistSessionCookies)); command_line->HasSwitch(switches::kPersistSessionCookies));
SetCookieStoragePath(cache_path, persist_session_cookies); SetCookieStoragePath(cache_path, persist_session_cookies);
storage_->set_network_delegate(new CefNetworkDelegate); storage_->set_network_delegate(new CefNetworkDelegate);
@ -154,7 +155,7 @@ net::URLRequestContext* CefURLRequestContextGetter::GetURLRequestContext() {
url_request_context_.get(), url_request_context_.get(),
url_request_context_->network_delegate(), url_request_context_->network_delegate(),
CefContentBrowserClient::Get()->proxy_config_service().release(), CefContentBrowserClient::Get()->proxy_config_service().release(),
command_line, *command_line,
true)); true));
storage_->set_proxy_service(system_proxy_service.release()); storage_->set_proxy_service(system_proxy_service.release());
@ -211,7 +212,7 @@ net::URLRequestContext* CefURLRequestContextGetter::GetURLRequestContext() {
url_request_context_->http_server_properties(); url_request_context_->http_server_properties();
network_session_params.ignore_certificate_errors = network_session_params.ignore_certificate_errors =
(settings.ignore_certificate_errors || (settings.ignore_certificate_errors ||
command_line.HasSwitch(switches::kIgnoreCertificateErrors)); command_line->HasSwitch(switches::kIgnoreCertificateErrors));
net::HttpCache* main_cache = new net::HttpCache(network_session_params, net::HttpCache* main_cache = new net::HttpCache(network_session_params,
main_backend); main_backend);

View File

@ -13,7 +13,7 @@
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "ui/events/platform/platform_event_dispatcher.h" #include "ui/events/platform/platform_event_dispatcher.h"
#include "ui/gfx/rect.h" #include "ui/gfx/geometry/rect.h"
#include "ui/gfx/x/x11_atom_cache.h" #include "ui/gfx/x/x11_atom_cache.h"
namespace views { namespace views {

View File

@ -39,7 +39,7 @@ struct ParamTraits<net::UploadElement> {
case net::UploadElement::TYPE_BYTES: { case net::UploadElement::TYPE_BYTES: {
const char* data; const char* data;
int len; int len;
if (!m->ReadData(iter, &data, &len)) if (!iter->ReadData(&data, &len))
return false; return false;
r->SetToBytes(data, len); r->SetToBytes(data, len);
break; break;

View File

@ -213,7 +213,6 @@ struct ParamTraits<scoped_refptr<net::UploadData> > {
#endif // CEF_LIBCEF_COMMON_CEF_MESSAGES_H_ #endif // CEF_LIBCEF_COMMON_CEF_MESSAGES_H_
#include "chrome/common/prerender_messages.h"
#include "chrome/common/print_messages.h" #include "chrome/common/print_messages.h"
#include "chrome/common/spellcheck_messages.h" #include "chrome/common/spellcheck_messages.h"

View File

@ -7,10 +7,10 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/logging.h" #include "base/logging.h"
CefCommandLineImpl::CefCommandLineImpl(CommandLine* value, CefCommandLineImpl::CefCommandLineImpl(base::CommandLine* value,
bool will_delete, bool will_delete,
bool read_only) bool read_only)
: CefValueBase<CefCommandLine, CommandLine>( : CefValueBase<CefCommandLine, base::CommandLine>(
value, NULL, will_delete ? kOwnerWillDelete : kOwnerNoDelete, value, NULL, will_delete ? kOwnerWillDelete : kOwnerNoDelete,
read_only, NULL) { read_only, NULL) {
} }
@ -26,7 +26,7 @@ bool CefCommandLineImpl::IsReadOnly() {
CefRefPtr<CefCommandLine> CefCommandLineImpl::Copy() { CefRefPtr<CefCommandLine> CefCommandLineImpl::Copy() {
CEF_VALUE_VERIFY_RETURN(false, NULL); CEF_VALUE_VERIFY_RETURN(false, NULL);
return new CefCommandLineImpl( return new CefCommandLineImpl(
new CommandLine(const_value().argv()), true, false); new base::CommandLine(const_value().argv()), true, false);
} }
void CefCommandLineImpl::InitFromArgv(int argc, const char* const* argv) { void CefCommandLineImpl::InitFromArgv(int argc, const char* const* argv) {
@ -49,18 +49,18 @@ void CefCommandLineImpl::InitFromString(const CefString& command_line) {
void CefCommandLineImpl::Reset() { void CefCommandLineImpl::Reset() {
CEF_VALUE_VERIFY_RETURN_VOID(true); CEF_VALUE_VERIFY_RETURN_VOID(true);
CommandLine::StringVector argv; base::CommandLine::StringVector argv;
argv.push_back(mutable_value()->GetProgram().value()); argv.push_back(mutable_value()->GetProgram().value());
mutable_value()->InitFromArgv(argv); mutable_value()->InitFromArgv(argv);
const CommandLine::SwitchMap& map = mutable_value()->GetSwitches(); const base::CommandLine::SwitchMap& map = mutable_value()->GetSwitches();
const_cast<CommandLine::SwitchMap*>(&map)->clear(); const_cast<base::CommandLine::SwitchMap*>(&map)->clear();
} }
void CefCommandLineImpl::GetArgv(std::vector<CefString>& argv) { void CefCommandLineImpl::GetArgv(std::vector<CefString>& argv) {
CEF_VALUE_VERIFY_RETURN_VOID(false); CEF_VALUE_VERIFY_RETURN_VOID(false);
const CommandLine::StringVector& cmd_argv = const_value().argv(); const base::CommandLine::StringVector& cmd_argv = const_value().argv();
CommandLine::StringVector::const_iterator it = cmd_argv.begin(); base::CommandLine::StringVector::const_iterator it = cmd_argv.begin();
for (; it != cmd_argv.end(); ++it) for (; it != cmd_argv.end(); ++it)
argv.push_back(*it); argv.push_back(*it);
} }
@ -97,8 +97,8 @@ CefString CefCommandLineImpl::GetSwitchValue(const CefString& name) {
void CefCommandLineImpl::GetSwitches(SwitchMap& switches) { void CefCommandLineImpl::GetSwitches(SwitchMap& switches) {
CEF_VALUE_VERIFY_RETURN_VOID(false); CEF_VALUE_VERIFY_RETURN_VOID(false);
const CommandLine::SwitchMap& map = const_value().GetSwitches(); const base::CommandLine::SwitchMap& map = const_value().GetSwitches();
CommandLine::SwitchMap::const_iterator it = map.begin(); base::CommandLine::SwitchMap::const_iterator it = map.begin();
for (; it != map.end(); ++it) for (; it != map.end(); ++it)
switches.insert(std::make_pair(it->first, it->second)); switches.insert(std::make_pair(it->first, it->second));
} }
@ -121,8 +121,8 @@ bool CefCommandLineImpl::HasArguments() {
void CefCommandLineImpl::GetArguments(ArgumentList& arguments) { void CefCommandLineImpl::GetArguments(ArgumentList& arguments) {
CEF_VALUE_VERIFY_RETURN_VOID(false); CEF_VALUE_VERIFY_RETURN_VOID(false);
const CommandLine::StringVector& vec = const_value().GetArgs(); const base::CommandLine::StringVector& vec = const_value().GetArgs();
CommandLine::StringVector::const_iterator it = vec.begin(); base::CommandLine::StringVector::const_iterator it = vec.begin();
for (; it != vec.end(); ++it) for (; it != vec.end(); ++it)
arguments.push_back(*it); arguments.push_back(*it);
} }
@ -143,7 +143,7 @@ void CefCommandLineImpl::PrependWrapper(const CefString& wrapper) {
// static // static
CefRefPtr<CefCommandLine> CefCommandLine::CreateCommandLine() { CefRefPtr<CefCommandLine> CefCommandLine::CreateCommandLine() {
return new CefCommandLineImpl( return new CefCommandLineImpl(
new CommandLine(CommandLine::NO_PROGRAM), true, false); new base::CommandLine(base::CommandLine::NO_PROGRAM), true, false);
} }
// static // static
@ -151,7 +151,7 @@ CefRefPtr<CefCommandLine> CefCommandLine::GetGlobalCommandLine() {
// Uses a singleton reference object. // Uses a singleton reference object.
static CefRefPtr<CefCommandLineImpl> commandLinePtr; static CefRefPtr<CefCommandLineImpl> commandLinePtr;
if (!commandLinePtr.get()) { if (!commandLinePtr.get()) {
CommandLine* command_line = CommandLine::ForCurrentProcess(); base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (command_line) if (command_line)
commandLinePtr = new CefCommandLineImpl(command_line, false, true); commandLinePtr = new CefCommandLineImpl(command_line, false, true);
} }

View File

@ -12,9 +12,10 @@
#include "base/command_line.h" #include "base/command_line.h"
// CefCommandLine implementation // CefCommandLine implementation
class CefCommandLineImpl : public CefValueBase<CefCommandLine, CommandLine> { class CefCommandLineImpl :
public CefValueBase<CefCommandLine, base::CommandLine> {
public: public:
CefCommandLineImpl(CommandLine* value, CefCommandLineImpl(base::CommandLine* value,
bool will_delete, bool will_delete,
bool read_only); bool read_only);
@ -42,7 +43,7 @@ class CefCommandLineImpl : public CefValueBase<CefCommandLine, CommandLine> {
void PrependWrapper(const CefString& wrapper) override; void PrependWrapper(const CefString& wrapper) override;
// Must hold the controller lock while using this value. // Must hold the controller lock while using this value.
const CommandLine& command_line() { return const_value(); } const base::CommandLine& command_line() { return const_value(); }
DISALLOW_COPY_AND_ASSIGN(CefCommandLineImpl); DISALLOW_COPY_AND_ASSIGN(CefCommandLineImpl);
}; };

View File

@ -113,13 +113,14 @@ void CefContentClient::AddAdditionalSchemes(
std::string CefContentClient::GetUserAgent() const { std::string CefContentClient::GetUserAgent() const {
std::string product_version; std::string product_version;
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
if (command_line.HasSwitch(switches::kUserAgent)) base::CommandLine::ForCurrentProcess();
return command_line.GetSwitchValueASCII(switches::kUserAgent); if (command_line->HasSwitch(switches::kUserAgent))
return command_line->GetSwitchValueASCII(switches::kUserAgent);
if (command_line.HasSwitch(switches::kProductVersion)) { if (command_line->HasSwitch(switches::kProductVersion)) {
product_version = product_version =
command_line.GetSwitchValueASCII(switches::kProductVersion); command_line->GetSwitchValueASCII(switches::kProductVersion);
} else { } else {
product_version = base::StringPrintf("Chrome/%d.%d.%d.%d", product_version = base::StringPrintf("Chrome/%d.%d.%d.%d",
CHROME_VERSION_MAJOR, CHROME_VERSION_MINOR, CHROME_VERSION_BUILD, CHROME_VERSION_MAJOR, CHROME_VERSION_MINOR, CHROME_VERSION_BUILD,

View File

@ -51,10 +51,11 @@ base::FilePath CefCrashReporterClient::GetReporterLogFilename() {
bool CefCrashReporterClient::GetCrashDumpLocation(base::FilePath* crash_dir) { bool CefCrashReporterClient::GetCrashDumpLocation(base::FilePath* crash_dir) {
#if !defined(OS_WIN) #if !defined(OS_WIN)
if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kCrashDumpsDir)) const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (!command_line->HasSwitch(switches::kCrashDumpsDir))
return false; return false;
*crash_dir = CommandLine::ForCurrentProcess()->GetSwitchValuePath( *crash_dir = command_line->GetSwitchValuePath(switches::kCrashDumpsDir);
switches::kCrashDumpsDir);
return true; return true;
#else #else
NOTREACHED(); NOTREACHED();

View File

@ -199,7 +199,7 @@ bool CefMainDelegate::BasicStartupComplete(int* exit_code) {
OverrideFrameworkBundlePath(); OverrideFrameworkBundlePath();
#endif #endif
CommandLine* command_line = CommandLine::ForCurrentProcess(); base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
std::string process_type = std::string process_type =
command_line->GetSwitchValueASCII(switches::kProcessType); command_line->GetSwitchValueASCII(switches::kProcessType);
@ -209,12 +209,12 @@ bool CefMainDelegate::BasicStartupComplete(int* exit_code) {
if (settings.command_line_args_disabled) { if (settings.command_line_args_disabled) {
// Remove any existing command-line arguments. // Remove any existing command-line arguments.
CommandLine::StringVector argv; base::CommandLine::StringVector argv;
argv.push_back(command_line->GetProgram().value()); argv.push_back(command_line->GetProgram().value());
command_line->InitFromArgv(argv); command_line->InitFromArgv(argv);
const CommandLine::SwitchMap& map = command_line->GetSwitches(); const base::CommandLine::SwitchMap& map = command_line->GetSwitches();
const_cast<CommandLine::SwitchMap*>(&map)->clear(); const_cast<base::CommandLine::SwitchMap*>(&map)->clear();
} }
if (settings.single_process) if (settings.single_process)
@ -387,11 +387,12 @@ bool CefMainDelegate::BasicStartupComplete(int* exit_code) {
} }
void CefMainDelegate::PreSandboxStartup() { void CefMainDelegate::PreSandboxStartup() {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
const std::string& process_type = const std::string& process_type =
command_line.GetSwitchValueASCII(switches::kProcessType); command_line->GetSwitchValueASCII(switches::kProcessType);
if (command_line.HasSwitch(switches::kEnableCrashReporter)) { if (command_line->HasSwitch(switches::kEnableCrashReporter)) {
crash_reporter::SetCrashReporterClient(g_crash_reporter_client.Pointer()); crash_reporter::SetCrashReporterClient(g_crash_reporter_client.Pointer());
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
base::mac::DisableOSCrashDumps(); base::mac::DisableOSCrashDumps();
@ -409,7 +410,7 @@ void CefMainDelegate::PreSandboxStartup() {
#endif #endif
} }
if (!command_line.HasSwitch(switches::kProcessType)) { if (!command_line->HasSwitch(switches::kProcessType)) {
// Only these paths when executing the main process. // Only these paths when executing the main process.
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
OverrideChildProcessPath(); OverrideChildProcessPath();
@ -430,7 +431,7 @@ void CefMainDelegate::PreSandboxStartup() {
OverridePdfPluginPath(); OverridePdfPluginPath();
if (command_line.HasSwitch(switches::kDisablePackLoading)) if (command_line->HasSwitch(switches::kDisablePackLoading))
content_client_.set_pack_loading_disabled(true); content_client_.set_pack_loading_disabled(true);
InitializeResourceBundle(); InitializeResourceBundle();
@ -481,9 +482,10 @@ void CefMainDelegate::ProcessExiting(const std::string& process_type) {
#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
void CefMainDelegate::ZygoteForked() { void CefMainDelegate::ZygoteForked() {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
if (command_line.HasSwitch(switches::kEnableCrashReporter)) { base::CommandLine::ForCurrentProcess();
const std::string& process_type = command_line.GetSwitchValueASCII( if (command_line->HasSwitch(switches::kEnableCrashReporter)) {
const std::string& process_type = command_line->GetSwitchValueASCII(
switches::kProcessType); switches::kProcessType);
breakpad::InitCrashReporter(process_type); breakpad::InitCrashReporter(process_type);
} }
@ -519,15 +521,16 @@ void CefMainDelegate::ShutdownBrowser() {
} }
void CefMainDelegate::InitializeResourceBundle() { void CefMainDelegate::InitializeResourceBundle() {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
base::FilePath cef_pak_file, cef_100_percent_pak_file, base::FilePath cef_pak_file, cef_100_percent_pak_file,
cef_200_percent_pak_file, devtools_pak_file, locales_dir; cef_200_percent_pak_file, devtools_pak_file, locales_dir;
if (!content_client_.pack_loading_disabled()) { if (!content_client_.pack_loading_disabled()) {
base::FilePath resources_dir; base::FilePath resources_dir;
if (command_line.HasSwitch(switches::kResourcesDirPath)) { if (command_line->HasSwitch(switches::kResourcesDirPath)) {
resources_dir = resources_dir =
command_line.GetSwitchValuePath(switches::kResourcesDirPath); command_line->GetSwitchValuePath(switches::kResourcesDirPath);
} }
if (resources_dir.empty()) if (resources_dir.empty())
resources_dir = GetResourcesFilePath(); resources_dir = GetResourcesFilePath();
@ -542,14 +545,14 @@ void CefMainDelegate::InitializeResourceBundle() {
resources_dir.Append(FILE_PATH_LITERAL("devtools_resources.pak")); resources_dir.Append(FILE_PATH_LITERAL("devtools_resources.pak"));
} }
if (command_line.HasSwitch(switches::kLocalesDirPath)) if (command_line->HasSwitch(switches::kLocalesDirPath))
locales_dir = command_line.GetSwitchValuePath(switches::kLocalesDirPath); locales_dir = command_line->GetSwitchValuePath(switches::kLocalesDirPath);
if (!locales_dir.empty()) if (!locales_dir.empty())
PathService::Override(ui::DIR_LOCALES, locales_dir); PathService::Override(ui::DIR_LOCALES, locales_dir);
} }
std::string locale = command_line.GetSwitchValueASCII(switches::kLang); std::string locale = command_line->GetSwitchValueASCII(switches::kLang);
DCHECK(!locale.empty()); DCHECK(!locale.empty());
const std::string loaded_locale = const std::string loaded_locale =

View File

@ -62,6 +62,7 @@ MSVC_POP_WARNING();
#include "third_party/WebKit/public/platform/WebURL.h" #include "third_party/WebKit/public/platform/WebURL.h"
#include "third_party/WebKit/public/platform/WebWorkerRunLoop.h" #include "third_party/WebKit/public/platform/WebWorkerRunLoop.h"
#include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebDocument.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/WebKit.h"
@ -150,6 +151,24 @@ class CefWebWorkerTaskRunner : public base::SequencedTaskRunner,
int worker_id_; int worker_id_;
}; };
class CefPrintWebViewHelperDelegate :
public printing::PrintWebViewHelper::Delegate {
public:
CefPrintWebViewHelperDelegate() {}
bool CancelPrerender(content::RenderView* render_view,
int routing_id) override {
return false;
}
blink::WebElement GetPdfElement(blink::WebLocalFrame* frame) override {
return blink::WebElement();
}
private:
DISALLOW_COPY_AND_ASSIGN(CefPrintWebViewHelperDelegate);
};
#if defined(OS_WIN) #if defined(OS_WIN)
static base::win::IATPatchFunction g_iat_patch_createdca; static base::win::IATPatchFunction g_iat_patch_createdca;
HDC WINAPI CreateDCAPatch(LPCSTR driver_name, HDC WINAPI CreateDCAPatch(LPCSTR driver_name,
@ -244,7 +263,8 @@ void CefContentRendererClient::OnBrowserDestroyed(CefBrowserImpl* browser) {
} }
void CefContentRendererClient::WebKitInitialized() { void CefContentRendererClient::WebKitInitialized() {
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
// Create global objects associated with the default Isolate. // Create global objects associated with the default Isolate.
CefV8IsolateCreated(); CefV8IsolateCreated();
@ -305,10 +325,11 @@ void CefContentRendererClient::WebKitInitialized() {
} }
// The number of stack trace frames to capture for uncaught exceptions. // The number of stack trace frames to capture for uncaught exceptions.
if (command_line.HasSwitch(switches::kUncaughtExceptionStackSize)) { if (command_line->HasSwitch(switches::kUncaughtExceptionStackSize)) {
int uncaught_exception_stack_size = 0; int uncaught_exception_stack_size = 0;
base::StringToInt( base::StringToInt(
command_line.GetSwitchValueASCII(switches::kUncaughtExceptionStackSize), command_line->GetSwitchValueASCII(
switches::kUncaughtExceptionStackSize),
&uncaught_exception_stack_size); &uncaught_exception_stack_size);
if (uncaught_exception_stack_size > 0) { if (uncaught_exception_stack_size > 0) {
@ -760,7 +781,12 @@ void CefContentRendererClient::BrowserCreated(
browsers_.insert(std::make_pair(render_view, browser)); browsers_.insert(std::make_pair(render_view, browser));
new CefPrerendererClient(render_view); new CefPrerendererClient(render_view);
new printing::PrintWebViewHelper(render_view); new printing::PrintWebViewHelper(
render_view,
false,
true,
make_scoped_ptr<printing::PrintWebViewHelper::Delegate>(
new CefPrintWebViewHelperDelegate()));
if (!command_line->HasSwitch(switches::kDisableSpellChecking)) if (!command_line->HasSwitch(switches::kDisableSpellChecking))
new SpellCheckProvider(render_view, spellcheck_.get()); new SpellCheckProvider(render_view, spellcheck_.get());

View File

@ -63,9 +63,10 @@ class CefV8IsolateManager {
DCHECK(isolate_); DCHECK(isolate_);
DCHECK(task_runner_.get()); DCHECK(task_runner_.get());
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); const base::CommandLine* command_line =
if (command_line.HasSwitch(switches::kContextSafetyImplementation)) { base::CommandLine::ForCurrentProcess();
std::string value = command_line.GetSwitchValueASCII( if (command_line->HasSwitch(switches::kContextSafetyImplementation)) {
std::string value = command_line->GetSwitchValueASCII(
switches::kContextSafetyImplementation); switches::kContextSafetyImplementation);
int mode; int mode;
if (base::StringToInt(value, &mode)) { if (base::StringToInt(value, &mode)) {

View File

@ -79,6 +79,14 @@ patches = [
'name': 'browser_web_contents_1257', 'name': 'browser_web_contents_1257',
'path': '../content/browser/web_contents/', 'path': '../content/browser/web_contents/',
}, },
{
# Allow specification of a custom WebContentsView.
# This change is required due to chrome_browser_process_stub.h indirectly
# including chrome/browser/ui/browser.h on OS X.
# http://code.google.com/p/chromiumembedded/issues/detail?id=1257
'name': 'chrome_browser_1257',
'path': '../chrome/browser/',
},
{ {
# Allow customization of the WebView background color. # Allow customization of the WebView background color.
# http://code.google.com/p/chromiumembedded/issues/detail?id=1161 # http://code.google.com/p/chromiumembedded/issues/detail?id=1161

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 ca9112a..80e2b75 100644 index 0326fe5..5daf313 100644
--- web_contents_impl.cc --- web_contents_impl.cc
+++ web_contents_impl.cc +++ web_contents_impl.cc
@@ -1152,22 +1152,29 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { @@ -1164,22 +1164,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 ca9112a..80e2b75 100644
} }
CHECK(render_view_host_delegate_view_); CHECK(render_view_host_delegate_view_);
CHECK(view_.get()); CHECK(view_.get());
@@ -1502,6 +1509,9 @@ void WebContentsImpl::CreateNewWindow( @@ -1517,6 +1524,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 ca9112a..80e2b75 100644
if (delegate_ && if (delegate_ &&
!delegate_->ShouldCreateWebContents(this, !delegate_->ShouldCreateWebContents(this,
route_id, route_id,
@@ -1509,7 +1519,9 @@ void WebContentsImpl::CreateNewWindow( @@ -1525,7 +1535,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 ca9112a..80e2b75 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
@@ -1529,6 +1541,8 @@ void WebContentsImpl::CreateNewWindow( @@ -1545,6 +1557,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 c899e14..435bfb5 100644 index 83a3df6..a0a0b60 100644
--- common.gypi --- common.gypi
+++ common.gypi +++ common.gypi
@@ -9,6 +9,9 @@ @@ -9,6 +9,9 @@

View File

@ -0,0 +1,30 @@
diff --git ui/browser.cc ui/browser.cc
index 6c926b9..a809f0f 100644
--- ui/browser.cc
+++ ui/browser.cc
@@ -1567,7 +1567,9 @@ bool Browser::ShouldCreateWebContents(
const base::string16& frame_name,
const GURL& target_url,
const std::string& partition_id,
- content::SessionStorageNamespace* session_storage_namespace) {
+ content::SessionStorageNamespace* session_storage_namespace,
+ content::WebContentsView** view,
+ content::RenderViewHostDelegateView** delegate_view) {
if (window_container_type == WINDOW_CONTAINER_TYPE_BACKGROUND) {
// If a BackgroundContents is created, suppress the normal WebContents.
return !MaybeCreateBackgroundContents(route_id,
diff --git ui/browser.h ui/browser.h
index c9aad25..b682e4e 100644
--- ui/browser.h
+++ ui/browser.h
@@ -587,7 +587,9 @@ class Browser : public TabStripModelObserver,
const base::string16& frame_name,
const GURL& target_url,
const std::string& partition_id,
- content::SessionStorageNamespace* session_storage_namespace) override;
+ content::SessionStorageNamespace* session_storage_namespace,
+ content::WebContentsView** view,
+ content::RenderViewHostDelegateView** delegate_view) override;
void WebContentsCreated(content::WebContents* source_contents,
int opener_render_frame_id,
const base::string16& frame_name,

View File

@ -1,5 +1,5 @@
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 33b3aa0..801598c 100644 index c7c867e..5b0ea66 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
@@ -106,6 +106,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() { @@ -106,6 +106,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() {
@ -17,7 +17,7 @@ index 33b3aa0..801598c 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 5d9d793..da20f14 100644 index 94cd1a91..b13e64fb 100644
--- ui/compositor/compositor.h --- ui/compositor/compositor.h
+++ ui/compositor/compositor.h +++ ui/compositor/compositor.h
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
@ -56,7 +56,7 @@ index 5d9d793..da20f14 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
@@ -304,6 +319,8 @@ class COMPOSITOR_EXPORT Compositor @@ -310,6 +325,8 @@ class COMPOSITOR_EXPORT Compositor
ui::ContextFactory* context_factory_; ui::ContextFactory* context_factory_;

View File

@ -1,5 +1,5 @@
diff --git public/renderer/content_renderer_client.cc public/renderer/content_renderer_client.cc diff --git public/renderer/content_renderer_client.cc public/renderer/content_renderer_client.cc
index c4df640..6de25db 100644 index 489ee14..caa083e 100644
--- public/renderer/content_renderer_client.cc --- public/renderer/content_renderer_client.cc
+++ public/renderer/content_renderer_client.cc +++ public/renderer/content_renderer_client.cc
@@ -99,7 +99,6 @@ bool ContentRendererClient::AllowPopup() { @@ -99,7 +99,6 @@ bool ContentRendererClient::AllowPopup() {
@ -19,7 +19,7 @@ index c4df640..6de25db 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 9a6c695..c29b83a 100644 index bc82ce6..b112107 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
@@ -195,7 +195,6 @@ class CONTENT_EXPORT ContentRendererClient { @@ -195,7 +195,6 @@ class CONTENT_EXPORT ContentRendererClient {
@ -39,10 +39,10 @@ index 9a6c695..c29b83a 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 fa041b7..28b4a04 100644 index 473b185..2d082b5 100644
--- renderer/render_frame_impl.cc --- renderer/render_frame_impl.cc
+++ renderer/render_frame_impl.cc +++ renderer/render_frame_impl.cc
@@ -3748,7 +3748,6 @@ void RenderFrameImpl::OnCommitNavigation( @@ -3798,7 +3798,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 fa041b7..28b4a04 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) &&
@@ -3763,7 +3762,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( @@ -3813,7 +3812,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 42cc710..0feaec2 100644 index efd5760..62dd7b0 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 message_loop.cc message_loop.cc diff --git message_loop.cc message_loop.cc
index 2f4a03c..ea7d505 100644 index 8180733..927f755 100644
--- message_loop.cc --- message_loop.cc
+++ message_loop.cc +++ message_loop.cc
@@ -160,7 +160,6 @@ MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump) @@ -148,7 +148,6 @@ MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump)
MessageLoop::~MessageLoop() { MessageLoop::~MessageLoop() {
DCHECK_EQ(this, current()); DCHECK_EQ(this, current());

View File

@ -1,8 +1,8 @@
diff --git public/common/common_param_traits_macros.h public/common/common_param_traits_macros.h diff --git public/common/common_param_traits_macros.h public/common/common_param_traits_macros.h
index 85e98ce..46b7fb3 100644 index a064d53..8abea71 100644
--- public/common/common_param_traits_macros.h --- public/common/common_param_traits_macros.h
+++ public/common/common_param_traits_macros.h +++ public/common/common_param_traits_macros.h
@@ -186,6 +186,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) @@ -188,6 +188,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes) IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes)
IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale) IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale)
IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled) IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled)
@ -11,10 +11,10 @@ index 85e98ce..46b7fb3 100644
IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop) IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled) IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
diff --git public/common/web_preferences.cc public/common/web_preferences.cc diff --git public/common/web_preferences.cc public/common/web_preferences.cc
index 17bf9dc..b76213c 100644 index a5574d3..8e9e391 100644
--- public/common/web_preferences.cc --- public/common/web_preferences.cc
+++ public/common/web_preferences.cc +++ public/common/web_preferences.cc
@@ -178,6 +178,7 @@ WebPreferences::WebPreferences() @@ -179,6 +179,7 @@ WebPreferences::WebPreferences()
rubber_banding_on_compositor_thread(false), rubber_banding_on_compositor_thread(false),
use_solid_color_scrollbars(false), use_solid_color_scrollbars(false),
navigate_on_drag_drop(true), navigate_on_drag_drop(true),
@ -23,10 +23,10 @@ index 17bf9dc..b76213c 100644
v8_script_streaming_enabled(false), v8_script_streaming_enabled(false),
v8_script_streaming_mode(V8_SCRIPT_STREAMING_MODE_ALL), v8_script_streaming_mode(V8_SCRIPT_STREAMING_MODE_ALL),
diff --git public/common/web_preferences.h public/common/web_preferences.h diff --git public/common/web_preferences.h public/common/web_preferences.h
index c850133..1cfb3cc 100644 index 78559f2..028a94e 100644
--- public/common/web_preferences.h --- public/common/web_preferences.h
+++ public/common/web_preferences.h +++ public/common/web_preferences.h
@@ -165,6 +165,7 @@ struct CONTENT_EXPORT WebPreferences { @@ -169,6 +169,7 @@ struct CONTENT_EXPORT WebPreferences {
bool rubber_banding_on_compositor_thread; bool rubber_banding_on_compositor_thread;
bool use_solid_color_scrollbars; bool use_solid_color_scrollbars;
bool navigate_on_drag_drop; bool navigate_on_drag_drop;
@ -35,10 +35,10 @@ index c850133..1cfb3cc 100644
bool v8_script_streaming_enabled; bool v8_script_streaming_enabled;
V8ScriptStreamingMode v8_script_streaming_mode; V8ScriptStreamingMode v8_script_streaming_mode;
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 61f4c88..6772f2d 100644 index 623cb14..5d21fc5 100644
--- renderer/render_view_impl.cc --- renderer/render_view_impl.cc
+++ renderer/render_view_impl.cc +++ renderer/render_view_impl.cc
@@ -974,6 +974,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, @@ -958,6 +958,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
settings->setJavaEnabled(prefs.java_enabled); settings->setJavaEnabled(prefs.java_enabled);

View File

@ -1,8 +1,8 @@
diff --git content_browser_client.cc content_browser_client.cc diff --git content_browser_client.cc content_browser_client.cc
index c5c672f..dd84884 100644 index 91c8a4d..10c3b28 100644
--- content_browser_client.cc --- content_browser_client.cc
+++ content_browser_client.cc +++ content_browser_client.cc
@@ -273,6 +273,10 @@ bool ContentBrowserClient::IsFastShutdownPossible() { @@ -278,6 +278,10 @@ bool ContentBrowserClient::IsFastShutdownPossible() {
return true; return true;
} }
@ -14,18 +14,18 @@ index c5c672f..dd84884 100644
return base::FilePath(); return base::FilePath();
} }
diff --git content_browser_client.h content_browser_client.h diff --git content_browser_client.h content_browser_client.h
index 0934c9a..035ac1b 100644 index 627353d..e1805f4 100644
--- content_browser_client.h --- content_browser_client.h
+++ content_browser_client.h +++ content_browser_client.h
@@ -29,6 +29,7 @@ @@ -28,6 +28,7 @@
#include "net/url_request/url_request_interceptor.h" #include "net/url_request/url_request_interceptor.h"
#include "net/url_request/url_request_job_factory.h" #include "net/url_request/url_request_job_factory.h"
#include "storage/browser/fileapi/file_system_context.h" #include "storage/browser/fileapi/file_system_context.h"
+#include "third_party/skia/include/core/SkColor.h" +#include "third_party/skia/include/core/SkColor.h"
#include "third_party/WebKit/public/platform/WebNotificationPermission.h"
#include "ui/base/window_open_disposition.h" #include "ui/base/window_open_disposition.h"
@@ -514,6 +515,9 @@ class CONTENT_EXPORT ContentBrowserClient { #if defined(OS_POSIX) && !defined(OS_MACOSX)
@@ -499,6 +500,9 @@ class CONTENT_EXPORT ContentBrowserClient {
// Clears browser cookies. // Clears browser cookies.
virtual void ClearCookies(RenderViewHost* rvh) {} virtual void ClearCookies(RenderViewHost* rvh) {}
@ -62,7 +62,7 @@ index 7afc338..c014439 100644
WebContents::CreateParams::~CreateParams() { WebContents::CreateParams::~CreateParams() {
} }
diff --git web_contents.h web_contents.h diff --git web_contents.h web_contents.h
index 5478a37..d34c1da 100644 index 87becd6..b66d3fb 100644
--- web_contents.h --- web_contents.h
+++ web_contents.h +++ web_contents.h
@@ -52,9 +52,11 @@ class PageState; @@ -52,9 +52,11 @@ class PageState;
@ -77,7 +77,7 @@ index 5478a37..d34c1da 100644
struct CustomContextMenuContext; struct CustomContextMenuContext;
struct DropData; struct DropData;
struct Manifest; struct Manifest;
@@ -118,6 +120,10 @@ class WebContents : public PageNavigator, @@ -122,6 +124,10 @@ class WebContents : public PageNavigator,
// Used to specify the location context which display the new view should // Used to specify the location context which display the new view should
// belong. This can be NULL if not needed. // belong. This can be NULL if not needed.
gfx::NativeView context; gfx::NativeView context;
@ -89,10 +89,10 @@ index 5478a37..d34c1da 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 eefb8ab..b4646f8 100644 index e846041..da3c9e6 100644
--- web_contents_delegate.cc --- web_contents_delegate.cc
+++ web_contents_delegate.cc +++ web_contents_delegate.cc
@@ -136,7 +136,9 @@ bool WebContentsDelegate::ShouldCreateWebContents( @@ -137,7 +137,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,
@ -104,7 +104,7 @@ index eefb8ab..b4646f8 100644
} }
diff --git web_contents_delegate.h web_contents_delegate.h diff --git web_contents_delegate.h web_contents_delegate.h
index 17bed7f..64181d0 100644 index 344fbaf..adaa39d 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;
@ -119,7 +119,7 @@ index 17bed7f..64181d0 100644
struct ColorSuggestion; struct ColorSuggestion;
struct ContextMenuParams; struct ContextMenuParams;
struct DropData; struct DropData;
@@ -313,7 +315,9 @@ class CONTENT_EXPORT WebContentsDelegate { @@ -314,7 +316,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 core/frame/FrameView.cpp core/frame/FrameView.cpp diff --git core/frame/FrameView.cpp core/frame/FrameView.cpp
index d8b6105..33abf9d 100644 index 61cf629..f734ee9 100644
--- core/frame/FrameView.cpp --- core/frame/FrameView.cpp
+++ core/frame/FrameView.cpp +++ core/frame/FrameView.cpp
@@ -145,8 +145,10 @@ FrameView::FrameView(LocalFrame* frame) @@ -144,8 +144,10 @@ FrameView::FrameView(LocalFrame* frame)
if (!m_frame->isMainFrame()) if (!m_frame->isMainFrame())
return; return;

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 3752373..f588160 100644 index 1e8d67d..34b535a 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
@@ -131,7 +131,9 @@ void DesktopWindowTreeHostWin::Init(aura::Window* content_window, @@ -133,7 +133,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 3752373..f588160 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);
@@ -818,6 +820,7 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() { @@ -820,6 +822,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 3752373..f588160 100644
InputMethod* input_method = GetInputMethod(); InputMethod* input_method = GetInputMethod();
if (input_method) if (input_method)
input_method->OnFocus(); input_method->OnFocus();
@@ -825,6 +828,7 @@ void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) { @@ -827,6 +830,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_.
@ -43,10 +43,10 @@ index 3752373..f588160 100644
if (input_method) if (input_method)
input_method->OnBlur(); input_method->OnBlur();
diff --git desktop_aura/desktop_window_tree_host_x11.cc desktop_aura/desktop_window_tree_host_x11.cc diff --git desktop_aura/desktop_window_tree_host_x11.cc desktop_aura/desktop_window_tree_host_x11.cc
index dd8aa40..5d2a63d 100644 index 54d67ad..13e5163 100644
--- desktop_aura/desktop_window_tree_host_x11.cc --- desktop_aura/desktop_window_tree_host_x11.cc
+++ desktop_aura/desktop_window_tree_host_x11.cc +++ desktop_aura/desktop_window_tree_host_x11.cc
@@ -150,7 +150,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( @@ -152,7 +152,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
window_shape_(NULL), window_shape_(NULL),
custom_window_shape_(false), custom_window_shape_(false),
urgency_hint_set_(false), urgency_hint_set_(false),
@ -56,7 +56,7 @@ index dd8aa40..5d2a63d 100644
} }
DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() { DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() {
@@ -353,7 +354,8 @@ void DesktopWindowTreeHostX11::CloseNow() { @@ -355,7 +356,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
// Actually free our native resources. // Actually free our native resources.
if (ui::PlatformEventSource::GetInstance()) if (ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this); ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
@ -66,7 +66,7 @@ index dd8aa40..5d2a63d 100644
xwindow_ = None; xwindow_ = None;
desktop_native_widget_aura_->OnHostClosed(); desktop_native_widget_aura_->OnHostClosed();
@@ -447,6 +449,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement( @@ -449,6 +451,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
} }
gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const { gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
@ -75,7 +75,7 @@ index dd8aa40..5d2a63d 100644
return bounds_; return bounds_;
} }
@@ -459,6 +463,8 @@ gfx::Rect DesktopWindowTreeHostX11::GetClientAreaBoundsInScreen() const { @@ -461,6 +465,8 @@ gfx::Rect DesktopWindowTreeHostX11::GetClientAreaBoundsInScreen() const {
// Attempts to calculate the rect by asking the NonClientFrameView what it // Attempts to calculate the rect by asking the NonClientFrameView what it
// thought its GetBoundsForClientView() were broke combobox drop down // thought its GetBoundsForClientView() were broke combobox drop down
// placement. // placement.
@ -84,7 +84,7 @@ index dd8aa40..5d2a63d 100644
return bounds_; return bounds_;
} }
@@ -882,6 +888,8 @@ void DesktopWindowTreeHostX11::Hide() { @@ -884,6 +890,8 @@ void DesktopWindowTreeHostX11::Hide() {
} }
gfx::Rect DesktopWindowTreeHostX11::GetBounds() const { gfx::Rect DesktopWindowTreeHostX11::GetBounds() const {
@ -93,7 +93,7 @@ index dd8aa40..5d2a63d 100644
return bounds_; return bounds_;
} }
@@ -937,6 +945,8 @@ void DesktopWindowTreeHostX11::SetBounds(const gfx::Rect& requested_bounds) { @@ -939,6 +947,8 @@ void DesktopWindowTreeHostX11::SetBounds(const gfx::Rect& requested_bounds) {
} }
gfx::Point DesktopWindowTreeHostX11::GetLocationOnNativeScreen() const { gfx::Point DesktopWindowTreeHostX11::GetLocationOnNativeScreen() const {
@ -102,7 +102,7 @@ index dd8aa40..5d2a63d 100644
return bounds_.origin(); return bounds_.origin();
} }
@@ -1056,10 +1066,14 @@ void DesktopWindowTreeHostX11::InitX11Window( @@ -1058,10 +1068,14 @@ void DesktopWindowTreeHostX11::InitX11Window(
} }
} }
@ -118,7 +118,7 @@ index dd8aa40..5d2a63d 100644
bounds_.x(), bounds_.y(), bounds_.x(), bounds_.y(),
bounds_.width(), bounds_.height(), bounds_.width(), bounds_.height(),
0, // border width 0, // border width
@@ -1696,6 +1710,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( @@ -1698,6 +1712,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
} }
break; break;
} }
@ -130,7 +130,7 @@ index dd8aa40..5d2a63d 100644
if (xev->xfocus.mode != NotifyGrab) { if (xev->xfocus.mode != NotifyGrab) {
ReleaseCapture(); ReleaseCapture();
diff --git desktop_aura/desktop_window_tree_host_x11.h desktop_aura/desktop_window_tree_host_x11.h diff --git desktop_aura/desktop_window_tree_host_x11.h desktop_aura/desktop_window_tree_host_x11.h
index 1a4f725..c7ad0148 100644 index d6b5cc8..bf20d4c 100644
--- desktop_aura/desktop_window_tree_host_x11.h --- desktop_aura/desktop_window_tree_host_x11.h
+++ desktop_aura/desktop_window_tree_host_x11.h +++ desktop_aura/desktop_window_tree_host_x11.h
@@ -85,6 +85,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 @@ -85,6 +85,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11
@ -163,7 +163,7 @@ index 1a4f725..c7ad0148 100644
}; };
diff --git widget.cc widget.cc diff --git widget.cc widget.cc
index 7f649c0..5352f6a 100644 index a24f781..52a1755 100644
--- widget.cc --- widget.cc
+++ widget.cc +++ widget.cc
@@ -109,6 +109,7 @@ Widget::InitParams::InitParams() @@ -109,6 +109,7 @@ Widget::InitParams::InitParams()
@ -206,7 +206,7 @@ index 7f649c0..5352f6a 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 e208d5f..89c9cac 100644 index e0f6180..25f557f 100644
--- widget.h --- widget.h
+++ widget.h +++ widget.h
@@ -235,6 +235,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -235,6 +235,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,

View File

@ -1,10 +1,10 @@
diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp
index d98ab12..57c2e70 100644 index 781c45a..0fda8bf 100644
--- Source/web/ChromeClientImpl.cpp --- Source/web/ChromeClientImpl.cpp
+++ Source/web/ChromeClientImpl.cpp +++ Source/web/ChromeClientImpl.cpp
@@ -726,7 +726,7 @@ bool ChromeClientImpl::hasOpenedPopup() const @@ -741,7 +741,7 @@ bool ChromeClientImpl::hasOpenedPopup() const
PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::createPopupMenu(LocalFrame& frame, PopupMenuClient* client) const PassRefPtrWillBeRawPtr<PopupMenu> ChromeClientImpl::createPopupMenu(LocalFrame& frame, PopupMenuClient* client)
{ {
- if (WebViewImpl::useExternalPopupMenus()) - if (WebViewImpl::useExternalPopupMenus())
+ if (m_webView->useExternalPopupMenus()) + if (m_webView->useExternalPopupMenus())
@ -12,10 +12,10 @@ index d98ab12..57c2e70 100644
return adoptRefWillBeNoop(new PopupMenuChromium(frame, client)); return adoptRefWillBeNoop(new PopupMenuChromium(frame, client));
diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp
index 3626eac..91b1d66 100644 index 8ee7335..4e2384d 100644
--- Source/web/WebViewImpl.cpp --- Source/web/WebViewImpl.cpp
+++ Source/web/WebViewImpl.cpp +++ Source/web/WebViewImpl.cpp
@@ -386,6 +386,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) @@ -379,6 +379,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 3626eac..91b1d66 100644
, m_doingDragAndDrop(false) , m_doingDragAndDrop(false)
, m_ignoreInputEvents(false) , m_ignoreInputEvents(false)
, m_compositorDeviceScaleFactorOverride(0) , m_compositorDeviceScaleFactorOverride(0)
@@ -3986,9 +3987,14 @@ void WebViewImpl::deviceOrPageScaleFactorChanged() @@ -3974,9 +3975,14 @@ void WebViewImpl::deviceOrPageScaleFactorChanged()
m_page->inspectorController().deviceOrPageScaleFactorChanged(); m_page->inspectorController().deviceOrPageScaleFactorChanged();
} }
@ -40,10 +40,10 @@ index 3626eac..91b1d66 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 8229f02..d22bb85 100644 index 5264cf5..f49be43 100644
--- Source/web/WebViewImpl.h --- Source/web/WebViewImpl.h
+++ Source/web/WebViewImpl.h +++ Source/web/WebViewImpl.h
@@ -380,7 +380,8 @@ public: @@ -370,7 +370,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 8229f02..d22bb85 100644
bool contextMenuAllowed() const bool contextMenuAllowed() const
{ {
@@ -672,6 +673,8 @@ private: @@ -662,6 +663,8 @@ private:
bool m_contextMenuAllowed; bool m_contextMenuAllowed;
@ -63,10 +63,10 @@ index 8229f02..d22bb85 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 e6c4924..6df09db 100644 index dd5fa13..84a1e5e 100644
--- public/web/WebView.h --- public/web/WebView.h
+++ public/web/WebView.h +++ public/web/WebView.h
@@ -407,6 +407,7 @@ public: @@ -405,6 +405,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);

View File

@ -91,6 +91,7 @@ const CefRect kSelectRect(461, 21, 87, 26);
const CefRect kExpandedSelectRect(465, 42, 80, 262); const CefRect kExpandedSelectRect(465, 42, 80, 262);
const CefRect kDropDivRect(9, 330, 52, 52); const CefRect kDropDivRect(9, 330, 52, 52);
const CefRect kDragDivRect(60, 330, 52, 52); const CefRect kDragDivRect(60, 330, 52, 52);
const int kVerticalScrollbarWidth = 15;
#elif defined(OS_LINUX) #elif defined(OS_LINUX)
const CefRect kEditBoxRect(434, 246, 60, 20); const CefRect kEditBoxRect(434, 246, 60, 20);
const CefRect kNavigateButtonRect(380, 271, 140, 22); const CefRect kNavigateButtonRect(380, 271, 140, 22);
@ -642,8 +643,19 @@ class OSRTestHandler : public RoutingTestHandler,
browser->GetHost()->SendMouseWheelEvent(mouse_event, 0, - deltaY); browser->GetHost()->SendMouseWheelEvent(mouse_event, 0, - deltaY);
} else { } else {
EXPECT_EQ(dirtyRects.size(), 1U); EXPECT_EQ(dirtyRects.size(), 1U);
EXPECT_EQ(dirtyRects[0], #if defined(OS_MACOSX)
GetScaledRect(CefRect(0, 0, kOsrWidth, kOsrHeight))); const CefRect& expected_rect1 =
GetScaledRect(CefRect(0, 0, kOsrWidth, kOsrHeight));
const CefRect& expected_rect2 =
GetScaledRect(CefRect(0, 0, kOsrWidth - kVerticalScrollbarWidth,
kOsrHeight));
EXPECT_TRUE(dirtyRects[0] == expected_rect1 ||
dirtyRects[0] == expected_rect2);
#else
const CefRect& expected_rect =
GetScaledRect(CefRect(0, 0, kOsrWidth, kOsrHeight));
EXPECT_EQ(expected_rect, dirtyRects[0]);
#endif
DestroySucceededTestSoon(); DestroySucceededTestSoon();
} }
break; break;

View File

@ -21,7 +21,7 @@
#include "tests/cefclient/client_switches.h" #include "tests/cefclient/client_switches.h"
CommandLine* CefTestSuite::commandline_ = NULL; base::CommandLine* CefTestSuite::commandline_ = NULL;
CefTestSuite::CefTestSuite(int argc, char** argv) CefTestSuite::CefTestSuite(int argc, char** argv)
: TestSuite(argc, argv) { : TestSuite(argc, argv) {
@ -36,7 +36,7 @@ void CefTestSuite::InitCommandLine(int argc, const char* const* argv) {
return; return;
} }
commandline_ = new CommandLine(CommandLine::NO_PROGRAM); commandline_ = new base::CommandLine(base::CommandLine::NO_PROGRAM);
#if defined(OS_WIN) #if defined(OS_WIN)
commandline_->ParseFromString(::GetCommandLineW()); commandline_->ParseFromString(::GetCommandLineW());
#elif defined(OS_POSIX) #elif defined(OS_POSIX)
@ -109,7 +109,8 @@ void CefTestSuite::Initialize() {
// In some cases, we do not want to see standard error dialogs. // In some cases, we do not want to see standard error dialogs.
if (!base::debug::BeingDebugged() && if (!base::debug::BeingDebugged() &&
!CommandLine::ForCurrentProcess()->HasSwitch("show-error-dialogs")) { !base::CommandLine::ForCurrentProcess()->HasSwitch(
"show-error-dialogs")) {
SuppressErrorDialogs(); SuppressErrorDialogs();
base::debug::SetSuppressDebugUI(true); base::debug::SetSuppressDebugUI(true);
logging::SetLogAssertHandler(UnitTestAssertHandler); logging::SetLogAssertHandler(UnitTestAssertHandler);