diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index d30270090..fdd7b549a 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -17,5 +17,5 @@ { 'chromium_url': 'http://src.chromium.org/svn/trunk/src', - 'chromium_revision': '234212', + 'chromium_revision': '237081', } diff --git a/cef.gyp b/cef.gyp index 78d4be7de..a88494c77 100644 --- a/cef.gyp +++ b/cef.gyp @@ -559,7 +559,7 @@ '<(DEPTH)/content/browser/tracing/tracing_resources.gyp:tracing_resources', '<(DEPTH)/content/content_resources.gyp:content_resources', '<(DEPTH)/net/net.gyp:net_resources', - '<(DEPTH)/ui/ui.gyp:ui_resources', + '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources', '<(DEPTH)/webkit/webkit_resources.gyp:webkit_resources', 'cef_locales', 'cef_resources', diff --git a/libcef/browser/browser_main.cc b/libcef/browser/browser_main.cc index 1587cf012..da28d371b 100644 --- a/libcef/browser/browser_main.cc +++ b/libcef/browser/browser_main.cc @@ -70,7 +70,7 @@ int CefBrowserMainParts::PreCreateThreads() { // Initialize user preferences. pref_store_ = new CefBrowserPrefStore(); pref_store_->SetInitializationCompleted(); - pref_service_.reset(pref_store_->CreateService()); + pref_service_ = pref_store_->CreateService().Pass(); // Create a v8::Isolate for the current thread if it doesn't already exist. if (!v8::Isolate::GetCurrent()) { diff --git a/libcef/browser/browser_pref_store.cc b/libcef/browser/browser_pref_store.cc index a5f146ad7..7c397ef04 100644 --- a/libcef/browser/browser_pref_store.cc +++ b/libcef/browser/browser_pref_store.cc @@ -6,7 +6,8 @@ #include "libcef/browser/media_capture_devices_dispatcher.h" #include "base/command_line.h" -#include "base/prefs/pref_service_builder.h" +#include "base/prefs/pref_service.h" +#include "base/prefs/pref_service_factory.h" #include "base/prefs/pref_registry_simple.h" #include "base/values.h" #include "chrome/browser/net/pref_proxy_config_tracker_impl.h" @@ -17,11 +18,11 @@ CefBrowserPrefStore::CefBrowserPrefStore() { } -PrefService* CefBrowserPrefStore::CreateService() { - PrefServiceBuilder builder; - builder.WithCommandLinePrefs( +scoped_ptr CefBrowserPrefStore::CreateService() { + base::PrefServiceFactory factory; + factory.set_command_line_prefs( new CommandLinePrefStore(CommandLine::ForCurrentProcess())); - builder.WithUserPrefs(this); + factory.set_user_prefs(this); scoped_refptr registry(new PrefRegistrySimple()); @@ -31,7 +32,7 @@ PrefService* CefBrowserPrefStore::CreateService() { registry->RegisterBooleanPref(prefs::kPrintingEnabled, true); - return builder.Create(registry); + return factory.Create(registry); } CefBrowserPrefStore::~CefBrowserPrefStore() { diff --git a/libcef/browser/browser_pref_store.h b/libcef/browser/browser_pref_store.h index e4ed69cb3..191567826 100644 --- a/libcef/browser/browser_pref_store.h +++ b/libcef/browser/browser_pref_store.h @@ -5,6 +5,7 @@ #ifndef CEF_LIBCEF_BROWSER_BROWSER_PREF_STORE_H_ #define CEF_LIBCEF_BROWSER_BROWSER_PREF_STORE_H_ +#include "base/memory/scoped_ptr.h" #include "base/prefs/testing_pref_store.h" class PrefService; @@ -13,7 +14,7 @@ class CefBrowserPrefStore : public TestingPrefStore { public: CefBrowserPrefStore(); - PrefService* CreateService(); + scoped_ptr CreateService(); protected: virtual ~CefBrowserPrefStore(); diff --git a/libcef/browser/render_widget_host_view_osr.cc b/libcef/browser/render_widget_host_view_osr.cc index 56c6b34c1..ca862ebb1 100644 --- a/libcef/browser/render_widget_host_view_osr.cc +++ b/libcef/browser/render_widget_host_view_osr.cc @@ -12,7 +12,7 @@ #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/public/browser/content_browser_client.h" #include "content/public/browser/render_view_host.h" -#include "third_party/WebKit/public/web/WebScreenInfo.h" +#include "third_party/WebKit/public/platform/WebScreenInfo.h" #include "webkit/common/cursors/webcursor.h" namespace { diff --git a/patch/patch.cfg b/patch/patch.cfg index c00cd3f5e..2511c283a 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -52,6 +52,12 @@ patches = [ 'name': 'underlay_1051', 'path': '../ui/base/cocoa/', }, + { + # Fix compile error when building without aura support on Windows. + # https://codereview.chromium.org/86313003/ + 'name': 'webplugin_win', + 'path': '../content/child/npapi/', + }, { # Disable scollbar bounce and overlay on OS X. # http://code.google.com/p/chromiumembedded/issues/detail?id=364 diff --git a/patch/patches/message_loop_443.patch b/patch/patches/message_loop_443.patch index 6f0d98343..5af5d5b03 100644 --- a/patch/patches/message_loop_443.patch +++ b/patch/patches/message_loop_443.patch @@ -1,8 +1,8 @@ Index: message_loop.cc =================================================================== ---- message_loop.cc (revision 233896) +--- message_loop.cc (revision 237081) +++ message_loop.cc (working copy) -@@ -208,7 +208,7 @@ +@@ -166,7 +166,7 @@ MessageLoop::~MessageLoop() { DCHECK_EQ(this, current()); diff --git a/patch/patches/webkit_popups.patch b/patch/patches/webkit_popups.patch index d50d4be03..3cad996e7 100644 --- a/patch/patches/webkit_popups.patch +++ b/patch/patches/webkit_popups.patch @@ -1,6 +1,6 @@ Index: public/web/WebView.h =================================================================== ---- public/web/WebView.h (revision 161696) +--- public/web/WebView.h (revision 162607) +++ public/web/WebView.h (working copy) @@ -441,6 +441,7 @@ @@ -12,9 +12,9 @@ Index: public/web/WebView.h // Visited link state -------------------------------------------------- Index: Source/web/ChromeClientImpl.cpp =================================================================== ---- Source/web/ChromeClientImpl.cpp (revision 161696) +--- Source/web/ChromeClientImpl.cpp (revision 162607) +++ Source/web/ChromeClientImpl.cpp (working copy) -@@ -871,7 +871,7 @@ +@@ -866,7 +866,7 @@ PassRefPtr ChromeClientImpl::createPopupMenu(Frame& frame, PopupMenuClient* client) const { @@ -25,9 +25,9 @@ Index: Source/web/ChromeClientImpl.cpp return adoptRef(new PopupMenuChromium(frame, client)); Index: Source/web/WebViewImpl.cpp =================================================================== ---- Source/web/WebViewImpl.cpp (revision 161696) +--- Source/web/WebViewImpl.cpp (revision 162607) +++ Source/web/WebViewImpl.cpp (working copy) -@@ -390,6 +390,7 @@ +@@ -392,6 +392,7 @@ , m_fakePageScaleAnimationPageScaleFactor(0) , m_fakePageScaleAnimationUseAnchor(false) , m_contextMenuAllowed(false) @@ -35,7 +35,7 @@ Index: Source/web/WebViewImpl.cpp , m_doingDragAndDrop(false) , m_ignoreInputEvents(false) , m_compositorDeviceScaleFactorOverride(0) -@@ -3693,9 +3694,14 @@ +@@ -3686,9 +3687,14 @@ updateLayerTreeViewport(); } @@ -53,9 +53,9 @@ Index: Source/web/WebViewImpl.cpp void WebViewImpl::startDragging(Frame* frame, Index: Source/web/WebViewImpl.h =================================================================== ---- Source/web/WebViewImpl.h (revision 161696) +--- Source/web/WebViewImpl.h (revision 162607) +++ Source/web/WebViewImpl.h (working copy) -@@ -414,7 +414,8 @@ +@@ -416,7 +416,8 @@ // Returns true if popup menus should be rendered by the browser, false if // they should be rendered by WebKit (which is the default). @@ -65,7 +65,7 @@ Index: Source/web/WebViewImpl.h bool contextMenuAllowed() const { -@@ -710,6 +711,8 @@ +@@ -713,6 +714,8 @@ bool m_contextMenuAllowed; diff --git a/patch/patches/webplugin_win.patch b/patch/patches/webplugin_win.patch new file mode 100644 index 000000000..dd1d0bbfa --- /dev/null +++ b/patch/patches/webplugin_win.patch @@ -0,0 +1,41 @@ +Index: webplugin_delegate_impl_win.cc +=================================================================== +--- webplugin_delegate_impl_win.cc (revision 237081) ++++ webplugin_delegate_impl_win.cc (working copy) +@@ -88,8 +88,10 @@ + base::LazyInstance g_iat_patch_get_proc_address = + LAZY_INSTANCE_INITIALIZER; + ++#if defined(USE_AURA) + base::LazyInstance g_iat_patch_window_from_point = + LAZY_INSTANCE_INITIALIZER; ++#endif + + // http://crbug.com/16114 + // Enforces providing a valid device context in NPWindow, so that NPP_SetWindow +@@ -420,12 +422,14 @@ + GetProcAddressPatch); + } + ++#if defined(USE_AURA) + if (windowless_ && !g_iat_patch_window_from_point.Pointer()->is_patched() && + (quirks_ & PLUGIN_QUIRK_FAKE_WINDOW_FROM_POINT)) { + g_iat_patch_window_from_point.Pointer()->Patch( + GetPluginPath().value().c_str(), "user32.dll", "WindowFromPoint", + WebPluginDelegateImpl::WindowFromPointPatch); + } ++#endif + + return true; + } +@@ -447,8 +451,10 @@ + if (g_iat_patch_reg_enum_key_ex_w.Pointer()->is_patched()) + g_iat_patch_reg_enum_key_ex_w.Pointer()->Unpatch(); + ++#if defined(USE_AURA) + if (g_iat_patch_window_from_point.Pointer()->is_patched()) + g_iat_patch_window_from_point.Pointer()->Unpatch(); ++#endif + + if (mouse_hook_) { + UnhookWindowsHookEx(mouse_hook_); diff --git a/tests/unittests/scheme_handler_unittest.cc b/tests/unittests/scheme_handler_unittest.cc index c6b0d9cd4..6f9cbdada 100644 --- a/tests/unittests/scheme_handler_unittest.cc +++ b/tests/unittests/scheme_handler_unittest.cc @@ -1278,11 +1278,11 @@ TEST(SchemeHandlerTest, HttpXHRDifferentOriginWithHeaderAsync) { // Test that a custom standard scheme can generate cross-domain XSS requests // when using document.domain. TEST(SchemeHandlerTest, CustomStandardXSSDifferentOriginWithDomain) { - RegisterTestScheme("customstd", "a.test"); - RegisterTestScheme("customstd", "b.test"); - SetUpXSS("customstd://a.test/run.html", - "customstd://b.test/iframe.html", - "test"); + RegisterTestScheme("customstd", "a.test.com"); + RegisterTestScheme("customstd", "b.test.com"); + SetUpXSS("customstd://a.test.com/run.html", + "customstd://b.test.com/iframe.html", + "test.com"); CefRefPtr handler = new TestSchemeHandler(&g_TestResults); handler->ExecuteTest(); @@ -1300,11 +1300,11 @@ TEST(SchemeHandlerTest, CustomStandardXSSDifferentOriginWithDomain) { // Test that an HTTP scheme can generate cross-domain XSS requests when using // document.domain. TEST(SchemeHandlerTest, HttpXSSDifferentOriginWithDomain) { - RegisterTestScheme("http", "a.test"); - RegisterTestScheme("http", "b.test"); - SetUpXSS("http://a.test/run.html", - "http://b.test/iframe.html", - "test"); + RegisterTestScheme("http", "a.test.com"); + RegisterTestScheme("http", "b.test.com"); + SetUpXSS("http://a.test.com/run.html", + "http://b.test.com/iframe.html", + "test.com"); CefRefPtr handler = new TestSchemeHandler(&g_TestResults); handler->ExecuteTest();