From 381cf55434526c4395313890e9e24e7f104f66c4 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 13 Nov 2017 01:00:06 +0300 Subject: [PATCH 01/60] Use libcc revision based on Chromium 62 --- vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index db1b314c019f..5d784eb6d333 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit db1b314c019f6acbd4d1be273b63521cc6051d3c +Subproject commit 5d784eb6d3335c5f24ab6d4e6bc8599dcc2ded6f From 8ef705ad10fc1464ff22d71a2334169d0b04244b Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 13 Nov 2017 01:01:50 +0300 Subject: [PATCH 02/60] Update clang revision to match Chromium 62.0.3202.89 --- script/update-clang.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/update-clang.sh b/script/update-clang.sh index a35eb2f5b902..9a0a88dcb2e1 100755 --- a/script/update-clang.sh +++ b/script/update-clang.sh @@ -8,7 +8,7 @@ # Do NOT CHANGE this if you don't know what you're doing -- see # https://code.google.com/p/chromium/wiki/UpdatingClang # Reverting problematic clang rolls is safe, though. -CLANG_REVISION=307486 +CLANG_REVISION=310694 # This is incremented when pushing a new build of Clang at the same revision. CLANG_SUB_REVISION=1 From 5783ce0b3c9a9aa489f5de61886d6fb5a98373fd Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 13 Nov 2017 22:19:29 +0300 Subject: [PATCH 03/60] Update chrome_version.h --- atom/common/chrome_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/chrome_version.h b/atom/common/chrome_version.h index ac24a95f87fa..d0ebc901bb30 100644 --- a/atom/common/chrome_version.h +++ b/atom/common/chrome_version.h @@ -8,7 +8,7 @@ #ifndef ATOM_COMMON_CHROME_VERSION_H_ #define ATOM_COMMON_CHROME_VERSION_H_ -#define CHROME_VERSION_STRING "61.0.3163.100" +#define CHROME_VERSION_STRING "62.0.3202.94" #define CHROME_VERSION "v" CHROME_VERSION_STRING #endif // ATOM_COMMON_CHROME_VERSION_H_ From 9d6db65c7cf9554d4e5d8c666dd9aab9496eafc5 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 13 Nov 2017 22:19:54 +0300 Subject: [PATCH 04/60] Set minimum Mac SDK version to 10.12 --- toolchain.gypi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchain.gypi b/toolchain.gypi index 6580f18a1ad9..09ef9ce501db 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -10,7 +10,7 @@ 'variables': { # The minimum macOS SDK version to use. - 'mac_sdk_min%': '10.10', + 'mac_sdk_min%': '10.12', # Set ARM architecture version. 'arm_version%': 7, From dda64bd652eeec2054934ecc370d20255ceb9b86 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 16 Nov 2017 12:27:10 +0300 Subject: [PATCH 05/60] Use c++14 https://chromium-review.googlesource.com/c/chromium/src/+/583635 --- brightray/brightray.gypi | 2 +- toolchain.gypi | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/brightray/brightray.gypi b/brightray/brightray.gypi index 0e15b148d5b8..91d8a81ecf34 100644 --- a/brightray/brightray.gypi +++ b/brightray/brightray.gypi @@ -31,7 +31,7 @@ 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', 'GCC_ENABLE_CPP_RTTI': 'NO', 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', - 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', + 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14', 'MACOSX_DEPLOYMENT_TARGET': '10.9', 'RUN_CLANG_STATIC_ANALYZER': 'YES', 'USE_HEADER_MAP': 'NO', diff --git a/toolchain.gypi b/toolchain.gypi index 09ef9ce501db..42552a4dae18 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -111,7 +111,7 @@ ], 'target_defaults': { 'cflags_cc': [ - '-std=c++11', + '-std=c++14', ], 'xcode_settings': { 'CC': '<(make_clang_dir)/bin/clang', @@ -122,7 +122,7 @@ 'GCC_C_LANGUAGE_STANDARD': 'c99', # -std=c99 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++ - 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11 + 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14', # -std=c++14 }, 'target_conditions': [ ['_type in ["executable", "shared_library"]', { From a6412d0690ffdaefc2ea7d5a1c3fb57b75fd859c Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 22 Nov 2017 14:34:33 +0100 Subject: [PATCH 06/60] Update submodule ref for crashpad --- vendor/crashpad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/crashpad b/vendor/crashpad index 07072bfae5f0..561996f78f83 160000 --- a/vendor/crashpad +++ b/vendor/crashpad @@ -1 +1 @@ -Subproject commit 07072bfae5f0d8630657eba34c5ddae9e038db94 +Subproject commit 561996f78f8396d4784e9ceed427f605d4b84ad2 From 0d83b69fe25a354748c60406bf82e6be7d67967b Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Mon, 20 Nov 2017 13:28:24 +0000 Subject: [PATCH 07/60] FIXME: Fix brightray::DevToolsNetworkTransaction compilation See https://chromium-review.googlesource.com/631119 https://chromium-review.googlesource.com/611089 --- brightray/browser/net/devtools_network_transaction.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/brightray/browser/net/devtools_network_transaction.h b/brightray/browser/net/devtools_network_transaction.h index d038006a6fe4..d7317e47ac42 100644 --- a/brightray/browser/net/devtools_network_transaction.h +++ b/brightray/browser/net/devtools_network_transaction.h @@ -12,6 +12,7 @@ #include "net/base/completion_callback.h" #include "net/base/load_states.h" #include "net/base/request_priority.h" +#include "net/http/http_raw_request_headers.h" #include "net/http/http_transaction.h" namespace brightray { @@ -66,6 +67,10 @@ class DevToolsNetworkTransaction : public net::HttpTransaction { int ResumeNetworkStart() override; void GetConnectionAttempts(net::ConnectionAttempts* out) const override; + // FIXME(torycl) Implement these methods properly + void SetRequestHeadersCallback(net::RequestHeadersCallback callback) {} + void SetResponseHeadersCallback(net::ResponseHeadersCallback callback) {} + private: void Fail(); bool CheckFailed(); From 8250dbd172e609d1f17a881d1e9ced0f9659534a Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Wed, 22 Nov 2017 09:40:36 +0000 Subject: [PATCH 08/60] Removing some function parameters --- brightray/browser/devtools_manager_delegate.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/brightray/browser/devtools_manager_delegate.cc b/brightray/browser/devtools_manager_delegate.cc index f6ba60f9f581..daec9b12e8e8 100644 --- a/brightray/browser/devtools_manager_delegate.cc +++ b/brightray/browser/devtools_manager_delegate.cc @@ -90,9 +90,7 @@ void DevToolsManagerDelegate::StartHttpHandler() { CreateSocketFactory(), std::string(), base::FilePath(), - base::FilePath(), - std::string(), - GetBrightrayUserAgent()); + base::FilePath()); } DevToolsManagerDelegate::DevToolsManagerDelegate() From 75c17cf84635f950ebebaa76bd90ef92f4e09c2f Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 12:15:01 +0530 Subject: [PATCH 09/60] Use generic base::Value::SetKey Remove base::Value::SetDoubleWithoutPathExpansion https://chromium-review.googlesource.com/591654 Remove base::Value::SetStringWithoutPathExpansion https://chromium-review.googlesource.com/592368 Remove base::Value::SetIntegerWithoutPathExpansion https://chromium-review.googlesource.com/591655 --- atom/browser/mac/dict_util.mm | 14 ++++++-------- atom/browser/net/atom_network_delegate.cc | 2 +- brightray/browser/inspectable_web_contents_impl.cc | 2 +- brightray/browser/zoom_level_delegate.cc | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/atom/browser/mac/dict_util.mm b/atom/browser/mac/dict_util.mm index 32141cdeb573..5761e9a43698 100644 --- a/atom/browser/mac/dict_util.mm +++ b/atom/browser/mac/dict_util.mm @@ -87,18 +87,17 @@ std::unique_ptr NSDictionaryToDictionaryValue( id value = [dict objectForKey:key]; if ([value isKindOfClass:[NSString class]]) { - result->SetStringWithoutPathExpansion( - str_key, base::SysNSStringToUTF8(value)); + result->SetKey(str_key, base::Value(base::SysNSStringToUTF8(value))); } else if ([value isKindOfClass:[NSNumber class]]) { const char* objc_type = [value objCType]; if (strcmp(objc_type, @encode(BOOL)) == 0 || strcmp(objc_type, @encode(char)) == 0) - result->SetBooleanWithoutPathExpansion(str_key, [value boolValue]); + result->SetKey(str_key, base::Value([value boolValue])); else if (strcmp(objc_type, @encode(double)) == 0 || strcmp(objc_type, @encode(float)) == 0) - result->SetDoubleWithoutPathExpansion(str_key, [value doubleValue]); + result->SetKey(str_key, base::Value([value doubleValue])); else - result->SetIntegerWithoutPathExpansion(str_key, [value intValue]); + result->SetKey(str_key, base::Value([value intValue])); } else if ([value isKindOfClass:[NSArray class]]) { std::unique_ptr sub_arr = NSArrayToListValue(value); if (sub_arr) @@ -115,9 +114,8 @@ std::unique_ptr NSDictionaryToDictionaryValue( result->SetWithoutPathExpansion(str_key, base::MakeUnique()); } else { - result->SetStringWithoutPathExpansion( - str_key, - base::SysNSStringToUTF8([value description])); + result->SetKey(str_key, + base::Value(base::SysNSStringToUTF8([value description]))); } } diff --git a/atom/browser/net/atom_network_delegate.cc b/atom/browser/net/atom_network_delegate.cc index 9b0f3a98dc53..a8d18c57890c 100644 --- a/atom/browser/net/atom_network_delegate.cc +++ b/atom/browser/net/atom_network_delegate.cc @@ -108,7 +108,7 @@ void ToDictionary(base::DictionaryValue* details, std::unique_ptr dict(new base::DictionaryValue); net::HttpRequestHeaders::Iterator it(headers); while (it.GetNext()) - dict->SetStringWithoutPathExpansion(it.name(), it.value()); + dict->SetKey(it.name(), base::Value(it.value())); details->Set("requestHeaders", std::move(dict)); } diff --git a/brightray/browser/inspectable_web_contents_impl.cc b/brightray/browser/inspectable_web_contents_impl.cc index ad18f69bce50..bb51298d9574 100644 --- a/brightray/browser/inspectable_web_contents_impl.cc +++ b/brightray/browser/inspectable_web_contents_impl.cc @@ -608,7 +608,7 @@ void InspectableWebContentsImpl::GetPreferences( void InspectableWebContentsImpl::SetPreference(const std::string& name, const std::string& value) { DictionaryPrefUpdate update(pref_service_, kDevToolsPreferences); - update.Get()->SetStringWithoutPathExpansion(name, value); + update.Get()->SetKey(name, base::Value(value)); } void InspectableWebContentsImpl::RemovePreference(const std::string& name) { diff --git a/brightray/browser/zoom_level_delegate.cc b/brightray/browser/zoom_level_delegate.cc index 2cf4fad700b6..694223d742d5 100644 --- a/brightray/browser/zoom_level_delegate.cc +++ b/brightray/browser/zoom_level_delegate.cc @@ -95,7 +95,7 @@ void ZoomLevelDelegate::OnZoomLevelChanged( if (modification_is_removal) host_zoom_dictionary->RemoveWithoutPathExpansion(change.host, nullptr); else - host_zoom_dictionary->SetDoubleWithoutPathExpansion(change.host, level); + host_zoom_dictionary->SetKey(change.host, base::Value(level)); } void ZoomLevelDelegate::ExtractPerHostZoomLevels( From 1b866e20c6ae25cc83693ce28cc4ad4e56e075a8 Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Thu, 23 Nov 2017 09:46:00 +0000 Subject: [PATCH 10/60] REVIEW: Disable warning 4275 on Windows It prevents Brightray classes to be inherited from other classes from V8, Chromium, etc... --- brightray/brightray.gypi | 1 + 1 file changed, 1 insertion(+) diff --git a/brightray/brightray.gypi b/brightray/brightray.gypi index 91d8a81ecf34..7c7189af1af1 100644 --- a/brightray/brightray.gypi +++ b/brightray/brightray.gypi @@ -404,6 +404,7 @@ 4702, # unreachable code 4715, # not all control paths return a value 4819, # The file contains a character that cannot be represented in the current code page + 4275, # non dll-interface class used as base for dll-interface class ], }], ], # conditions From 6a61ec7763e9779078d058c48953617174697dd0 Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Thu, 23 Nov 2017 10:01:51 +0000 Subject: [PATCH 11/60] Add path to khrplatform.h file --- brightray/brightray.gyp | 1 + 1 file changed, 1 insertion(+) diff --git a/brightray/brightray.gyp b/brightray/brightray.gyp index 065fe818a645..136c245ca70e 100644 --- a/brightray/brightray.gyp +++ b/brightray/brightray.gyp @@ -23,6 +23,7 @@ '<(libchromiumcontent_src_dir)/third_party/skia/include/core', '<(libchromiumcontent_src_dir)/third_party/mojo/src', '<(libchromiumcontent_src_dir)/third_party/WebKit', + '<(libchromiumcontent_src_dir)/third_party/khronos', '<(libchromiumcontent_dir)/gen', ], 'direct_dependent_settings': { From 233679865bafc91d50482b5f9a02e228a2e94e8f Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 23 Nov 2017 11:25:12 +0100 Subject: [PATCH 12/60] fix some more compilation errors --- brightray/browser/url_request_context_getter.cc | 6 ++---- brightray/browser/url_request_context_getter.h | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/brightray/browser/url_request_context_getter.cc b/brightray/browser/url_request_context_getter.cc index 28e988f4b49c..1fc5fc1f8d02 100644 --- a/brightray/browser/url_request_context_getter.cc +++ b/brightray/browser/url_request_context_getter.cc @@ -100,8 +100,7 @@ URLRequestContextGetter::Delegate::CreateHttpCacheBackendFactory( net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, cache_path, - max_size, - BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE)); + max_size); } std::unique_ptr @@ -184,8 +183,7 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { auto cookie_config = content::CookieStoreConfig( cookie_path, content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES, - nullptr, - delegate_->CreateCookieDelegate()); + nullptr); cookie_config.cookieable_schemes = delegate_->GetCookieableSchemes(); std::unique_ptr cookie_store = content::CreateCookieStore(cookie_config); diff --git a/brightray/browser/url_request_context_getter.h b/brightray/browser/url_request_context_getter.h index 04033f451e04..a15fb7ffe0ed 100644 --- a/brightray/browser/url_request_context_getter.h +++ b/brightray/browser/url_request_context_getter.h @@ -12,6 +12,7 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/content_browser_client.h" #include "net/cookies/cookie_monster.h" +#include "net/cookies/cookie_store.h" #include "net/http/http_cache.h" #include "net/http/transport_security_state.h" #include "net/http/url_security_manager.h" @@ -48,9 +49,6 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { virtual std::unique_ptr CreateNetworkDelegate() { return nullptr; } - virtual net::CookieMonsterDelegate* CreateCookieDelegate() { - return nullptr; - } virtual std::string GetUserAgent(); virtual std::unique_ptr CreateURLRequestJobFactory(content::ProtocolHandlerMap* protocol_handlers); From 8d6c7955ad8350a37dc0b8019b6395d3a49fb1d8 Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Thu, 23 Nov 2017 10:44:32 +0000 Subject: [PATCH 13/60] Add path to skia gpu --- brightray/brightray.gyp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brightray/brightray.gyp b/brightray/brightray.gyp index 136c245ca70e..1cd4c6b70c2e 100644 --- a/brightray/brightray.gyp +++ b/brightray/brightray.gyp @@ -21,6 +21,7 @@ '<(libchromiumcontent_src_dir)/skia/config', '<(libchromiumcontent_src_dir)/third_party/boringssl/src/include', '<(libchromiumcontent_src_dir)/third_party/skia/include/core', + '<(libchromiumcontent_src_dir)/third_party/skia/include/gpu', '<(libchromiumcontent_src_dir)/third_party/mojo/src', '<(libchromiumcontent_src_dir)/third_party/WebKit', '<(libchromiumcontent_src_dir)/third_party/khronos', @@ -34,6 +35,7 @@ '<(libchromiumcontent_src_dir)/skia/config', '<(libchromiumcontent_src_dir)/third_party/boringssl/src/include', '<(libchromiumcontent_src_dir)/third_party/skia/include/core', + '<(libchromiumcontent_src_dir)/third_party/skia/include/gpu', '<(libchromiumcontent_src_dir)/third_party/skia/include/config', '<(libchromiumcontent_src_dir)/third_party/icu/source/common', '<(libchromiumcontent_src_dir)/third_party/mojo/src', From e59f788c43ef33ba74d986d561db33244b9f21fd Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 23 Nov 2017 12:15:27 +0100 Subject: [PATCH 14/60] Update submodule ref for node --- vendor/node | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/node b/vendor/node index bf06b641574a..b29d25f32501 160000 --- a/vendor/node +++ b/vendor/node @@ -1 +1 @@ -Subproject commit bf06b641574a6e2a8357ca4b44defac4a83f1dda +Subproject commit b29d25f325015a15336b3a3f1fea0c1e0220c71a From 8c0c1e4dedb5f26d87215cadf7911bfc3fef9ca7 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 23 Nov 2017 21:37:38 +0100 Subject: [PATCH 15/60] media: Replace ENABLE_PEPPER_CDMS buildflag with ENABLE_LIBRARY_CDMS https://chromium-review.googlesource.com/582309 --- atom/app/atom_content_client.cc | 15 ++++++++------- .../pepper/widevine_cdm_message_filter.cc | 9 +++++---- .../pepper/widevine_cdm_message_filter.h | 5 +++-- chromium_src/chrome/common/chrome_paths.cc | 5 +++-- .../chrome/common/widevine_cdm_messages.h | 6 +++--- .../chrome/renderer/media/chrome_key_systems.cc | 9 +++++---- 6 files changed, 27 insertions(+), 22 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 09683211c582..0cc22bec2c10 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -19,13 +19,14 @@ #include "content/public/common/content_constants.h" #include "content/public/common/pepper_plugin_info.h" #include "content/public/common/user_agent.h" +#include "media/media_features.h" #include "pdf/pdf.h" #include "ppapi/shared_impl/ppapi_permissions.h" #include "third_party/widevine/cdm/stub/widevine_cdm_version.h" #include "ui/base/l10n/l10n_util.h" #include "url/url_constants.h" -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #include "chrome/common/widevine_cdm_constants.h" #endif @@ -73,7 +74,7 @@ content::PepperPluginInfo CreatePepperFlashInfo(const base::FilePath& path, return plugin; } -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) content::PepperPluginInfo CreateWidevineCdmInfo(const base::FilePath& path, const std::string& version) { content::PepperPluginInfo widevine_cdm; @@ -108,7 +109,7 @@ content::PepperPluginInfo CreateWidevineCdmInfo(const base::FilePath& path, return widevine_cdm; } -#endif +#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) void ComputeBuiltInPlugins(std::vector* plugins) { content::PepperPluginInfo pdf_info; @@ -156,7 +157,7 @@ void AddPepperFlashFromCommandLine( plugins->push_back(CreatePepperFlashInfo(flash_path, flash_version)); } -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) void AddWidevineCdmFromCommandLine( std::vector* plugins) { auto command_line = base::CommandLine::ForCurrentProcess(); @@ -176,7 +177,7 @@ void AddWidevineCdmFromCommandLine( plugins->push_back(CreateWidevineCdmInfo(widevine_cdm_path, widevine_cdm_version)); } -#endif +#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) AtomContentClient::AtomContentClient() { } @@ -216,9 +217,9 @@ void AtomContentClient::AddAdditionalSchemes(Schemes* schemes) { void AtomContentClient::AddPepperPlugins( std::vector* plugins) { AddPepperFlashFromCommandLine(plugins); -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) AddWidevineCdmFromCommandLine(plugins); -#endif +#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) ComputeBuiltInPlugins(plugins); } diff --git a/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.cc b/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.cc index 62427e995463..eb54a39014fe 100644 --- a/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.cc +++ b/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.cc @@ -9,6 +9,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/common/webplugininfo.h" #include "content/public/browser/plugin_service.h" +#include "media/media_features.h" using content::PluginService; using content::WebPluginInfo; @@ -24,17 +25,17 @@ WidevineCdmMessageFilter::WidevineCdmMessageFilter( bool WidevineCdmMessageFilter::OnMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(WidevineCdmMessageFilter, message) -#if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) IPC_MESSAGE_HANDLER( ChromeViewHostMsg_IsInternalPluginAvailableForMimeType, OnIsInternalPluginAvailableForMimeType) -#endif +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) IPC_MESSAGE_UNHANDLED(return false) IPC_END_MESSAGE_MAP() return true; } -#if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) void WidevineCdmMessageFilter::OnIsInternalPluginAvailableForMimeType( const std::string& mime_type, bool* is_available, @@ -60,7 +61,7 @@ void WidevineCdmMessageFilter::OnIsInternalPluginAvailableForMimeType( *is_available = false; } -#endif // BUILDFLAG(ENABLE_PEPPER_CDMS) +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) void WidevineCdmMessageFilter::OnDestruct() const { BrowserThread::DeleteOnUIThread::Destruct(this); diff --git a/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.h b/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.h index 6cd77fe57c5e..d1e5c2d38db4 100644 --- a/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.h +++ b/chromium_src/chrome/browser/renderer_host/pepper/widevine_cdm_message_filter.h @@ -7,6 +7,7 @@ #include "chrome/common/widevine_cdm_messages.h" #include "content/public/browser/browser_message_filter.h" +#include "media/media_features.h" namespace content { class BrowserContext; @@ -25,7 +26,7 @@ class WidevineCdmMessageFilter : public content::BrowserMessageFilter { virtual ~WidevineCdmMessageFilter(); - #if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) // Returns whether any internal plugin supporting |mime_type| is registered // and enabled. Does not determine whether the plugin can actually be // instantiated (e.g. whether it has all its dependencies). @@ -38,7 +39,7 @@ class WidevineCdmMessageFilter : public content::BrowserMessageFilter { bool* is_available, std::vector* additional_param_names, std::vector* additional_param_values); -#endif +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) int render_process_id_; content::BrowserContext* browser_context_; diff --git a/chromium_src/chrome/common/chrome_paths.cc b/chromium_src/chrome/common/chrome_paths.cc index f1f4e57ba018..5acab714251c 100644 --- a/chromium_src/chrome/common/chrome_paths.cc +++ b/chromium_src/chrome/common/chrome_paths.cc @@ -16,6 +16,7 @@ #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths_internal.h" #include "chrome/common/widevine_cdm_constants.h" +#include "media/media_features.h" #include "third_party/widevine/cdm/stub/widevine_cdm_version.h" #include "third_party/widevine/cdm/widevine_cdm_common.h" @@ -360,7 +361,7 @@ bool PathProvider(int key, base::FilePath* result) { #endif cur = cur.Append(FILE_PATH_LITERAL("pnacl")); break; -#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#if defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) #if defined(WIDEVINE_CDM_IS_COMPONENT) case chrome::DIR_COMPONENT_WIDEVINE_CDM: if (!PathService::Get(chrome::DIR_USER_DATA, &cur)) @@ -376,7 +377,7 @@ bool PathProvider(int key, base::FilePath* result) { return false; cur = cur.AppendASCII(kWidevineCdmAdapterFileName); break; -#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_PEPPER_CDMS) +#endif // defined(WIDEVINE_CDM_AVAILABLE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) case chrome::FILE_RESOURCES_PACK: #if defined(OS_MACOSX) && !defined(OS_IOS) if (base::mac::AmIBundled()) { diff --git a/chromium_src/chrome/common/widevine_cdm_messages.h b/chromium_src/chrome/common/widevine_cdm_messages.h index df5558f67a5e..cb732a47ded6 100644 --- a/chromium_src/chrome/common/widevine_cdm_messages.h +++ b/chromium_src/chrome/common/widevine_cdm_messages.h @@ -7,13 +7,13 @@ #include #include "ipc/ipc_message_macros.h" -#include "ppapi/features/features.h" +#include "media/media_features.h" #define IPC_MESSAGE_START ChromeMsgStart // Renderer -> Browser messages. -#if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) // Returns whether any internal plugin supporting |mime_type| is registered and // enabled. Does not determine whether the plugin can actually be instantiated // (e.g. whether it has all its dependencies). @@ -26,6 +26,6 @@ IPC_SYNC_MESSAGE_CONTROL1_3( bool /* is_available */, std::vector /* additional_param_names */, std::vector /* additional_param_values */) -#endif +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) // Browser -> Renderer messages. diff --git a/chromium_src/chrome/renderer/media/chrome_key_systems.cc b/chromium_src/chrome/renderer/media/chrome_key_systems.cc index 1fc394d24c4b..6c93d6762846 100644 --- a/chromium_src/chrome/renderer/media/chrome_key_systems.cc +++ b/chromium_src/chrome/renderer/media/chrome_key_systems.cc @@ -18,6 +18,7 @@ #include "content/public/renderer/render_thread.h" #include "media/base/eme_constants.h" #include "media/base/key_system_properties.h" +#include "media/media_features.h" // #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. #include "third_party/widevine/cdm/stub/widevine_cdm_version.h" @@ -32,7 +33,7 @@ using media::KeySystemProperties; using media::SupportedCodecs; -#if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) static const char kExternalClearKeyPepperType[] = "application/x-ppapi-clearkey-cdm"; @@ -264,15 +265,15 @@ static void AddPepperBasedWidevine( #endif // defined(OS_CHROMEOS) } #endif // defined(WIDEVINE_CDM_AVAILABLE) -#endif // BUILDFLAG(ENABLE_PEPPER_CDMS) +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) void AddChromeKeySystems( std::vector>* key_systems_properties) { -#if BUILDFLAG(ENABLE_PEPPER_CDMS) +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) AddExternalClearKey(key_systems_properties); #if defined(WIDEVINE_CDM_AVAILABLE) AddPepperBasedWidevine(key_systems_properties); #endif // defined(WIDEVINE_CDM_AVAILABLE) -#endif // BUILDFLAG(ENABLE_PEPPER_CDMS) +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) } From 128cb7f5b21378e35e4569bba0dfc8f384f553f9 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 23 Nov 2017 13:43:11 +0100 Subject: [PATCH 16/60] updates to build flags and comp errors --- atom/browser/api/atom_api_app.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 5afd41421bd8..0a912cd77c1a 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -1133,8 +1133,8 @@ std::vector App::GetAppMetrics(v8::Isolate* isolate) { v8::Local App::GetGPUFeatureStatus(v8::Isolate* isolate) { auto status = content::GetFeatureStatus(); - return mate::ConvertToV8(isolate, - status ? *status : base::DictionaryValue()); + base::DictionaryValue temp; + return mate::ConvertToV8(isolate, status ? *status : temp); } void App::EnableMixedSandbox(mate::Arguments* args) { From 76683c0af5e1513b6b8a178484eb4bdb51fbea5d Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 5 Dec 2017 00:30:54 +0300 Subject: [PATCH 17/60] viz: Move CopyOutput(Request|Result)=> components/viz/common/quads --- atom/browser/osr/osr_render_widget_host_view.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index 34faa68acca2..f75aa053ed83 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -14,9 +14,9 @@ #include "base/memory/ptr_util.h" #include "base/single_thread_task_runner.h" #include "base/time/time.h" -#include "cc/output/copy_output_request.h" #include "cc/scheduler/delay_based_time_source.h" #include "components/viz/common/gl_helper.h" +#include "components/viz/common/quads/copy_output_request.h" #include "content/browser/renderer_host/compositor_resize_lock.h" #include "content/browser/renderer_host/render_widget_host_delegate.h" #include "content/browser/renderer_host/render_widget_host_impl.h" @@ -127,11 +127,11 @@ class AtomCopyFrameGenerator { if (!view_->render_widget_host() || !view_->IsPainting()) return; - std::unique_ptr request = - cc::CopyOutputRequest::CreateBitmapRequest(base::Bind( - &AtomCopyFrameGenerator::CopyFromCompositingSurfaceHasResult, - weak_ptr_factory_.GetWeakPtr(), - damage_rect)); + std::unique_ptr request = + viz::CopyOutputRequest::CreateBitmapRequest(base::Bind( + &AtomCopyFrameGenerator::CopyFromCompositingSurfaceHasResult, + weak_ptr_factory_.GetWeakPtr(), + damage_rect)); request->set_area(gfx::Rect(view_->GetPhysicalBackingSize())); view_->GetRootLayer()->RequestCopyOfOutput(std::move(request)); @@ -145,7 +145,7 @@ class AtomCopyFrameGenerator { private: void CopyFromCompositingSurfaceHasResult( const gfx::Rect& damage_rect, - std::unique_ptr result) { + std::unique_ptr result) { if (result->IsEmpty() || result->size().IsEmpty() || !view_->render_widget_host()) { OnCopyFrameCaptureFailure(damage_rect); From abc6003640a62dc18f1469508c092808fb160895 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 5 Dec 2017 00:34:15 +0300 Subject: [PATCH 18/60] viz: Move BeginFrameSource to components/viz/common/frame_sinks --- atom/browser/osr/osr_render_widget_host_view.cc | 8 ++++---- atom/browser/osr/osr_render_widget_host_view.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index f75aa053ed83..80694d099820 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -14,7 +14,7 @@ #include "base/memory/ptr_util.h" #include "base/single_thread_task_runner.h" #include "base/time/time.h" -#include "cc/scheduler/delay_based_time_source.h" +#include "components/viz/common/frame_sinks/delay_based_time_source.h" #include "components/viz/common/gl_helper.h" #include "components/viz/common/quads/copy_output_request.h" #include "content/browser/renderer_host/compositor_resize_lock.h" @@ -214,12 +214,12 @@ class AtomCopyFrameGenerator { DISALLOW_COPY_AND_ASSIGN(AtomCopyFrameGenerator); }; -class AtomBeginFrameTimer : public cc::DelayBasedTimeSourceClient { +class AtomBeginFrameTimer : public viz::DelayBasedTimeSourceClient { public: AtomBeginFrameTimer(int frame_rate_threshold_us, const base::Closure& callback) : callback_(callback) { - time_source_.reset(new cc::DelayBasedTimeSource( + time_source_.reset(new viz::DelayBasedTimeSource( content::BrowserThread::GetTaskRunnerForThread( content::BrowserThread::UI).get())); time_source_->SetTimebaseAndInterval( @@ -248,7 +248,7 @@ class AtomBeginFrameTimer : public cc::DelayBasedTimeSourceClient { } const base::Closure callback_; - std::unique_ptr time_source_; + std::unique_ptr time_source_; DISALLOW_COPY_AND_ASSIGN(AtomBeginFrameTimer); }; diff --git a/atom/browser/osr/osr_render_widget_host_view.h b/atom/browser/osr/osr_render_widget_host_view.h index 3858d69eba63..4bf08df28002 100644 --- a/atom/browser/osr/osr_render_widget_host_view.h +++ b/atom/browser/osr/osr_render_widget_host_view.h @@ -21,7 +21,7 @@ #include "base/threading/thread.h" #include "base/time/time.h" #include "cc/output/compositor_frame.h" -#include "cc/scheduler/begin_frame_source.h" +#include "components/viz/common/frame_sinks/begin_frame_source.h" #include "content/browser/frame_host/render_widget_host_view_guest.h" #include "content/browser/renderer_host/compositor_resize_lock.h" #include "content/browser/renderer_host/delegated_frame_host.h" @@ -327,7 +327,7 @@ class OffScreenRenderWidgetHostView std::unique_ptr begin_frame_timer_; // Provides |source_id| for BeginFrameArgs that we create. - cc::StubBeginFrameSource begin_frame_source_; + viz::StubBeginFrameSource begin_frame_source_; uint64_t begin_frame_number_ = cc::BeginFrameArgs::kStartingFrameNumber; #if defined(OS_MACOSX) From 1a9b056e934aa97786329d96a1b75caae787ad2b Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 5 Dec 2017 00:35:12 +0300 Subject: [PATCH 19/60] Move CompositorFrameSink and FrameSinkManager mojom from cc to viz --- atom/browser/osr/osr_render_widget_host_view.cc | 2 +- atom/browser/osr/osr_render_widget_host_view.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index 80694d099820..21e47f02bbb4 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -530,7 +530,7 @@ void OffScreenRenderWidgetHostView::UnlockMouse() { } void OffScreenRenderWidgetHostView::DidCreateNewRendererCompositorFrameSink( - cc::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) { + viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) { renderer_compositor_frame_sink_ = renderer_compositor_frame_sink; if (GetDelegatedFrameHost()) { GetDelegatedFrameHost()->DidCreateNewRendererCompositorFrameSink( diff --git a/atom/browser/osr/osr_render_widget_host_view.h b/atom/browser/osr/osr_render_widget_host_view.h index 4bf08df28002..2e6c9ef1be30 100644 --- a/atom/browser/osr/osr_render_widget_host_view.h +++ b/atom/browser/osr/osr_render_widget_host_view.h @@ -118,7 +118,7 @@ class OffScreenRenderWidgetHostView // content::RenderWidgetHostViewBase: void DidCreateNewRendererCompositorFrameSink( - cc::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) + viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) override; void SubmitCompositorFrame(const viz::LocalSurfaceId& local_surface_id, cc::CompositorFrame frame) override; @@ -342,7 +342,7 @@ class OffScreenRenderWidgetHostView std::string selected_text_; #endif - cc::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink_; + viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink_; SkColor background_color_; From 91a339b62597724d4830cacd90cb4756af77b97a Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 5 Dec 2017 00:35:35 +0300 Subject: [PATCH 20/60] viz: Move BeginFrame(Args|Ack) to components/viz/common/frame_sinks --- atom/browser/osr/osr_render_widget_host_view.cc | 10 +++++----- atom/browser/osr/osr_render_widget_host_view.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index 21e47f02bbb4..a131f449b4e7 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -373,11 +373,11 @@ void OffScreenRenderWidgetHostView::SendBeginFrame( base::TimeTicks deadline = display_time - estimated_browser_composite_time; - const cc::BeginFrameArgs& begin_frame_args = - cc::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, - begin_frame_source_.source_id(), - begin_frame_number_, frame_time, deadline, - vsync_period, cc::BeginFrameArgs::NORMAL); + const viz::BeginFrameArgs& begin_frame_args = + viz::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, + begin_frame_source_.source_id(), + begin_frame_number_, frame_time, deadline, + vsync_period, viz::BeginFrameArgs::NORMAL); DCHECK(begin_frame_args.IsValid()); begin_frame_number_++; diff --git a/atom/browser/osr/osr_render_widget_host_view.h b/atom/browser/osr/osr_render_widget_host_view.h index 2e6c9ef1be30..f8867fbae302 100644 --- a/atom/browser/osr/osr_render_widget_host_view.h +++ b/atom/browser/osr/osr_render_widget_host_view.h @@ -21,6 +21,7 @@ #include "base/threading/thread.h" #include "base/time/time.h" #include "cc/output/compositor_frame.h" +#include "components/viz/common/frame_sinks/begin_frame_args.h" #include "components/viz/common/frame_sinks/begin_frame_source.h" #include "content/browser/frame_host/render_widget_host_view_guest.h" #include "content/browser/renderer_host/compositor_resize_lock.h" @@ -328,7 +329,7 @@ class OffScreenRenderWidgetHostView // Provides |source_id| for BeginFrameArgs that we create. viz::StubBeginFrameSource begin_frame_source_; - uint64_t begin_frame_number_ = cc::BeginFrameArgs::kStartingFrameNumber; + uint64_t begin_frame_number_ = viz::BeginFrameArgs::kStartingFrameNumber; #if defined(OS_MACOSX) CALayer* background_layer_; From 8f78bd3307aa7cf783492ef30f254bdf6c7649ca Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 23 Nov 2017 13:53:47 +0100 Subject: [PATCH 21/60] Remove was_ignored_by_handler from frame_messages.h https://chromium-review.googlesource.com/587701 --- atom/browser/api/atom_api_web_contents.cc | 3 +-- atom/browser/api/atom_api_web_contents.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 86851826bb4a..cca172f3cecc 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -811,8 +811,7 @@ void WebContents::DidFinishLoad(content::RenderFrameHost* render_frame_host, void WebContents::DidFailLoad(content::RenderFrameHost* render_frame_host, const GURL& url, int error_code, - const base::string16& error_description, - bool was_ignored_by_handler) { + const base::string16& error_description) { bool is_main_frame = !render_frame_host->GetParent(); Emit("did-fail-load", error_code, error_description, url, is_main_frame); } diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 5d0f9ea3df06..ce79b93e6e00 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -343,8 +343,7 @@ class WebContents : public mate::TrackableObject, void DidFailLoad(content::RenderFrameHost* render_frame_host, const GURL& validated_url, int error_code, - const base::string16& error_description, - bool was_ignored_by_handler) override; + const base::string16& error_description) override; void DidStartLoading() override; void DidStopLoading() override; void DidGetResourceResponseStart( From 412b9e9ad8a037e7e40b3ea07bce71cdab142926 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 23 Nov 2017 14:02:43 +0100 Subject: [PATCH 22/60] Move IDMap to base namespace. https://chromium-review.googlesource.com/618801 --- atom/browser/atom_permission_manager.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/browser/atom_permission_manager.h b/atom/browser/atom_permission_manager.h index e4acb6f4323b..dbeecc3da13e 100644 --- a/atom/browser/atom_permission_manager.h +++ b/atom/browser/atom_permission_manager.h @@ -9,7 +9,7 @@ #include #include "base/callback.h" -#include "base/id_map.h" +#include "base/containers/id_map.h" #include "base/values.h" #include "content/public/browser/permission_manager.h" @@ -93,7 +93,7 @@ class AtomPermissionManager : public content::PermissionManager { private: class PendingRequest; - using PendingRequestsMap = IDMap>; + using PendingRequestsMap = base::IDMap>; RequestHandler request_handler_; From de576fa82ebab1f53996ec4ffaf3217a363df177 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 23 Nov 2017 14:33:38 +0100 Subject: [PATCH 23/60] Refactor Skia document type into an enum class https://chromium-review.googlesource.com/619502 --- .../chrome/browser/printing/print_view_manager_base.cc | 2 +- .../chrome/renderer/printing/print_web_view_helper.cc | 2 +- .../chrome/renderer/printing/print_web_view_helper_linux.cc | 6 +++--- .../chrome/renderer/printing/print_web_view_helper_mac.mm | 6 +++--- .../renderer/printing/print_web_view_helper_pdf_win.cc | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/chromium_src/chrome/browser/printing/print_view_manager_base.cc b/chromium_src/chrome/browser/printing/print_view_manager_base.cc index a148f35b3fce..64f32b00fa60 100644 --- a/chromium_src/chrome/browser/printing/print_view_manager_base.cc +++ b/chromium_src/chrome/browser/printing/print_view_manager_base.cc @@ -143,7 +143,7 @@ void PrintViewManagerBase::OnDidPrintPage( } std::unique_ptr metafile( - new PdfMetafileSkia(PDF_SKIA_DOCUMENT_TYPE)); + new PdfMetafileSkia(SkiaDocumentType::PDF)); if (metafile_must_be_valid) { if (!metafile->InitFromData(shared_buf.memory(), params.data_size)) { NOTREACHED() << "Invalid metafile header"; diff --git a/chromium_src/chrome/renderer/printing/print_web_view_helper.cc b/chromium_src/chrome/renderer/printing/print_web_view_helper.cc index 744b263ae2d6..0074dc55ff6e 100644 --- a/chromium_src/chrome/renderer/printing/print_web_view_helper.cc +++ b/chromium_src/chrome/renderer/printing/print_web_view_helper.cc @@ -1254,7 +1254,7 @@ bool PrintWebViewHelper::PrintPreviewContext::CreatePreviewDocument( return false; } - metafile_.reset(new PdfMetafileSkia(PDF_SKIA_DOCUMENT_TYPE)); + metafile_.reset(new PdfMetafileSkia(SkiaDocumentType::PDF)); CHECK(metafile_->Init()); current_page_index_ = 0; diff --git a/chromium_src/chrome/renderer/printing/print_web_view_helper_linux.cc b/chromium_src/chrome/renderer/printing/print_web_view_helper_linux.cc index be8b3bdd31ba..e7f421e86112 100644 --- a/chromium_src/chrome/renderer/printing/print_web_view_helper_linux.cc +++ b/chromium_src/chrome/renderer/printing/print_web_view_helper_linux.cc @@ -33,7 +33,7 @@ bool PrintWebViewHelper::RenderPreviewPage( std::unique_ptr draft_metafile; PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile(); if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) { - draft_metafile.reset(new PdfMetafileSkia(PDF_SKIA_DOCUMENT_TYPE)); + draft_metafile.reset(new PdfMetafileSkia(SkiaDocumentType::PDF)); initial_render_metafile = draft_metafile.get(); } @@ -50,7 +50,7 @@ bool PrintWebViewHelper::RenderPreviewPage( DCHECK(!draft_metafile.get()); draft_metafile = print_preview_context_.metafile()->GetMetafileForCurrentPage( - PDF_SKIA_DOCUMENT_TYPE); + SkiaDocumentType::PDF); } return PreviewPageRendered(page_number, draft_metafile.get()); @@ -58,7 +58,7 @@ bool PrintWebViewHelper::RenderPreviewPage( bool PrintWebViewHelper::PrintPagesNative(blink::WebLocalFrame* frame, int page_count) { - PdfMetafileSkia metafile(PDF_SKIA_DOCUMENT_TYPE); + PdfMetafileSkia metafile(SkiaDocumentType::PDF); if (!metafile.Init()) return false; diff --git a/chromium_src/chrome/renderer/printing/print_web_view_helper_mac.mm b/chromium_src/chrome/renderer/printing/print_web_view_helper_mac.mm index 08ba2060924b..25ab5a5f2570 100644 --- a/chromium_src/chrome/renderer/printing/print_web_view_helper_mac.mm +++ b/chromium_src/chrome/renderer/printing/print_web_view_helper_mac.mm @@ -22,7 +22,7 @@ using blink::WebLocalFrame; void PrintWebViewHelper::PrintPageInternal( const PrintMsg_PrintPage_Params& params, WebLocalFrame* frame) { - PdfMetafileSkia metafile(PDF_SKIA_DOCUMENT_TYPE); + PdfMetafileSkia metafile(SkiaDocumentType::PDF); CHECK(metafile.Init()); int page_number = params.page_number; @@ -60,7 +60,7 @@ bool PrintWebViewHelper::RenderPreviewPage( is_print_ready_metafile_sent_; if (render_to_draft) { - draft_metafile.reset(new PdfMetafileSkia(PDF_SKIA_DOCUMENT_TYPE)); + draft_metafile.reset(new PdfMetafileSkia(SkiaDocumentType::PDF)); CHECK(draft_metafile->Init()); initial_render_metafile = draft_metafile.get(); } @@ -80,7 +80,7 @@ bool PrintWebViewHelper::RenderPreviewPage( DCHECK(!draft_metafile.get()); draft_metafile = print_preview_context_.metafile()->GetMetafileForCurrentPage( - PDF_SKIA_DOCUMENT_TYPE); + SkiaDocumentType::PDF); } } return PreviewPageRendered(page_number, draft_metafile.get()); diff --git a/chromium_src/chrome/renderer/printing/print_web_view_helper_pdf_win.cc b/chromium_src/chrome/renderer/printing/print_web_view_helper_pdf_win.cc index 5d069659cabe..118bf92e812e 100644 --- a/chromium_src/chrome/renderer/printing/print_web_view_helper_pdf_win.cc +++ b/chromium_src/chrome/renderer/printing/print_web_view_helper_pdf_win.cc @@ -30,7 +30,7 @@ bool PrintWebViewHelper::RenderPreviewPage( std::unique_ptr draft_metafile; PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile(); if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) { - draft_metafile.reset(new PdfMetafileSkia(PDF_SKIA_DOCUMENT_TYPE)); + draft_metafile.reset(new PdfMetafileSkia(SkiaDocumentType::PDF)); initial_render_metafile = draft_metafile.get(); } @@ -49,14 +49,14 @@ bool PrintWebViewHelper::RenderPreviewPage( DCHECK(!draft_metafile.get()); draft_metafile = print_preview_context_.metafile()->GetMetafileForCurrentPage( - PDF_SKIA_DOCUMENT_TYPE); + SkiaDocumentType::PDF); } return PreviewPageRendered(page_number, draft_metafile.get()); } bool PrintWebViewHelper::PrintPagesNative(blink::WebLocalFrame* frame, int page_count) { - PdfMetafileSkia metafile(PDF_SKIA_DOCUMENT_TYPE); + PdfMetafileSkia metafile(SkiaDocumentType::PDF); if (!metafile.Init()) return false; From 5d870837cfbe36fc8cf534d9f7746d6f91d34592 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 23 Nov 2017 14:56:43 +0100 Subject: [PATCH 24/60] Remove WebCString from Blink https://chromium-review.googlesource.com/594673 --- chromium_src/chrome/renderer/tts_dispatcher.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/chromium_src/chrome/renderer/tts_dispatcher.cc b/chromium_src/chrome/renderer/tts_dispatcher.cc index aea07712da8f..7240ed71d339 100644 --- a/chromium_src/chrome/renderer/tts_dispatcher.cc +++ b/chromium_src/chrome/renderer/tts_dispatcher.cc @@ -8,7 +8,6 @@ #include "chrome/common/tts_messages.h" #include "chrome/common/tts_utterance_request.h" #include "content/public/renderer/render_thread.h" -#include "third_party/WebKit/public/platform/WebCString.h" #include "third_party/WebKit/public/platform/WebSpeechSynthesisUtterance.h" #include "third_party/WebKit/public/platform/WebSpeechSynthesisVoice.h" #include "third_party/WebKit/public/platform/WebString.h" From 024f84f1beafb2f827559b2b9580863713e1b8c5 Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Thu, 23 Nov 2017 14:14:01 +0000 Subject: [PATCH 25/60] chromium_src print_job updated to match current chromium implementation in Quit method --- chromium_src/chrome/browser/printing/print_job.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chromium_src/chrome/browser/printing/print_job.cc b/chromium_src/chrome/browser/printing/print_job.cc index 557dbe35d948..ccc6ac9bed15 100644 --- a/chromium_src/chrome/browser/printing/print_job.cc +++ b/chromium_src/chrome/browser/printing/print_job.cc @@ -459,7 +459,7 @@ void PrintJob::HoldUntilStopIsCalled() { } void PrintJob::Quit() { - base::MessageLoop::current()->QuitWhenIdle(); + base::RunLoop::QuitCurrentWhenIdleDeprecated(); } // Takes settings_ ownership and will be deleted in the receiving thread. From b02edd014ad2a4f9c83ddd24d4e2fb4bcf4f37bf Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 23 Nov 2017 21:12:06 +0100 Subject: [PATCH 26/60] Rename CompositionUnderline to ImeTextSpan https://chromium-review.googlesource.com/609524 --- atom/renderer/api/atom_api_web_frame.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index d0164f44a0a5..6ebd63d27a11 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -20,6 +20,7 @@ #include "third_party/WebKit/public/platform/WebCache.h" #include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebFrameWidget.h" +#include "third_party/WebKit/public/web/WebImeTextSpan.h" #include "third_party/WebKit/public/web/WebInputMethodController.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" #include "third_party/WebKit/public/web/WebScriptExecutionCallback.h" @@ -263,7 +264,7 @@ void WebFrame::InsertText(const std::string& text) { web_frame_->FrameWidget() ->GetActiveWebInputMethodController() ->CommitText(blink::WebString::FromUTF8(text), - blink::WebVector(), + blink::WebVector(), blink::WebRange(), 0); } From 60f69ad77b729254ab3d972801e13e44ca079999 Mon Sep 17 00:00:00 2001 From: Tomas Rycl Date: Fri, 24 Nov 2017 13:25:54 +0000 Subject: [PATCH 27/60] Removed QuitWhenIdle --- .../chrome/browser/printing/print_view_manager_base.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/chromium_src/chrome/browser/printing/print_view_manager_base.cc b/chromium_src/chrome/browser/printing/print_view_manager_base.cc index 64f32b00fa60..e3dcbe063ed4 100644 --- a/chromium_src/chrome/browser/printing/print_view_manager_base.cc +++ b/chromium_src/chrome/browser/printing/print_view_manager_base.cc @@ -324,7 +324,7 @@ void PrintViewManagerBase::ShouldQuitFromInnerMessageLoop() { inside_inner_message_loop_) { // We are in a message loop created by RenderAllMissingPagesNow. Quit from // it. - base::MessageLoop::current()->QuitWhenIdle(); + base::RunLoop::QuitCurrentWhenIdleDeprecated(); inside_inner_message_loop_ = false; } } @@ -433,9 +433,10 @@ bool PrintViewManagerBase::RunInnerMessageLoop() { // memory-bound. static const int kPrinterSettingsTimeout = 60000; base::OneShotTimer quit_timer; - quit_timer.Start( - FROM_HERE, TimeDelta::FromMilliseconds(kPrinterSettingsTimeout), - base::MessageLoop::current(), &base::MessageLoop::QuitWhenIdle); + base::RunLoop run_loop; + quit_timer.Start(FROM_HERE, + TimeDelta::FromMilliseconds(kPrinterSettingsTimeout), + run_loop.QuitWhenIdleClosure()); inside_inner_message_loop_ = true; From 248d5720774923c555e8a4af09f1a140d2102664 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 08:57:14 +0530 Subject: [PATCH 28/60] REVIEW: Subscribe to cookie store for changes in place of CookieMonsterDelegate --- atom/browser/api/atom_api_cookies.cc | 22 ++++----- atom/browser/api/atom_api_cookies.h | 15 +++--- atom/browser/atom_browser_context.cc | 7 +-- atom/browser/atom_browser_context.h | 8 ---- atom/browser/net/atom_cookie_delegate.cc | 44 ----------------- atom/browser/net/atom_cookie_delegate.h | 48 ------------------- brightray/browser/net/cookie_details.h | 27 +++++++++++ .../browser/url_request_context_getter.cc | 34 ++++++++++++- .../browser/url_request_context_getter.h | 17 ++++++- brightray/filenames.gypi | 1 + filenames.gypi | 2 - 11 files changed, 94 insertions(+), 131 deletions(-) delete mode 100644 atom/browser/net/atom_cookie_delegate.cc delete mode 100644 atom/browser/net/atom_cookie_delegate.h create mode 100644 brightray/browser/net/cookie_details.h diff --git a/atom/browser/api/atom_api_cookies.cc b/atom/browser/api/atom_api_cookies.cc index 9f58922fd0af..0ba537147336 100644 --- a/atom/browser/api/atom_api_cookies.cc +++ b/atom/browser/api/atom_api_cookies.cc @@ -20,7 +20,6 @@ #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" -using atom::AtomCookieDelegate; using content::BrowserThread; namespace mate { @@ -238,17 +237,16 @@ void SetCookieOnIO(scoped_refptr getter, } // namespace -Cookies::Cookies(v8::Isolate* isolate, - AtomBrowserContext* browser_context) - : request_context_getter_(browser_context->url_request_context_getter()), - cookie_delegate_(browser_context->cookie_delegate()) { +Cookies::Cookies(v8::Isolate* isolate, AtomBrowserContext* browser_context) + : request_context_getter_(browser_context->url_request_context_getter()) { Init(isolate); - cookie_delegate_->AddObserver(this); + cookie_change_subscription_ = + browser_context->url_request_context_getter() + ->RegisterCookieChangeCallback( + base::Bind(&Cookies::OnCookieChanged, base::Unretained(this))); } -Cookies::~Cookies() { - cookie_delegate_->RemoveObserver(this); -} +Cookies::~Cookies() {} void Cookies::Get(const base::DictionaryValue& filter, const GetCallback& callback) { @@ -283,10 +281,8 @@ void Cookies::FlushStore(const base::Closure& callback) { base::Bind(FlushCookieStoreOnIOThread, getter, callback)); } -void Cookies::OnCookieChanged(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) { - Emit("changed", cookie, cause, removed); +void Cookies::OnCookieChanged(const brightray::CookieDetails* details) { + Emit("changed", *(details->cookie), details->cause, details->removed); } diff --git a/atom/browser/api/atom_api_cookies.h b/atom/browser/api/atom_api_cookies.h index d20dab8394c6..47922f343e42 100644 --- a/atom/browser/api/atom_api_cookies.h +++ b/atom/browser/api/atom_api_cookies.h @@ -8,8 +8,8 @@ #include #include "atom/browser/api/trackable_object.h" -#include "atom/browser/net/atom_cookie_delegate.h" #include "base/callback.h" +#include "brightray/browser/net/cookie_details.h" #include "native_mate/handle.h" #include "net/cookies/canonical_cookie.h" @@ -27,8 +27,7 @@ class AtomBrowserContext; namespace api { -class Cookies : public mate::TrackableObject, - public AtomCookieDelegate::Observer { +class Cookies : public mate::TrackableObject { public: enum Error { SUCCESS, @@ -55,14 +54,14 @@ class Cookies : public mate::TrackableObject, void Set(const base::DictionaryValue& details, const SetCallback& callback); void FlushStore(const base::Closure& callback); - // AtomCookieDelegate::Observer: - void OnCookieChanged(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) override; + // brightray::URLRequestContextGetter subscription: + void OnCookieChanged(const brightray::CookieDetails*); private: net::URLRequestContextGetter* request_context_getter_; - scoped_refptr cookie_delegate_; + std::unique_ptr< + base::CallbackList::Subscription> + cookie_change_subscription_; DISALLOW_COPY_AND_ASSIGN(Cookies); }; diff --git a/atom/browser/atom_browser_context.cc b/atom/browser/atom_browser_context.cc index 07b351b551b6..33ff92d2f135 100644 --- a/atom/browser/atom_browser_context.cc +++ b/atom/browser/atom_browser_context.cc @@ -70,8 +70,7 @@ std::string RemoveWhitespace(const std::string& str) { AtomBrowserContext::AtomBrowserContext(const std::string& partition, bool in_memory, const base::DictionaryValue& options) - : brightray::BrowserContext(partition, in_memory), - cookie_delegate_(new AtomCookieDelegate) { + : brightray::BrowserContext(partition, in_memory) { // Construct user agent string. Browser* browser = Browser::Get(); std::string name = RemoveWhitespace(browser->GetName()); @@ -108,10 +107,6 @@ AtomBrowserContext::CreateNetworkDelegate() { return base::MakeUnique(); } -net::CookieMonsterDelegate* AtomBrowserContext::CreateCookieDelegate() { - return cookie_delegate(); -} - std::string AtomBrowserContext::GetUserAgent() { return user_agent_; } diff --git a/atom/browser/atom_browser_context.h b/atom/browser/atom_browser_context.h index 359d3d6b71a5..8f99a5e74107 100644 --- a/atom/browser/atom_browser_context.h +++ b/atom/browser/atom_browser_context.h @@ -8,9 +8,7 @@ #include #include -#include "atom/browser/net/atom_cookie_delegate.h" #include "brightray/browser/browser_context.h" -#include "net/cookies/cookie_monster.h" namespace atom { @@ -33,7 +31,6 @@ class AtomBrowserContext : public brightray::BrowserContext { // brightray::URLRequestContextGetter::Delegate: std::unique_ptr CreateNetworkDelegate() override; - net::CookieMonsterDelegate* CreateCookieDelegate() override; std::string GetUserAgent() override; std::unique_ptr CreateURLRequestJobFactory( content::ProtocolHandlerMap* protocol_handlers) override; @@ -52,9 +49,6 @@ class AtomBrowserContext : public brightray::BrowserContext { void RegisterPrefs(PrefRegistrySimple* pref_registry) override; AtomBlobReader* GetBlobReader(); - AtomCookieDelegate* cookie_delegate() const { - return cookie_delegate_.get(); - } protected: AtomBrowserContext(const std::string& partition, bool in_memory, @@ -69,8 +63,6 @@ class AtomBrowserContext : public brightray::BrowserContext { std::string user_agent_; bool use_cache_; - scoped_refptr cookie_delegate_; - DISALLOW_COPY_AND_ASSIGN(AtomBrowserContext); }; diff --git a/atom/browser/net/atom_cookie_delegate.cc b/atom/browser/net/atom_cookie_delegate.cc deleted file mode 100644 index b94f396d981e..000000000000 --- a/atom/browser/net/atom_cookie_delegate.cc +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) 2016 GitHub, Inc. -// Use of this source code is governed by the MIT license that can be -// found in the LICENSE file. - -#include "atom/browser/net/atom_cookie_delegate.h" - -#include "content/public/browser/browser_thread.h" - -namespace atom { - -AtomCookieDelegate::AtomCookieDelegate() { -} - -AtomCookieDelegate::~AtomCookieDelegate() { -} - -void AtomCookieDelegate::AddObserver(Observer* observer) { - observers_.AddObserver(observer); -} - -void AtomCookieDelegate::RemoveObserver(Observer* observer) { - observers_.RemoveObserver(observer); -} - -void AtomCookieDelegate::NotifyObservers( - const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) { - for (Observer& observer : observers_) - observer.OnCookieChanged(cookie, removed, cause); -} - -void AtomCookieDelegate::OnCookieChanged( - const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) { - content::BrowserThread::PostTask( - content::BrowserThread::UI, - FROM_HERE, - base::Bind(&AtomCookieDelegate::NotifyObservers, - this, cookie, removed, cause)); -} - -} // namespace atom diff --git a/atom/browser/net/atom_cookie_delegate.h b/atom/browser/net/atom_cookie_delegate.h deleted file mode 100644 index 8c58aa6ada04..000000000000 --- a/atom/browser/net/atom_cookie_delegate.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2016 GitHub, Inc. -// Use of this source code is governed by the MIT license that can be -// found in the LICENSE file. - -#ifndef ATOM_BROWSER_NET_ATOM_COOKIE_DELEGATE_H_ -#define ATOM_BROWSER_NET_ATOM_COOKIE_DELEGATE_H_ - -#include "base/observer_list.h" -#include "net/cookies/cookie_monster.h" - -namespace atom { - -class AtomCookieDelegate : public net::CookieMonsterDelegate { - public: - AtomCookieDelegate(); - ~AtomCookieDelegate() override; - - class Observer { - public: - virtual void OnCookieChanged(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) {} - protected: - virtual ~Observer() {} - }; - - void AddObserver(Observer* observer); - void RemoveObserver(Observer* observer); - - // net::CookieMonsterDelegate: - void OnCookieChanged(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) override; - - - private: - base::ObserverList observers_; - - void NotifyObservers(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause); - - DISALLOW_COPY_AND_ASSIGN(AtomCookieDelegate); -}; - -} // namespace atom - -#endif // ATOM_BROWSER_NET_ATOM_COOKIE_DELEGATE_H_ diff --git a/brightray/browser/net/cookie_details.h b/brightray/browser/net/cookie_details.h new file mode 100644 index 000000000000..42a5b7eb6b6d --- /dev/null +++ b/brightray/browser/net/cookie_details.h @@ -0,0 +1,27 @@ +// Copyright (c) 2017 GitHub, Inc. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ +#define BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ + +#include "base/macros.h" +#include "net/cookies/cookie_store.h" + +namespace brightray { + +struct CookieDetails { + public: + CookieDetails(const net::CanonicalCookie* cookie_copy, + bool is_removed, + net::CookieStore::ChangeCause cause) + : cookie(cookie_copy), removed(is_removed), cause(cause) {} + + const net::CanonicalCookie* cookie; + bool removed; + net::CookieStore::ChangeCause cause; +}; + +} // namespace brightray + +#endif // BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ diff --git a/brightray/browser/url_request_context_getter.cc b/brightray/browser/url_request_context_getter.cc index 1fc5fc1f8d02..70d19afce62f 100644 --- a/brightray/browser/url_request_context_getter.cc +++ b/brightray/browser/url_request_context_getter.cc @@ -13,6 +13,7 @@ #include "base/threading/sequenced_worker_pool.h" #include "base/threading/worker_pool.h" #include "brightray/browser/browser_client.h" +#include "brightray/browser/net/cookie_details.h" #include "brightray/browser/net/devtools_network_controller_handle.h" #include "brightray/browser/net/devtools_network_transaction_factory.h" #include "brightray/browser/net/require_ct_delegate.h" @@ -29,7 +30,6 @@ #include "net/cert/ct_log_verifier.h" #include "net/cert/ct_policy_enforcer.h" #include "net/cert/multi_log_ct_verifier.h" -#include "net/cookies/cookie_monster.h" #include "net/dns/mapped_host_resolver.h" #include "net/http/http_auth_filter.h" #include "net/http/http_auth_handler_factory.h" @@ -155,6 +155,32 @@ URLRequestContextGetter::URLRequestContextGetter( URLRequestContextGetter::~URLRequestContextGetter() { } +std::unique_ptr::Subscription> +URLRequestContextGetter::RegisterCookieChangeCallback( + const base::Callback& cb) { + return cookie_change_sub_list_.Add(cb); +} + +void URLRequestContextGetter::NotifyCookieChange( + const net::CanonicalCookie& cookie, + bool removed, + net::CookieStore::ChangeCause cause) { + CookieDetails cookie_details(&cookie, removed, cause); + cookie_change_sub_list_.Notify(&cookie_details); +} + +void URLRequestContextGetter::OnCookieChanged( + const net::CanonicalCookie& cookie, + net::CookieStore::ChangeCause cause) { + DCHECK_CURRENTLY_ON(content::BrowserThread::IO); + + content::BrowserThread::PostTask( + content::BrowserThread::UI, FROM_HERE, + base::BindOnce(&URLRequestContextGetter::NotifyCookieChange, this, cookie, + !(cause == net::CookieStore::ChangeCause::INSERTED), + cause)); +} + net::HostResolver* URLRequestContextGetter::host_resolver() { return url_request_context_->host_resolver(); } @@ -188,6 +214,12 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { std::unique_ptr cookie_store = content::CreateCookieStore(cookie_config); storage_->set_cookie_store(std::move(cookie_store)); + // Cookie store will outlive notifier by order of declaration + // in the header. + cookie_change_sub_ = + url_request_context_->cookie_store()->AddCallbackForAllChanges( + base::Bind(&URLRequestContextGetter::OnCookieChanged, this)); + storage_->set_channel_id_service(base::MakeUnique( new net::DefaultChannelIDStore(nullptr))); diff --git a/brightray/browser/url_request_context_getter.h b/brightray/browser/url_request_context_getter.h index a15fb7ffe0ed..880473ee7e5d 100644 --- a/brightray/browser/url_request_context_getter.h +++ b/brightray/browser/url_request_context_getter.h @@ -8,10 +8,10 @@ #include #include +#include "base/callback_list.h" #include "base/files/file_path.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/content_browser_client.h" -#include "net/cookies/cookie_monster.h" #include "net/cookies/cookie_store.h" #include "net/http/http_cache.h" #include "net/http/transport_security_state.h" @@ -38,6 +38,7 @@ namespace brightray { class RequireCTDelegate; class DevToolsNetworkControllerHandle; class NetLog; +struct CookieDetails; class URLRequestContextGetter : public net::URLRequestContextGetter { public: @@ -71,6 +72,17 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { content::URLRequestInterceptorScopedVector protocol_interceptors); virtual ~URLRequestContextGetter(); + // Register callbacks that needs to notified on any cookie store changes. + std::unique_ptr::Subscription> + RegisterCookieChangeCallback( + const base::Callback& cb); + void NotifyCookieChange(const net::CanonicalCookie& cookie, + bool removed, + net::CookieStore::ChangeCause cause); + // net::CookieStore::CookieChangedCallback implementation. + void OnCookieChanged(const net::CanonicalCookie& cookie, + net::CookieStore::ChangeCause cause); + // net::URLRequestContextGetter: net::URLRequestContext* GetURLRequestContext() override; scoped_refptr GetNetworkTaskRunner() @@ -102,9 +114,12 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { std::unique_ptr host_mapping_rules_; std::unique_ptr http_auth_preferences_; std::unique_ptr http_network_session_; + std::unique_ptr + cookie_change_sub_; content::ProtocolHandlerMap protocol_handlers_; content::URLRequestInterceptorScopedVector protocol_interceptors_; + base::CallbackList cookie_change_sub_list_; net::URLRequestJobFactory* job_factory_; // weak ref DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter); diff --git a/brightray/filenames.gypi b/brightray/filenames.gypi index 6a7d91f135c4..cfce6df6502b 100644 --- a/brightray/filenames.gypi +++ b/brightray/filenames.gypi @@ -47,6 +47,7 @@ 'browser/media/media_device_id_salt.h', 'browser/media/media_stream_devices_controller.cc', 'browser/media/media_stream_devices_controller.h', + 'browser/net/cookie_details.h', 'browser/net/devtools_network_conditions.cc', 'browser/net/devtools_network_conditions.h', 'browser/net/devtools_network_controller.cc', diff --git a/filenames.gypi b/filenames.gypi index c2f6d44c5e07..da899cb26964 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -261,8 +261,6 @@ 'atom/browser/net/asar/url_request_asar_job.h', 'atom/browser/net/atom_cert_verifier.cc', 'atom/browser/net/atom_cert_verifier.h', - 'atom/browser/net/atom_cookie_delegate.cc', - 'atom/browser/net/atom_cookie_delegate.h', 'atom/browser/net/atom_network_delegate.cc', 'atom/browser/net/atom_network_delegate.h', 'atom/browser/net/atom_url_request.cc', From 62635f43f499cdcf4f5f3cc102207fcf76a2df32 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 12:16:36 +0530 Subject: [PATCH 29/60] base::LaunchOptions fds_to_remap is no longer a pointer https://codereview.chromium.org/2950153002 --- atom/browser/relauncher.cc | 7 ++----- atom/browser/relauncher_mac.cc | 7 +++---- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/atom/browser/relauncher.cc b/atom/browser/relauncher.cc index 9dfb6edd0666..0f3f254b65f1 100644 --- a/atom/browser/relauncher.cc +++ b/atom/browser/relauncher.cc @@ -87,15 +87,12 @@ bool RelaunchAppWithHelper(const base::FilePath& helper, internal::kRelauncherSyncFD != STDOUT_FILENO && internal::kRelauncherSyncFD != STDERR_FILENO, "kRelauncherSyncFD must not conflict with stdio fds"); - - base::FileHandleMappingVector fd_map; - fd_map.push_back( - std::make_pair(pipe_write_fd.get(), internal::kRelauncherSyncFD)); #endif base::LaunchOptions options; #if defined(OS_POSIX) - options.fds_to_remap = &fd_map; + options.fds_to_remap.push_back( + std::make_pair(pipe_write_fd.get(), internal::kRelauncherSyncFD)); base::Process process = base::LaunchProcess(relaunch_argv, options); #elif defined(OS_WIN) base::Process process = base::LaunchProcess( diff --git a/atom/browser/relauncher_mac.cc b/atom/browser/relauncher_mac.cc index 5aee5d2d9289..74c135874be3 100644 --- a/atom/browser/relauncher_mac.cc +++ b/atom/browser/relauncher_mac.cc @@ -82,13 +82,12 @@ int LaunchProgram(const StringVector& relauncher_args, // Redirect the stdout of child process to /dev/null, otherwise after // relaunch the child process will raise exception when writing to stdout. base::ScopedFD devnull(HANDLE_EINTR(open("/dev/null", O_WRONLY))); - base::FileHandleMappingVector no_stdout; - no_stdout.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); - no_stdout.push_back(std::make_pair(devnull.get(), STDOUT_FILENO)); base::LaunchOptions options; options.new_process_group = true; // detach - options.fds_to_remap = &no_stdout; + options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); + options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDOUT_FILENO)); + base::Process process = base::LaunchProcess(argv, options); return process.IsValid() ? 0 : 1; } From e03f7baa60b0f195625b8237406ce08297c9ccba Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 12:20:42 +0530 Subject: [PATCH 30/60] gfx::Image::SwapRepresentations is removed in favor of std::move https://chromium-review.googlesource.com/c/chromium/src/+/588033 --- atom/common/api/atom_api_native_image.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/api/atom_api_native_image.cc b/atom/common/api/atom_api_native_image.cc index fe3ba33412bb..a8f865c63ea6 100644 --- a/atom/common/api/atom_api_native_image.cc +++ b/atom/common/api/atom_api_native_image.cc @@ -456,7 +456,7 @@ void NativeImage::AddRepresentation(const mate::Dictionary& options) { // Re-initialize image when first representation is added to an empty image if (skia_rep_added && IsEmpty()) { gfx::Image image(image_skia); - image_.SwapRepresentations(&image); + image_ = std::move(image); } } From 25d966110ef051ae8de898ff8d5dd837afa93c8d Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 12:30:14 +0530 Subject: [PATCH 31/60] FIXME: PDF component IPC should be converted to Mojo. https://codereview.chromium.org/2455543002 --- atom/browser/ui/webui/pdf_viewer_ui.cc | 4 ++-- atom/common/api/api_messages.h | 7 +++++++ atom/common/common_message_generator.h | 1 - .../components/pdf/common/pdf_messages.h | 19 ------------------- .../pdf/renderer/pepper_pdf_host.cc | 6 +++--- filenames.gypi | 1 - 6 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 chromium_src/components/pdf/common/pdf_messages.h diff --git a/atom/browser/ui/webui/pdf_viewer_ui.cc b/atom/browser/ui/webui/pdf_viewer_ui.cc index 5b1afc411f05..be154aeddfb2 100644 --- a/atom/browser/ui/webui/pdf_viewer_ui.cc +++ b/atom/browser/ui/webui/pdf_viewer_ui.cc @@ -9,9 +9,9 @@ #include "atom/browser/atom_browser_context.h" #include "atom/browser/loader/layered_resource_handler.h" #include "atom/browser/ui/webui/pdf_viewer_handler.h" +#include "atom/common/api/api_messages.h" #include "atom/common/atom_constants.h" #include "base/sequenced_task_runner_helpers.h" -#include "components/pdf/common/pdf_messages.h" #include "content/browser/loader/resource_dispatcher_host_impl.h" #include "content/browser/loader/resource_request_info_impl.h" #include "content/browser/loader/stream_resource_handler.h" @@ -217,7 +217,7 @@ bool PdfViewerUI::OnMessageReceived( content::RenderFrameHost* render_frame_host) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(PdfViewerUI, message) - IPC_MESSAGE_HANDLER(PDFHostMsg_PDFSaveURLAs, OnSaveURLAs) + IPC_MESSAGE_HANDLER(AtomFrameHostMsg_PDFSaveURLAs, OnSaveURLAs) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; diff --git a/atom/common/api/api_messages.h b/atom/common/api/api_messages.h index ad8c1d49bbc0..2ff7c4f07c12 100644 --- a/atom/common/api/api_messages.h +++ b/atom/common/api/api_messages.h @@ -8,9 +8,11 @@ #include "base/strings/string16.h" #include "base/values.h" #include "content/public/common/common_param_traits.h" +#include "content/public/common/referrer.h" #include "ipc/ipc_message_macros.h" #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/ipc/gfx_param_traits.h" +#include "url/gurl.h" // The message starter should be declared in ipc/ipc_message_start.h. Since // we don't want to patch Chromium, we just pretend to be Content Shell. @@ -62,3 +64,8 @@ IPC_SYNC_MESSAGE_ROUTED1_1(AtomViewHostMsg_SetTemporaryZoomLevel, // Sent by renderer to get the zoom level. IPC_SYNC_MESSAGE_ROUTED0_1(AtomViewHostMsg_GetZoomLevel, double /* result */) + +// Brings up SaveAs... dialog to save specified URL. +IPC_MESSAGE_ROUTED2(AtomFrameHostMsg_PDFSaveURLAs, + GURL /* url */, + content::Referrer /* referrer */) diff --git a/atom/common/common_message_generator.h b/atom/common/common_message_generator.h index 8b41a17f29b0..b603e9e8e546 100644 --- a/atom/common/common_message_generator.h +++ b/atom/common/common_message_generator.h @@ -10,4 +10,3 @@ #include "chrome/common/widevine_cdm_messages.h" #include "chrome/common/chrome_utility_messages.h" #include "chrome/common/chrome_utility_printing_messages.h" -#include "components/pdf/common/pdf_messages.h" diff --git a/chromium_src/components/pdf/common/pdf_messages.h b/chromium_src/components/pdf/common/pdf_messages.h deleted file mode 100644 index c6325be4e1bc..000000000000 --- a/chromium_src/components/pdf/common/pdf_messages.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2014 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. - -// Multiply-included file, no traditional include guard. -#include - -#include "content/public/common/common_param_traits_macros.h" -#include "content/public/common/referrer.h" -#include "ipc/ipc_message_macros.h" -#include "url/gurl.h" -#include "url/ipc/url_param_traits.h" - -#define IPC_MESSAGE_START PDFMsgStart - -// Brings up SaveAs... dialog to save specified URL. -IPC_MESSAGE_ROUTED2(PDFHostMsg_PDFSaveURLAs, - GURL /* url */, - content::Referrer /* referrer */) diff --git a/chromium_src/components/pdf/renderer/pepper_pdf_host.cc b/chromium_src/components/pdf/renderer/pepper_pdf_host.cc index ba3c87e70cca..96385148c4f5 100644 --- a/chromium_src/components/pdf/renderer/pepper_pdf_host.cc +++ b/chromium_src/components/pdf/renderer/pepper_pdf_host.cc @@ -4,8 +4,8 @@ #include "components/pdf/renderer/pepper_pdf_host.h" +#include "atom/common/api/api_messages.h" #include "base/memory/ptr_util.h" -#include "components/pdf/common/pdf_messages.h" #include "content/public/common/referrer.h" #include "content/public/renderer/pepper_plugin_instance.h" #include "content/public/renderer/render_frame.h" @@ -77,8 +77,8 @@ int32_t PepperPDFHost::OnHostMsgSaveAs( referrer.url = url; referrer.policy = blink::kWebReferrerPolicyDefault; referrer = content::Referrer::SanitizeForRequest(url, referrer); - render_frame->Send( - new PDFHostMsg_PDFSaveURLAs(render_frame->GetRoutingID(), url, referrer)); + render_frame->Send(new AtomFrameHostMsg_PDFSaveURLAs( + render_frame->GetRoutingID(), url, referrer)); return PP_OK; } diff --git a/filenames.gypi b/filenames.gypi index da899cb26964..c2e48d2de6fd 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -644,7 +644,6 @@ 'chromium_src/chrome/renderer/tts_dispatcher.cc', 'chromium_src/chrome/renderer/tts_dispatcher.h', 'chromium_src/chrome/utility/utility_message_handler.h', - 'chromium_src/components/pdf/common/pdf_messages.h', 'chromium_src/components/pdf/renderer/pepper_pdf_host.cc', 'chromium_src/components/pdf/renderer/pepper_pdf_host.h', 'chromium_src/extensions/browser/app_window/size_constraints.cc', From 69ca6ccdc13205dee7604cc602cbfe6b1c1a1183 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 13:26:01 +0530 Subject: [PATCH 32/60] Remove chrome_utility_messages.h, it's unused --- atom/common/common_message_generator.h | 1 - .../browser/printing/pdf_to_emf_converter.cc | 1 - .../chrome/common/chrome_utility_messages.h | 163 ------------------ filenames.gypi | 1 - 4 files changed, 166 deletions(-) delete mode 100644 chromium_src/chrome/common/chrome_utility_messages.h diff --git a/atom/common/common_message_generator.h b/atom/common/common_message_generator.h index b603e9e8e546..fac3d548c093 100644 --- a/atom/common/common_message_generator.h +++ b/atom/common/common_message_generator.h @@ -8,5 +8,4 @@ #include "chrome/common/print_messages.h" #include "chrome/common/tts_messages.h" #include "chrome/common/widevine_cdm_messages.h" -#include "chrome/common/chrome_utility_messages.h" #include "chrome/common/chrome_utility_printing_messages.h" diff --git a/chromium_src/chrome/browser/printing/pdf_to_emf_converter.cc b/chromium_src/chrome/browser/printing/pdf_to_emf_converter.cc index a35e80cea232..4774544cf2c8 100644 --- a/chromium_src/chrome/browser/printing/pdf_to_emf_converter.cc +++ b/chromium_src/chrome/browser/printing/pdf_to_emf_converter.cc @@ -19,7 +19,6 @@ #include "base/macros.h" #include "base/memory/ptr_util.h" #include "base/threading/thread_task_runner_handle.h" -#include "chrome/common/chrome_utility_messages.h" #include "chrome/common/chrome_utility_printing_messages.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/child_process_data.h" diff --git a/chromium_src/chrome/common/chrome_utility_messages.h b/chromium_src/chrome/common/chrome_utility_messages.h deleted file mode 100644 index 012c9f67509b..000000000000 --- a/chromium_src/chrome/common/chrome_utility_messages.h +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright (c) 2012 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. - -// Multiply-included message file, so no include guard. - -#if defined(OS_WIN) -#include -#endif // defined(OS_WIN) - -#include -#include -#include - -#include "base/files/file_path.h" -#include "base/strings/string16.h" -#include "base/values.h" -#include "ipc/ipc_message_macros.h" -#include "ipc/ipc_platform_file.h" -#include "third_party/skia/include/core/SkBitmap.h" -#include "ui/gfx/ipc/gfx_param_traits.h" - -// Singly-included section for typedefs. -#ifndef CHROME_COMMON_CHROME_UTILITY_MESSAGES_H_ -#define CHROME_COMMON_CHROME_UTILITY_MESSAGES_H_ - -#if defined(OS_WIN) -// A vector of filters, each being a tuple containing a display string (i.e. -// "Text Files") and a filter pattern (i.e. "*.txt"). -typedef std::vector> - GetOpenFileNameFilter; -#endif // OS_WIN - -#endif // CHROME_COMMON_CHROME_UTILITY_MESSAGES_H_ - -#define IPC_MESSAGE_START ChromeUtilityMsgStart - - -#if defined(OS_WIN) -IPC_STRUCT_BEGIN(ChromeUtilityMsg_GetSaveFileName_Params) - IPC_STRUCT_MEMBER(HWND, owner) - IPC_STRUCT_MEMBER(DWORD, flags) - IPC_STRUCT_MEMBER(GetOpenFileNameFilter, filters) - IPC_STRUCT_MEMBER(int, one_based_filter_index) - IPC_STRUCT_MEMBER(base::FilePath, suggested_filename) - IPC_STRUCT_MEMBER(base::FilePath, initial_directory) - IPC_STRUCT_MEMBER(base::string16, default_extension) -IPC_STRUCT_END() -#endif // OS_WIN - -//------------------------------------------------------------------------------ -// Utility process messages: -// These are messages from the browser to the utility process. - -// Tell the utility process to parse a JSON string into a Value object. -IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_ParseJSON, - std::string /* JSON to parse */) - -// Tell the utility process to decode the given image data. -IPC_MESSAGE_CONTROL2(ChromeUtilityMsg_DecodeImage, - std::vector /* encoded image contents */, - bool /* shrink image if needed for IPC msg limit */) - -// Tell the utility process to decode the given JPEG image data with a robust -// libjpeg codec. -IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_RobustJPEGDecodeImage, - std::vector) // encoded image contents - -// Tell the utility process to patch the given |input_file| using |patch_file| -// and place the output in |output_file|. The patch should use the bsdiff -// algorithm (Courgette's version). -IPC_MESSAGE_CONTROL3(ChromeUtilityMsg_PatchFileBsdiff, - base::FilePath /* input_file */, - base::FilePath /* patch_file */, - base::FilePath /* output_file */) - -// Tell the utility process to patch the given |input_file| using |patch_file| -// and place the output in |output_file|. The patch should use the Courgette -// algorithm. -IPC_MESSAGE_CONTROL3(ChromeUtilityMsg_PatchFileCourgette, - base::FilePath /* input_file */, - base::FilePath /* patch_file */, - base::FilePath /* output_file */) - - -#if defined(OS_WIN) -// Invokes ui::base::win::OpenFileViaShell from the utility process. -IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_OpenFileViaShell, - base::FilePath /* full_path */) - -// Invokes ui::base::win::OpenFolderViaShell from the utility process. -IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_OpenFolderViaShell, - base::FilePath /* full_path */) - -// Instructs the utility process to invoke GetOpenFileName. |owner| is the -// parent of the modal dialog, |flags| are OFN_* flags. |filter| constrains the -// user's file choices. |initial_directory| and |filename| select the directory -// to be displayed and the file to be initially selected. -// -// Either ChromeUtilityHostMsg_GetOpenFileName_Failed or -// ChromeUtilityHostMsg_GetOpenFileName_Result will be returned when the -// operation completes whether due to error or user action. -IPC_MESSAGE_CONTROL5(ChromeUtilityMsg_GetOpenFileName, - HWND /* owner */, - DWORD /* flags */, - GetOpenFileNameFilter /* filter */, - base::FilePath /* initial_directory */, - base::FilePath /* filename */) -IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetSaveFileName, - ChromeUtilityMsg_GetSaveFileName_Params /* params */) -#endif // defined(OS_WIN) - - -//------------------------------------------------------------------------------ -// Utility process host messages: -// These are messages from the utility process to the browser. - -// Reply when the utility process successfully parsed a JSON string. -// -// WARNING: The result can be of any Value subclass type, but we can't easily -// pass indeterminate value types by const object reference with our IPC macros, -// so we put the result Value into a ListValue. Handlers should examine the -// first (and only) element of the ListValue for the actual result. -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_ParseJSON_Succeeded, - base::ListValue) - -// Reply when the utility process failed in parsing a JSON string. -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_ParseJSON_Failed, - std::string /* error message, if any*/) - -// Reply when the utility process has failed while unpacking and parsing a -// web resource. |error_message| is a user-readable explanation of what -// went wrong. -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_UnpackWebResource_Failed, - std::string /* error_message, if any */) - -// Reply when the utility process has succeeded in decoding the image. -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_DecodeImage_Succeeded, - SkBitmap) // decoded image - -// Reply when an error occurred decoding the image. -IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_DecodeImage_Failed) - -// Reply when a file has been patched. -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_PatchFile_Finished, int /* result */) - - -// Reply when the utility process has started. -IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_ProcessStarted) - - -#if defined(OS_WIN) -IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_GetOpenFileName_Failed) -IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetOpenFileName_Result, - base::FilePath /* directory */, - std::vector /* filenames */) -IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_GetSaveFileName_Failed) -IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetSaveFileName_Result, - base::FilePath /* path */, - int /* one_based_filter_index */) -IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_BuildDirectWriteFontCache, - base::FilePath /* cache file path */) -#endif // defined(OS_WIN) diff --git a/filenames.gypi b/filenames.gypi index c2e48d2de6fd..38ba7b226e27 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -607,7 +607,6 @@ 'chromium_src/chrome/common/chrome_paths_linux.cc', 'chromium_src/chrome/common/chrome_paths_mac.mm', 'chromium_src/chrome/common/chrome_paths_win.cc', - 'chromium_src/chrome/common/chrome_utility_messages.h', 'chromium_src/chrome/common/pref_names.cc', 'chromium_src/chrome/common/pref_names.h', 'chromium_src/chrome/common/print_messages.cc', From d846c9006e1b2cc9cf09a7c35d6c48380f787962 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 13:28:49 +0530 Subject: [PATCH 33/60] Replace somemore uses of SetStringWithoutPathExpansion --- atom/common/native_mate_converters/content_converter.cc | 8 ++++---- atom/common/native_mate_converters/net_converter.cc | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/atom/common/native_mate_converters/content_converter.cc b/atom/common/native_mate_converters/content_converter.cc index c064df43b663..01682bb7706e 100644 --- a/atom/common/native_mate_converters/content_converter.cc +++ b/atom/common/native_mate_converters/content_converter.cc @@ -221,16 +221,16 @@ Converter>::ToV8( post_data_dict->Set("bytes", std::move(bytes)); } else if (type == ResourceRequestBody::Element::TYPE_FILE) { post_data_dict->SetString("type", "file"); - post_data_dict->SetStringWithoutPathExpansion( - "filePath", element.path().AsUTF8Unsafe()); + post_data_dict->SetKey("filePath", + base::Value(element.path().AsUTF8Unsafe())); post_data_dict->SetInteger("offset", static_cast(element.offset())); post_data_dict->SetInteger("length", static_cast(element.length())); post_data_dict->SetDouble( "modificationTime", element.expected_modification_time().ToDoubleT()); } else if (type == ResourceRequestBody::Element::TYPE_FILE_FILESYSTEM) { post_data_dict->SetString("type", "fileSystem"); - post_data_dict->SetStringWithoutPathExpansion( - "fileSystemURL", element.filesystem_url().spec()); + post_data_dict->SetKey("fileSystemURL", + base::Value(element.filesystem_url().spec())); post_data_dict->SetInteger("offset", static_cast(element.offset())); post_data_dict->SetInteger("length", static_cast(element.length())); post_data_dict->SetDouble( diff --git a/atom/common/native_mate_converters/net_converter.cc b/atom/common/native_mate_converters/net_converter.cc index 05c20ea6be28..618c089ae9ab 100644 --- a/atom/common/native_mate_converters/net_converter.cc +++ b/atom/common/native_mate_converters/net_converter.cc @@ -203,7 +203,7 @@ void FillRequestDetails(base::DictionaryValue* details, details->SetString("method", request->method()); std::string url; if (!request->url_chain().empty()) url = request->url().spec(); - details->SetStringWithoutPathExpansion("url", url); + details->SetKey("url", base::Value(url)); details->SetString("referrer", request->referrer()); std::unique_ptr list(new base::ListValue); GetUploadData(list.get(), request); @@ -239,7 +239,7 @@ void GetUploadData(base::ListValue* upload_data_list, const net::UploadFileElementReader* file_reader = reader->AsFileReader(); auto file_path = file_reader->path().AsUTF8Unsafe(); - upload_data_dict->SetStringWithoutPathExpansion("file", file_path); + upload_data_dict->SetKey("file", base::Value(file_path)); } else { const storage::UploadBlobElementReader* blob_reader = static_cast(reader.get()); From f52f752acd699771f1eb0c3b3185311dba08a975 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 27 Nov 2017 13:29:36 +0530 Subject: [PATCH 34/60] fxedit is removed and pdfwindow renamed to pwl https://pdfium-review.googlesource.com/c/pdfium/+/8552 https://pdfium-review.googlesource.com/c/pdfium/+/8791 --- brightray/brightray.gyp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/brightray/brightray.gyp b/brightray/brightray.gyp index 1cd4c6b70c2e..281854504d71 100644 --- a/brightray/brightray.gyp +++ b/brightray/brightray.gyp @@ -135,11 +135,10 @@ '<(libchromiumcontent_dir)/libfpdfdoc.a', '<(libchromiumcontent_dir)/libfpdftext.a', '<(libchromiumcontent_dir)/libfxcodec.a', - '<(libchromiumcontent_dir)/libfxedit.a', '<(libchromiumcontent_dir)/libfxge.a', '<(libchromiumcontent_dir)/libfxjs.a', '<(libchromiumcontent_dir)/libjavascript.a', - '<(libchromiumcontent_dir)/libpdfwindow.a', + '<(libchromiumcontent_dir)/libpwl.a', '<(libchromiumcontent_dir)/libfx_agg.a', '<(libchromiumcontent_dir)/libfx_lcms2.a', '<(libchromiumcontent_dir)/libfx_libopenjpeg.a', @@ -225,11 +224,10 @@ '<(libchromiumcontent_dir)/libfpdftext.a', '<(libchromiumcontent_dir)/libfxcodec.a', '<(libchromiumcontent_dir)/libfxcrt.a', - '<(libchromiumcontent_dir)/libfxedit.a', '<(libchromiumcontent_dir)/libfxge.a', '<(libchromiumcontent_dir)/libfxjs.a', '<(libchromiumcontent_dir)/libjavascript.a', - '<(libchromiumcontent_dir)/libpdfwindow.a', + '<(libchromiumcontent_dir)/libpwl.a', '<(libchromiumcontent_dir)/libfx_agg.a', '<(libchromiumcontent_dir)/libfx_lcms2.a', '<(libchromiumcontent_dir)/libfx_libopenjpeg.a', @@ -322,11 +320,10 @@ '<(libchromiumcontent_dir)/fpdftext.lib', '<(libchromiumcontent_dir)/fxcodec.lib', '<(libchromiumcontent_dir)/fxcrt.lib', - '<(libchromiumcontent_dir)/fxedit.lib', '<(libchromiumcontent_dir)/fxge.lib', '<(libchromiumcontent_dir)/fxjs.lib', '<(libchromiumcontent_dir)/javascript.lib', - '<(libchromiumcontent_dir)/pdfwindow.lib', + '<(libchromiumcontent_dir)/pwl.lib', '<(libchromiumcontent_dir)/fx_agg.lib', '<(libchromiumcontent_dir)/fx_lcms2.lib', '<(libchromiumcontent_dir)/fx_libopenjpeg.lib', From 6f00e4a01421017f7cd4e8e28ca9ce6fc991eb18 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 27 Nov 2017 13:56:49 +0100 Subject: [PATCH 35/60] REVIEW: Implements core logic for Pixel Canvas https://codereview.chromium.org/2877483003 --- atom/browser/osr/osr_render_widget_host_view.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index a131f449b4e7..328671f09dfc 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -303,9 +303,13 @@ OffScreenRenderWidgetHostView::OffScreenRenderWidgetHostView( ui::ContextFactoryPrivate* context_factory_private = factory->GetContextFactoryPrivate(); compositor_.reset( - new ui::Compositor(context_factory_private->AllocateFrameSinkId(), - content::GetContextFactory(), context_factory_private, - base::ThreadTaskRunnerHandle::Get(), false)); + new ui::Compositor( + context_factory_private->AllocateFrameSinkId(), + content::GetContextFactory(), + context_factory_private, + base::ThreadTaskRunnerHandle::Get(), + false /* enable_surface_synchronization */, + false /* enable_pixel_canvas */)); compositor_->SetAcceleratedWidget(gfx::kNullAcceleratedWidget); compositor_->SetRootLayer(root_layer_.get()); #endif From 9fa08fdbc09b61bd81dc9c4a7df8899c8e3149c8 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Mon, 27 Nov 2017 14:02:37 +0100 Subject: [PATCH 36/60] Merge views::CustomButton into views::Button. https://chromium-review.googlesource.com/617407 --- atom/browser/ui/views/submenu_button.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/browser/ui/views/submenu_button.cc b/atom/browser/ui/views/submenu_button.cc index 3c3cff3c6541..5ae2aae1ce85 100644 --- a/atom/browser/ui/views/submenu_button.cc +++ b/atom/browser/ui/views/submenu_button.cc @@ -60,7 +60,7 @@ std::unique_ptr SubmenuButton::CreateInkDropRipple() std::unique_ptr SubmenuButton::CreateInkDrop() { std::unique_ptr ink_drop = - CustomButton::CreateDefaultInkDropImpl(); + views::Button::CreateDefaultInkDropImpl(); ink_drop->SetShowHighlightOnHover(false); return std::move(ink_drop); } From 5eb0a89579bc6903b23f816c4268bd44c5ea0650 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Tue, 28 Nov 2017 12:53:42 +0530 Subject: [PATCH 37/60] REVIEW: let browser context manage cookie change sub list --- atom/browser/api/atom_api_cookies.cc | 11 ++++----- atom/browser/api/atom_api_cookies.h | 14 ++++++----- atom/browser/atom_browser_context.cc | 15 ++++++++++++ atom/browser/atom_browser_context.h | 11 +++++++++ .../browser/net/cookie_details.h | 10 ++++---- .../browser/url_request_context_getter.cc | 24 +++++-------------- .../browser/url_request_context_getter.h | 13 +++------- 7 files changed, 53 insertions(+), 45 deletions(-) rename {brightray => atom}/browser/net/cookie_details.h (73%) diff --git a/atom/browser/api/atom_api_cookies.cc b/atom/browser/api/atom_api_cookies.cc index 0ba537147336..b0ecbea4fef1 100644 --- a/atom/browser/api/atom_api_cookies.cc +++ b/atom/browser/api/atom_api_cookies.cc @@ -238,12 +238,11 @@ void SetCookieOnIO(scoped_refptr getter, } // namespace Cookies::Cookies(v8::Isolate* isolate, AtomBrowserContext* browser_context) - : request_context_getter_(browser_context->url_request_context_getter()) { + : browser_context_(browser_context), + request_context_getter_(browser_context->url_request_context_getter()) { Init(isolate); - cookie_change_subscription_ = - browser_context->url_request_context_getter() - ->RegisterCookieChangeCallback( - base::Bind(&Cookies::OnCookieChanged, base::Unretained(this))); + cookie_change_subscription_ = browser_context->RegisterCookieChangeCallback( + base::Bind(&Cookies::OnCookieChanged, base::Unretained(this))); } Cookies::~Cookies() {} @@ -281,7 +280,7 @@ void Cookies::FlushStore(const base::Closure& callback) { base::Bind(FlushCookieStoreOnIOThread, getter, callback)); } -void Cookies::OnCookieChanged(const brightray::CookieDetails* details) { +void Cookies::OnCookieChanged(const CookieDetails* details) { Emit("changed", *(details->cookie), details->cause, details->removed); } diff --git a/atom/browser/api/atom_api_cookies.h b/atom/browser/api/atom_api_cookies.h index 47922f343e42..b1fb9e0aaf74 100644 --- a/atom/browser/api/atom_api_cookies.h +++ b/atom/browser/api/atom_api_cookies.h @@ -8,8 +8,8 @@ #include #include "atom/browser/api/trackable_object.h" +#include "atom/browser/net/cookie_details.h" #include "base/callback.h" -#include "brightray/browser/net/cookie_details.h" #include "native_mate/handle.h" #include "net/cookies/canonical_cookie.h" @@ -54,15 +54,17 @@ class Cookies : public mate::TrackableObject { void Set(const base::DictionaryValue& details, const SetCallback& callback); void FlushStore(const base::Closure& callback); - // brightray::URLRequestContextGetter subscription: - void OnCookieChanged(const brightray::CookieDetails*); + // AtomBrowserContext::RegisterCookieChangeCallback subscription: + void OnCookieChanged(const CookieDetails*); private: - net::URLRequestContextGetter* request_context_getter_; - std::unique_ptr< - base::CallbackList::Subscription> + // Store a reference to ensure this class gets destroyed before the context. + scoped_refptr browser_context_; + std::unique_ptr::Subscription> cookie_change_subscription_; + net::URLRequestContextGetter* request_context_getter_; + DISALLOW_COPY_AND_ASSIGN(Cookies); }; diff --git a/atom/browser/atom_browser_context.cc b/atom/browser/atom_browser_context.cc index 33ff92d2f135..bd69d8bc78c2 100644 --- a/atom/browser/atom_browser_context.cc +++ b/atom/browser/atom_browser_context.cc @@ -15,6 +15,7 @@ #include "atom/browser/net/atom_cert_verifier.h" #include "atom/browser/net/atom_network_delegate.h" #include "atom/browser/net/atom_url_request_job_factory.h" +#include "atom/browser/net/cookie_details.h" #include "atom/browser/net/http_protocol_handler.h" #include "atom/browser/web_view_manager.h" #include "atom/common/atom_version.h" @@ -102,6 +103,12 @@ void AtomBrowserContext::SetUserAgent(const std::string& user_agent) { user_agent_ = user_agent; } +std::unique_ptr::Subscription> +AtomBrowserContext::RegisterCookieChangeCallback( + const base::Callback& cb) { + return cookie_change_sub_list_.Add(cb); +} + std::unique_ptr AtomBrowserContext::CreateNetworkDelegate() { return base::MakeUnique(); @@ -198,6 +205,14 @@ std::vector AtomBrowserContext::GetCookieableSchemes() { return default_schemes; } +void AtomBrowserContext::NotifyCookieChange( + const net::CanonicalCookie& cookie, + bool removed, + net::CookieStore::ChangeCause cause) { + CookieDetails cookie_details(&cookie, removed, cause); + cookie_change_sub_list_.Notify(&cookie_details); +} + void AtomBrowserContext::RegisterPrefs(PrefRegistrySimple* pref_registry) { pref_registry->RegisterFilePathPref(prefs::kSelectFileLastDirectory, base::FilePath()); diff --git a/atom/browser/atom_browser_context.h b/atom/browser/atom_browser_context.h index 8f99a5e74107..c892f2b6a22a 100644 --- a/atom/browser/atom_browser_context.h +++ b/atom/browser/atom_browser_context.h @@ -8,6 +8,7 @@ #include #include +#include "base/callback_list.h" #include "brightray/browser/browser_context.h" namespace atom { @@ -17,6 +18,7 @@ class AtomDownloadManagerDelegate; class AtomNetworkDelegate; class AtomPermissionManager; class WebViewManager; +struct CookieDetails; class AtomBrowserContext : public brightray::BrowserContext { public: @@ -28,6 +30,10 @@ class AtomBrowserContext : public brightray::BrowserContext { const base::DictionaryValue& options = base::DictionaryValue()); void SetUserAgent(const std::string& user_agent); + // Register callbacks that needs to notified on any cookie store changes. + std::unique_ptr::Subscription> + RegisterCookieChangeCallback( + const base::Callback& cb); // brightray::URLRequestContextGetter::Delegate: std::unique_ptr CreateNetworkDelegate() override; @@ -39,6 +45,9 @@ class AtomBrowserContext : public brightray::BrowserContext { std::unique_ptr CreateCertVerifier( brightray::RequireCTDelegate* ct_delegate) override; std::vector GetCookieableSchemes() override; + void NotifyCookieChange(const net::CanonicalCookie& cookie, + bool removed, + net::CookieStore::ChangeCause cause) override; // content::BrowserContext: content::DownloadManagerDelegate* GetDownloadManagerDelegate() override; @@ -63,6 +72,8 @@ class AtomBrowserContext : public brightray::BrowserContext { std::string user_agent_; bool use_cache_; + base::CallbackList cookie_change_sub_list_; + DISALLOW_COPY_AND_ASSIGN(AtomBrowserContext); }; diff --git a/brightray/browser/net/cookie_details.h b/atom/browser/net/cookie_details.h similarity index 73% rename from brightray/browser/net/cookie_details.h rename to atom/browser/net/cookie_details.h index 42a5b7eb6b6d..5103836dcb6c 100644 --- a/brightray/browser/net/cookie_details.h +++ b/atom/browser/net/cookie_details.h @@ -2,13 +2,13 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. -#ifndef BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ -#define BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ +#ifndef ATOM_BROWSER_NET_COOKIE_DETAILS_H_ +#define ATOM_BROWSER_NET_COOKIE_DETAILS_H_ #include "base/macros.h" #include "net/cookies/cookie_store.h" -namespace brightray { +namespace atom { struct CookieDetails { public: @@ -22,6 +22,6 @@ struct CookieDetails { net::CookieStore::ChangeCause cause; }; -} // namespace brightray +} // namespace atom -#endif // BRIGHTRAY_BROWSER_NET_COOKIE_DETAILS_H_ +#endif // ATOM_BROWSER_NET_COOKIE_DETAILS_H_ diff --git a/brightray/browser/url_request_context_getter.cc b/brightray/browser/url_request_context_getter.cc index 70d19afce62f..6d9f8a2dab6e 100644 --- a/brightray/browser/url_request_context_getter.cc +++ b/brightray/browser/url_request_context_getter.cc @@ -13,7 +13,6 @@ #include "base/threading/sequenced_worker_pool.h" #include "base/threading/worker_pool.h" #include "brightray/browser/browser_client.h" -#include "brightray/browser/net/cookie_details.h" #include "brightray/browser/net/devtools_network_controller_handle.h" #include "brightray/browser/net/devtools_network_transaction_factory.h" #include "brightray/browser/net/require_ct_delegate.h" @@ -155,30 +154,19 @@ URLRequestContextGetter::URLRequestContextGetter( URLRequestContextGetter::~URLRequestContextGetter() { } -std::unique_ptr::Subscription> -URLRequestContextGetter::RegisterCookieChangeCallback( - const base::Callback& cb) { - return cookie_change_sub_list_.Add(cb); -} - -void URLRequestContextGetter::NotifyCookieChange( - const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause) { - CookieDetails cookie_details(&cookie, removed, cause); - cookie_change_sub_list_.Notify(&cookie_details); -} - void URLRequestContextGetter::OnCookieChanged( const net::CanonicalCookie& cookie, net::CookieStore::ChangeCause cause) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); + if (!delegate_) + return; + content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::BindOnce(&URLRequestContextGetter::NotifyCookieChange, this, cookie, - !(cause == net::CookieStore::ChangeCause::INSERTED), - cause)); + base::BindOnce( + &Delegate::NotifyCookieChange, base::Unretained(delegate_), cookie, + !(cause == net::CookieStore::ChangeCause::INSERTED), cause)); } net::HostResolver* URLRequestContextGetter::host_resolver() { diff --git a/brightray/browser/url_request_context_getter.h b/brightray/browser/url_request_context_getter.h index 880473ee7e5d..b0a2549280e8 100644 --- a/brightray/browser/url_request_context_getter.h +++ b/brightray/browser/url_request_context_getter.h @@ -8,7 +8,6 @@ #include #include -#include "base/callback_list.h" #include "base/files/file_path.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/content_browser_client.h" @@ -38,7 +37,6 @@ namespace brightray { class RequireCTDelegate; class DevToolsNetworkControllerHandle; class NetLog; -struct CookieDetails; class URLRequestContextGetter : public net::URLRequestContextGetter { public: @@ -59,6 +57,9 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { RequireCTDelegate* ct_delegate); virtual net::SSLConfigService* CreateSSLConfigService(); virtual std::vector GetCookieableSchemes(); + virtual void NotifyCookieChange(const net::CanonicalCookie& cookie, + bool removed, + net::CookieStore::ChangeCause cause) {} }; URLRequestContextGetter( @@ -72,13 +73,6 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { content::URLRequestInterceptorScopedVector protocol_interceptors); virtual ~URLRequestContextGetter(); - // Register callbacks that needs to notified on any cookie store changes. - std::unique_ptr::Subscription> - RegisterCookieChangeCallback( - const base::Callback& cb); - void NotifyCookieChange(const net::CanonicalCookie& cookie, - bool removed, - net::CookieStore::ChangeCause cause); // net::CookieStore::CookieChangedCallback implementation. void OnCookieChanged(const net::CanonicalCookie& cookie, net::CookieStore::ChangeCause cause); @@ -119,7 +113,6 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { content::ProtocolHandlerMap protocol_handlers_; content::URLRequestInterceptorScopedVector protocol_interceptors_; - base::CallbackList cookie_change_sub_list_; net::URLRequestJobFactory* job_factory_; // weak ref DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter); From fbd5e4c2b394aa7e0a84ee30632999ad776a60d2 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 28 Nov 2017 12:10:14 +0100 Subject: [PATCH 38/60] Disable the "ffi" module test --- spec/modules-spec.js | 5 ++++- spec/package.json | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/spec/modules-spec.js b/spec/modules-spec.js index cfe840ca0a44..88a625830c8d 100644 --- a/spec/modules-spec.js +++ b/spec/modules-spec.js @@ -28,7 +28,10 @@ describe('modules support', () => { }) }) - describe('ffi', () => { + // TODO(alexeykuzmin): Disabled during the Chromium 62 (Node.js 9) upgrade. + // Enable it back when "ffi" module supports Node.js 9. + // https://github.com/electron/electron/issues/11274 + xdescribe('ffi', () => { before(function () { if (!nativeModulesEnabled || process.platform === 'win32') { this.skip() diff --git a/spec/package.json b/spec/package.json index 25ab00069777..b34558416fb3 100644 --- a/spec/package.json +++ b/spec/package.json @@ -23,7 +23,6 @@ "yargs": "^6.0.0" }, "optionalDependencies": { - "ffi": "2.2.0", "runas": "3.x" }, "standard": { From cdab07361478b3aab1d0070111e7fed702c57260 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Wed, 29 Nov 2017 22:30:21 +0530 Subject: [PATCH 39/60] FIX: add chrome-devtools:// to list of WebUI schemes https://chromium-review.googlesource.com/c/chromium/src/+/617598 --- brightray/browser/browser_client.cc | 5 +++++ brightray/browser/browser_client.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/brightray/browser/browser_client.cc b/brightray/browser/browser_client.cc index 0882fa7817fd..c4b7c66dd9e2 100644 --- a/brightray/browser/browser_client.cc +++ b/brightray/browser/browser_client.cc @@ -97,6 +97,11 @@ void BrowserClient::GetAdditionalAllowedSchemesForFileSystem( additional_schemes->push_back(content::kChromeUIScheme); } +void BrowserClient::GetAdditionalWebUISchemes( + std::vector* additional_schemes) { + additional_schemes->push_back(content::kChromeDevToolsScheme); +} + net::NetLog* BrowserClient::GetNetLog() { return &net_log_; } diff --git a/brightray/browser/browser_client.h b/brightray/browser/browser_client.h index 691633c82654..88b132c42c50 100644 --- a/brightray/browser/browser_client.h +++ b/brightray/browser/browser_client.h @@ -45,6 +45,8 @@ class BrowserClient : public content::ContentBrowserClient { override; void GetAdditionalAllowedSchemesForFileSystem( std::vector* additional_schemes) override; + void GetAdditionalWebUISchemes( + std::vector* additional_schemes) override; net::NetLog* GetNetLog() override; base::FilePath GetDefaultDownloadDirectory() override; content::DevToolsManagerDelegate* GetDevToolsManagerDelegate() override; From 041b32b01f95be83ebf7d23a4f02e6230c5a8f64 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Wed, 29 Nov 2017 22:32:24 +0530 Subject: [PATCH 40/60] remove invalid cookie_details.h filename from brightray --- brightray/filenames.gypi | 1 - 1 file changed, 1 deletion(-) diff --git a/brightray/filenames.gypi b/brightray/filenames.gypi index cfce6df6502b..6a7d91f135c4 100644 --- a/brightray/filenames.gypi +++ b/brightray/filenames.gypi @@ -47,7 +47,6 @@ 'browser/media/media_device_id_salt.h', 'browser/media/media_stream_devices_controller.cc', 'browser/media/media_stream_devices_controller.h', - 'browser/net/cookie_details.h', 'browser/net/devtools_network_conditions.cc', 'browser/net/devtools_network_conditions.h', 'browser/net/devtools_network_controller.cc', From dcb369ee467c713c4e6e55729aa85eba7e6c9607 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Wed, 29 Nov 2017 23:57:17 +0100 Subject: [PATCH 41/60] Fail "navigator.serviceWorker" tests if WebContents crashes --- spec/chromium-spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/chromium-spec.js b/spec/chromium-spec.js index 2d388ca3b574..871af98b4df3 100644 --- a/spec/chromium-spec.js +++ b/spec/chromium-spec.js @@ -147,6 +147,7 @@ describe('chromium feature', () => { }, () => done()) } }) + w.webContents.on('crashed', () => done(new Error('WebContents crashed.'))) w.loadURL(`file://${fixtures}/pages/service-worker/index.html`) }) @@ -184,6 +185,7 @@ describe('chromium feature', () => { }) } }) + w.webContents.on('crashed', () => done(new Error('WebContents crashed.'))) w.loadURL(`file://${fixtures}/pages/service-worker/index.html`) }) }) From 0ec2eba2a364331c059068088e0a9ee129872e01 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Thu, 30 Nov 2017 23:12:07 +0100 Subject: [PATCH 42/60] Add init_webrtc lib to the list of static libraries --- brightray/brightray.gyp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/brightray/brightray.gyp b/brightray/brightray.gyp index 281854504d71..0d1a6d82d3e5 100644 --- a/brightray/brightray.gyp +++ b/brightray/brightray.gyp @@ -112,6 +112,7 @@ '<(libchromiumcontent_dir)/librtc_base.a', '<(libchromiumcontent_dir)/librtc_base_approved.a', '<(libchromiumcontent_dir)/libwebrtc_common.a', + '<(libchromiumcontent_dir)/libinit_webrtc.a', '<(libchromiumcontent_dir)/libyuv.a', '<(libchromiumcontent_dir)/librenderer.a', '<(libchromiumcontent_dir)/libsecurity_state.a', @@ -204,6 +205,7 @@ '<(libchromiumcontent_dir)/librtc_base_approved.a', '<(libchromiumcontent_dir)/libsystem_wrappers.a', '<(libchromiumcontent_dir)/libwebrtc_common.a', + '<(libchromiumcontent_dir)/libinit_webrtc.a', '<(libchromiumcontent_dir)/libyuv.a', '<(libchromiumcontent_dir)/librenderer.a', '<(libchromiumcontent_dir)/libsecurity_state.a', @@ -299,6 +301,7 @@ '<(libchromiumcontent_dir)/rtc_base_approved.lib', '<(libchromiumcontent_dir)/system_wrappers.lib', '<(libchromiumcontent_dir)/webrtc_common.lib', + '<(libchromiumcontent_dir)/init_webrtc.lib', '<(libchromiumcontent_dir)/libyuv.lib', '<(libchromiumcontent_dir)/renderer.lib', '<(libchromiumcontent_dir)/security_state.lib', From da7fc54e375d2b2d9c8952c7699af97003606a9f Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 8 Dec 2017 16:12:47 +0900 Subject: [PATCH 43/60] Update sysroot to Debian Stretch --- .gitignore | 11 ++---- script/install-sysroot.py | 7 ++-- script/sysroots.json | 78 +++++++++++++++------------------------ toolchain.gypi | 8 ++-- 4 files changed, 41 insertions(+), 63 deletions(-) diff --git a/.gitignore b/.gitignore index 8632e8e30869..415b319a3834 100644 --- a/.gitignore +++ b/.gitignore @@ -28,14 +28,11 @@ /external_binaries/ /out/ /vendor/.gclient -/vendor/debian_jessie_amd64-sysroot/ -/vendor/debian_jessie_arm-sysroot/ -/vendor/debian_jessie_arm64-sysroot/ -/vendor/debian_jessie_i386-sysroot/ /vendor/debian_jessie_mips64-sysroot/ -/vendor/debian_wheezy_amd64-sysroot/ -/vendor/debian_wheezy_arm-sysroot/ -/vendor/debian_wheezy_i386-sysroot/ +/vendor/debian_stretch_amd64-sysroot/ +/vendor/debian_stretch_arm-sysroot/ +/vendor/debian_stretch_arm64-sysroot/ +/vendor/debian_stretch_i386-sysroot/ /vendor/gcc-4.8.3-d197-n64-loongson/ /vendor/readme-gcc483-loongson.txt /vendor/download/ diff --git a/script/install-sysroot.py b/script/install-sysroot.py index 05887a6f2dc8..463a81d9ea97 100755 --- a/script/install-sysroot.py +++ b/script/install-sysroot.py @@ -85,11 +85,12 @@ def main(args): def InstallDefaultSysrootForArch(target_arch): if target_arch not in VALID_ARCHS: raise Error('Unknown architecture: %s' % target_arch) - InstallSysroot('Jessie', target_arch) + InstallSysroot('Stretch', target_arch) def InstallSysroot(target_platform, target_arch): - # The sysroot directory should match the one specified in build/common.gypi. + # The sysroot directory should match the one specified in + # build/config/sysroot.gni. # TODO(thestig) Consider putting this elsewhere to avoid having to recreate # it on every build. linux_dir = os.path.dirname(SCRIPT_DIR) @@ -111,8 +112,6 @@ def InstallSysroot(target_platform, target_arch): if os.path.exists(stamp): with open(stamp) as s: if s.read() == url: - print '%s %s sysroot image already up to date: %s' % \ - (target_platform, target_arch, sysroot) return print 'Installing Debian %s %s root image: %s' % \ diff --git a/script/sysroots.json b/script/sysroots.json index 4aa73dad0e78..7d60a06c42b6 100644 --- a/script/sysroots.json +++ b/script/sysroots.json @@ -1,56 +1,38 @@ { - "jessie_amd64": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "8b2167b36f3cd85ebbec5c2a39a1842ef613f6a2", - "SysrootDir": "debian_jessie_amd64-sysroot", - "Tarball": "debian_jessie_amd64_sysroot.tgz" + "stretch_amd64": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "c748f6e2de1f392bed9b69f8b5a0aaa12a2bea7d", + "SysrootDir": "debian_stretch_amd64-sysroot", + "Tarball": "debian_stretch_amd64_sysroot.tar.xz" }, - "jessie_arm": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "3fa13635be0c6d8ed461715ad51cdb3809a19422", - "SysrootDir": "debian_jessie_arm-sysroot", - "Tarball": "debian_jessie_arm_sysroot.tgz" + "stretch_arm": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "72cd0dae301971c69422f7290e608c1298571bd2", + "SysrootDir": "debian_stretch_arm-sysroot", + "Tarball": "debian_stretch_arm_sysroot.tar.xz" }, - "jessie_arm64": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "bcf92ed2a033b4b2d1032df3b53eac4910c78fde", - "SysrootDir": "debian_jessie_arm64-sysroot", - "Tarball": "debian_jessie_arm64_sysroot.tgz" + "stretch_arm64": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "06b19055e17c4f99c494e17f7422f0aaa2d62af6", + "SysrootDir": "debian_stretch_arm64-sysroot", + "Tarball": "debian_stretch_arm64_sysroot.tar.xz" }, - "jessie_i386": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "4e83ed9a1b457a1ca59512c3d4823e87e950deb4", - "SysrootDir": "debian_jessie_i386-sysroot", - "Tarball": "debian_jessie_i386_sysroot.tgz" + "stretch_i386": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "de4f82ec6400fd2e2e9a455f29155e7763de26c2", + "SysrootDir": "debian_stretch_i386-sysroot", + "Tarball": "debian_stretch_i386_sysroot.tar.xz" }, - "jessie_mips": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "0f550cd150f077a6e749a629e2fda0f0a4348eae", - "SysrootDir": "debian_jessie_mips-sysroot", - "Tarball": "debian_jessie_mips_sysroot.tgz" + "stretch_mips": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "256d581b85fb752f94da0b81004d2af878465cd6", + "SysrootDir": "debian_stretch_mips-sysroot", + "Tarball": "debian_stretch_mips_sysroot.tar.xz" }, - "wheezy_amd64": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "fe372c4394ece7fd1d853a205de8c13b46e2f45a", - "SysrootDir": "debian_wheezy_amd64-sysroot", - "Tarball": "debian_wheezy_amd64_sysroot.tgz" - }, - "wheezy_arm": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "73323fae0b5597398a38f0d7e64f48309da112fa", - "SysrootDir": "debian_wheezy_arm-sysroot", - "Tarball": "debian_wheezy_arm_sysroot.tgz" - }, - "wheezy_i386": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "7e96584297a5c9916b3bed4b88abe332fc79a247", - "SysrootDir": "debian_wheezy_i386-sysroot", - "Tarball": "debian_wheezy_i386_sysroot.tgz" - }, - "wheezy_mips": { - "Revision": "d65c31e063bab0486665e087a1b4c5bb7bc7423c", - "Sha1Sum": "b2f173905a41ec9f23c329fe529508b4bdc76230", - "SysrootDir": "debian_wheezy_mips-sysroot", - "Tarball": "debian_wheezy_mips_sysroot.tgz" + "stretch_mips64el": { + "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", + "Sha1Sum": "6405f537c9ecee3a021749712fbca36ff7304bee", + "SysrootDir": "debian_stretch_mips64el-sysroot", + "Tarball": "debian_stretch_mips64el_sysroot.tar.xz" } } diff --git a/toolchain.gypi b/toolchain.gypi index 42552a4dae18..aa9ce81ee7c3 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -53,16 +53,16 @@ ['target_arch=="arm"', { # sysroot needs to be an absolute path otherwise it generates # incorrect results when passed to pkg-config - 'sysroot%': '<(source_root)/vendor/debian_jessie_arm-sysroot', + 'sysroot%': '<(source_root)/vendor/debian_stretch_arm-sysroot', }], ['target_arch=="arm64"', { - 'sysroot%': '<(source_root)/vendor/debian_jessie_arm64-sysroot', + 'sysroot%': '<(source_root)/vendor/debian_stretch_arm64-sysroot', }], ['target_arch=="ia32"', { - 'sysroot%': '<(source_root)/vendor/debian_jessie_i386-sysroot', + 'sysroot%': '<(source_root)/vendor/debian_stretch_i386-sysroot', }], ['target_arch=="x64"', { - 'sysroot%': '<(source_root)/vendor/debian_jessie_amd64-sysroot', + 'sysroot%': '<(source_root)/vendor/debian_stretch_amd64-sysroot', }], ['target_arch=="mips64el"', { 'sysroot%': '<(source_root)/vendor/debian_jessie_mips64-sysroot', From f5d207f8f0b42ae8704d7c864c63dc75c871da78 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Fri, 8 Dec 2017 11:39:51 +0300 Subject: [PATCH 44/60] Improve process launch handle sharing API. https://codereview.chromium.org/2950153002 --- atom/browser/browser_linux.cc | 5 +---- atom/browser/relauncher_linux.cc | 7 +++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/atom/browser/browser_linux.cc b/atom/browser/browser_linux.cc index 280d2defb6b9..42cdcc043d75 100644 --- a/atom/browser/browser_linux.cc +++ b/atom/browser/browser_linux.cc @@ -31,10 +31,7 @@ bool LaunchXdgUtility(const std::vector& argv, int* exit_code) { if (devnull < 0) return false; base::LaunchOptions options; - - base::FileHandleMappingVector remap; - remap.push_back(std::make_pair(devnull, STDIN_FILENO)); - options.fds_to_remap = &remap; + options.fds_to_remap.push_back(std::make_pair(devnull, STDIN_FILENO)); base::Process process = base::LaunchProcess(argv, options); close(devnull); diff --git a/atom/browser/relauncher_linux.cc b/atom/browser/relauncher_linux.cc index 6d60b072f6d9..b5e84bce12d6 100644 --- a/atom/browser/relauncher_linux.cc +++ b/atom/browser/relauncher_linux.cc @@ -60,14 +60,13 @@ int LaunchProgram(const StringVector& relauncher_args, // Redirect the stdout of child process to /dev/null, otherwise after // relaunch the child process will raise exception when writing to stdout. base::ScopedFD devnull(HANDLE_EINTR(open("/dev/null", O_WRONLY))); - base::FileHandleMappingVector no_stdout; - no_stdout.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); - no_stdout.push_back(std::make_pair(devnull.get(), STDOUT_FILENO)); base::LaunchOptions options; options.allow_new_privs = true; options.new_process_group = true; // detach - options.fds_to_remap = &no_stdout; + options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); + options.fds_to_remap.push_back(std::make_pair(devnull.get(), STDOUT_FILENO)); + base::Process process = base::LaunchProcess(argv, options); return process.IsValid() ? 0 : 1; } From e6bad6e183a7edcb3468d03e932cb0ca3b63090a Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 12 Dec 2017 18:42:45 +0900 Subject: [PATCH 45/60] Update sysroot images to fix linking error --- script/sysroots.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/script/sysroots.json b/script/sysroots.json index 7d60a06c42b6..d916f24a099f 100644 --- a/script/sysroots.json +++ b/script/sysroots.json @@ -1,38 +1,38 @@ { "stretch_amd64": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "c748f6e2de1f392bed9b69f8b5a0aaa12a2bea7d", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "69457fddca3500e2dde124f77f8382b0a18d765e", "SysrootDir": "debian_stretch_amd64-sysroot", - "Tarball": "debian_stretch_amd64_sysroot.tar.xz" + "Tarball": "debian_stretch_amd64_sysroot.tgz" }, "stretch_arm": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "72cd0dae301971c69422f7290e608c1298571bd2", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "3e880f69177992ce02b05deeac619f7591b30287", "SysrootDir": "debian_stretch_arm-sysroot", - "Tarball": "debian_stretch_arm_sysroot.tar.xz" + "Tarball": "debian_stretch_arm_sysroot.tgz" }, "stretch_arm64": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "06b19055e17c4f99c494e17f7422f0aaa2d62af6", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "8fd58c7d4b38fa3c6785573c6310cf6ca6c88312", "SysrootDir": "debian_stretch_arm64-sysroot", - "Tarball": "debian_stretch_arm64_sysroot.tar.xz" + "Tarball": "debian_stretch_arm64_sysroot.tgz" }, "stretch_i386": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "de4f82ec6400fd2e2e9a455f29155e7763de26c2", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "1bd14db5eb0466064659126d398b38220013fb38", "SysrootDir": "debian_stretch_i386-sysroot", - "Tarball": "debian_stretch_i386_sysroot.tar.xz" + "Tarball": "debian_stretch_i386_sysroot.tgz" }, "stretch_mips": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "256d581b85fb752f94da0b81004d2af878465cd6", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "285751660ffab14e6d052c8ddb5c90752a51704d", "SysrootDir": "debian_stretch_mips-sysroot", - "Tarball": "debian_stretch_mips_sysroot.tar.xz" + "Tarball": "debian_stretch_mips_sysroot.tgz" }, "stretch_mips64el": { - "Revision": "961ad7bca2518fd9495e9d9676a8228ec8c54335", - "Sha1Sum": "6405f537c9ecee3a021749712fbca36ff7304bee", + "Revision": "02772eaba5440a79c6bd2d9cb7e42fa836950366", + "Sha1Sum": "23f51f29bc35a550092dde41dc823780fdb50f9e", "SysrootDir": "debian_stretch_mips64el-sysroot", - "Tarball": "debian_stretch_mips64el_sysroot.tar.xz" + "Tarball": "debian_stretch_mips64el_sysroot.tgz" } } From 7cad5d0cd25777770e1aa5899df320dc98e2c9c7 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Sun, 24 Dec 2017 10:00:07 +0530 Subject: [PATCH 46/60] update libcc for loading service worker under file scheme --- vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index 5d784eb6d333..da6ebb876210 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit 5d784eb6d3335c5f24ab6d4e6bc8599dcc2ded6f +Subproject commit da6ebb876210c2749cea44e176fbb115c2c1caea From 12b37c73860420e08275ee5dd496d200be2e8a84 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 27 Dec 2017 21:59:30 +0900 Subject: [PATCH 47/60] Update node: Fix crash when doing crypto operation --- vendor/node | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/node b/vendor/node index b29d25f32501..618ed0431bbd 160000 --- a/vendor/node +++ b/vendor/node @@ -1 +1 @@ -Subproject commit b29d25f325015a15336b3a3f1fea0c1e0220c71a +Subproject commit 618ed0431bbd1a96fc88d2b6b36ad3086d418ffd From 31eb5e26e3f1c2f5a08fc9a4101d54df459c9902 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Tue, 2 Jan 2018 16:50:07 +0300 Subject: [PATCH 48/60] Update libcc reference --- vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index da6ebb876210..86a86703137e 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit da6ebb876210c2749cea44e176fbb115c2c1caea +Subproject commit 86a86703137e54b0299bd76421093fdfdb94c531 From 0e5b6f93000e4718c9e35332ddbd0f6b76cdd585 Mon Sep 17 00:00:00 2001 From: shelley vohr Date: Sat, 6 Jan 2018 07:58:24 -0800 Subject: [PATCH 49/60] Upgrade to node v9.3.0 (#11507) * update submodule refs for node v9.3.0 * Define "llvm_version" for Node.js build * NODE_MODULE_CONTEXT_AWARE_BUILTIN -> NODE_BUILTIN_MODULE_CONTEXT_AWARE * update NodePlatform to MultiIsolatePlatform * fix linting error * update node ref * REVIEW: Explicitly register builtin modules https://github.com/nodejs/node/pull/16565 * update libcc ref * switch libcc to c62 * REVIEW: Address node api changes - Always start the inspector agent for https://github.com/nodejs/node/pull/17085 - Set the tracing controller for node https://github.com/nodejs/node/pull/15538 - Isolate data creation now requires plaform https://github.com/nodejs/node/pull/16700 --- atom/app/node_main.cc | 12 ++- atom/browser/api/atom_api_app.cc | 2 +- atom/browser/api/atom_api_auto_updater.cc | 2 +- atom/browser/api/atom_api_browser_view.cc | 2 +- atom/browser/api/atom_api_browser_window.cc | 2 +- atom/browser/api/atom_api_content_tracing.cc | 2 +- atom/browser/api/atom_api_debugger.cc | 2 +- atom/browser/api/atom_api_desktop_capturer.cc | 2 +- atom/browser/api/atom_api_dialog.cc | 2 +- atom/browser/api/atom_api_download_item.cc | 2 +- atom/browser/api/atom_api_global_shortcut.cc | 2 +- atom/browser/api/atom_api_menu.cc | 2 +- atom/browser/api/atom_api_net.cc | 2 +- atom/browser/api/atom_api_notification.cc | 2 +- atom/browser/api/atom_api_power_monitor.cc | 2 +- .../api/atom_api_power_save_blocker.cc | 2 +- atom/browser/api/atom_api_protocol.cc | 2 +- .../atom_api_render_process_preferences.cc | 2 +- atom/browser/api/atom_api_screen.cc | 2 +- atom/browser/api/atom_api_session.cc | 2 +- .../api/atom_api_system_preferences.cc | 2 +- atom/browser/api/atom_api_tray.cc | 2 +- atom/browser/api/atom_api_web_contents.cc | 2 +- atom/browser/api/atom_api_web_view_manager.cc | 2 +- atom/browser/atom_browser_main_parts.cc | 4 +- atom/browser/javascript_environment.cc | 7 +- atom/browser/javascript_environment.h | 6 +- atom/browser/node_debugger.cc | 20 ++-- atom/browser/node_debugger.h | 4 +- atom/common/api/atom_api_asar.cc | 2 +- atom/common/api/atom_api_clipboard.cc | 2 +- atom/common/api/atom_api_crash_reporter.cc | 2 +- atom/common/api/atom_api_native_image.cc | 2 +- atom/common/api/atom_api_shell.cc | 2 +- atom/common/api/atom_api_v8_util.cc | 2 +- atom/common/node_bindings.cc | 99 +++++++++++-------- atom/common/node_bindings.h | 6 +- atom/renderer/api/atom_api_renderer_ipc.cc | 2 +- atom/renderer/api/atom_api_web_frame.cc | 2 +- atom/renderer/atom_renderer_client.cc | 6 ++ .../atom_sandboxed_renderer_client.cc | 3 + common.gypi | 2 + vendor/libchromiumcontent | 2 +- vendor/node | 2 +- 44 files changed, 137 insertions(+), 98 deletions(-) diff --git a/atom/app/node_main.cc b/atom/app/node_main.cc index c0175d170d3c..8e0089ad95c0 100644 --- a/atom/app/node_main.cc +++ b/atom/app/node_main.cc @@ -12,6 +12,7 @@ #include "atom/common/api/atom_bindings.h" #include "atom/common/crash_reporter/crash_reporter.h" #include "atom/common/native_mate_converters/string16_converter.h" +#include "atom/common/node_bindings.h" #include "base/command_line.h" #include "base/feature_list.h" #include "base/task_scheduler/task_scheduler.h" @@ -50,14 +51,16 @@ int NodeMain(int argc, char *argv[]) { // Initialize gin::IsolateHolder. JavascriptEnvironment gin_env; + // Explicitly register electron's builtin modules. + NodeBindings::RegisterBuiltinModules(); + int exec_argc; const char** exec_argv; node::Init(&argc, const_cast(argv), &exec_argc, &exec_argv); - node::IsolateData isolate_data(gin_env.isolate(), loop); node::Environment* env = node::CreateEnvironment( - &isolate_data, gin_env.context(), argc, argv, - exec_argc, exec_argv); + node::CreateIsolateData(gin_env.isolate(), loop, gin_env.platform()), + gin_env.context(), argc, argv, exec_argc, exec_argv); // Enable support for v8 inspector. NodeDebugger node_debugger(env); @@ -79,6 +82,7 @@ int NodeMain(int argc, char *argv[]) { bool more; do { more = uv_run(env->event_loop(), UV_RUN_ONCE); + gin_env.platform()->DrainBackgroundTasks(env->isolate()); if (more == false) { node::EmitBeforeExit(env); @@ -92,6 +96,8 @@ int NodeMain(int argc, char *argv[]) { exit_code = node::EmitExit(env); node::RunAtExit(env); + gin_env.platform()->DrainBackgroundTasks(env->isolate()); + gin_env.platform()->CancelPendingDelayedTasks(env->isolate()); node::FreeEnvironment(env); } diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 0a912cd77c1a..771121135690 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -1342,4 +1342,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_app, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_app, Initialize) diff --git a/atom/browser/api/atom_api_auto_updater.cc b/atom/browser/api/atom_api_auto_updater.cc index 706931fe61eb..88a58f6bca6b 100644 --- a/atom/browser/api/atom_api_auto_updater.cc +++ b/atom/browser/api/atom_api_auto_updater.cc @@ -150,4 +150,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_auto_updater, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_auto_updater, Initialize) diff --git a/atom/browser/api/atom_api_browser_view.cc b/atom/browser/api/atom_api_browser_view.cc index 4bd88a5a43c0..c64054cdac2e 100644 --- a/atom/browser/api/atom_api_browser_view.cc +++ b/atom/browser/api/atom_api_browser_view.cc @@ -162,4 +162,4 @@ void Initialize(v8::Local exports, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_browser_view, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_browser_view, Initialize) diff --git a/atom/browser/api/atom_api_browser_window.cc b/atom/browser/api/atom_api_browser_window.cc index 08e953539a98..6a6e4f02c443 100644 --- a/atom/browser/api/atom_api_browser_window.cc +++ b/atom/browser/api/atom_api_browser_window.cc @@ -1332,4 +1332,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_window, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_window, Initialize) diff --git a/atom/browser/api/atom_api_content_tracing.cc b/atom/browser/api/atom_api_content_tracing.cc index 375196b28318..50b0c9799b8b 100644 --- a/atom/browser/api/atom_api_content_tracing.cc +++ b/atom/browser/api/atom_api_content_tracing.cc @@ -73,4 +73,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_content_tracing, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_content_tracing, Initialize) diff --git a/atom/browser/api/atom_api_debugger.cc b/atom/browser/api/atom_api_debugger.cc index da8b212be024..58c028e3d419 100644 --- a/atom/browser/api/atom_api_debugger.cc +++ b/atom/browser/api/atom_api_debugger.cc @@ -178,4 +178,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_debugger, Initialize); +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_debugger, Initialize); diff --git a/atom/browser/api/atom_api_desktop_capturer.cc b/atom/browser/api/atom_api_desktop_capturer.cc index b5daaaee05f9..d27838ad22d6 100644 --- a/atom/browser/api/atom_api_desktop_capturer.cc +++ b/atom/browser/api/atom_api_desktop_capturer.cc @@ -114,4 +114,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_desktop_capturer, Initialize); +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_desktop_capturer, Initialize); diff --git a/atom/browser/api/atom_api_dialog.cc b/atom/browser/api/atom_api_dialog.cc index f04af29d8223..ff02c5fa009f 100644 --- a/atom/browser/api/atom_api_dialog.cc +++ b/atom/browser/api/atom_api_dialog.cc @@ -140,4 +140,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_dialog, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_dialog, Initialize) diff --git a/atom/browser/api/atom_api_download_item.cc b/atom/browser/api/atom_api_download_item.cc index 3e5932cad0ff..491cc18538b2 100644 --- a/atom/browser/api/atom_api_download_item.cc +++ b/atom/browser/api/atom_api_download_item.cc @@ -236,4 +236,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_download_item, Initialize); +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_download_item, Initialize); diff --git a/atom/browser/api/atom_api_global_shortcut.cc b/atom/browser/api/atom_api_global_shortcut.cc index 039d708a7c1c..a33ba7e45e56 100644 --- a/atom/browser/api/atom_api_global_shortcut.cc +++ b/atom/browser/api/atom_api_global_shortcut.cc @@ -98,4 +98,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_global_shortcut, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_global_shortcut, Initialize) diff --git a/atom/browser/api/atom_api_menu.cc b/atom/browser/api/atom_api_menu.cc index b27ee2ba7898..14a38c870191 100644 --- a/atom/browser/api/atom_api_menu.cc +++ b/atom/browser/api/atom_api_menu.cc @@ -228,4 +228,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_menu, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_menu, Initialize) diff --git a/atom/browser/api/atom_api_net.cc b/atom/browser/api/atom_api_net.cc index 24008ed7aeed..77393c92565b 100644 --- a/atom/browser/api/atom_api_net.cc +++ b/atom/browser/api/atom_api_net.cc @@ -58,4 +58,4 @@ void Initialize(v8::Local exports, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_net, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_net, Initialize) diff --git a/atom/browser/api/atom_api_notification.cc b/atom/browser/api/atom_api_notification.cc index daa46b96cbfd..3eb99be43257 100644 --- a/atom/browser/api/atom_api_notification.cc +++ b/atom/browser/api/atom_api_notification.cc @@ -270,4 +270,4 @@ void Initialize(v8::Local exports, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_notification, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_notification, Initialize) diff --git a/atom/browser/api/atom_api_power_monitor.cc b/atom/browser/api/atom_api_power_monitor.cc index 90f32393f168..fce749790b52 100644 --- a/atom/browser/api/atom_api_power_monitor.cc +++ b/atom/browser/api/atom_api_power_monitor.cc @@ -103,4 +103,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_power_monitor, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_power_monitor, Initialize) diff --git a/atom/browser/api/atom_api_power_save_blocker.cc b/atom/browser/api/atom_api_power_save_blocker.cc index f430e28c3bac..37aef91af9c6 100644 --- a/atom/browser/api/atom_api_power_save_blocker.cc +++ b/atom/browser/api/atom_api_power_save_blocker.cc @@ -133,4 +133,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_power_save_blocker, Initialize); +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_power_save_blocker, Initialize); diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index 6ea1d8b75775..b904c88bfcc6 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -253,4 +253,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_protocol, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_protocol, Initialize) diff --git a/atom/browser/api/atom_api_render_process_preferences.cc b/atom/browser/api/atom_api_render_process_preferences.cc index 5786d694cfd5..d57a8e78a416 100644 --- a/atom/browser/api/atom_api_render_process_preferences.cc +++ b/atom/browser/api/atom_api_render_process_preferences.cc @@ -86,5 +86,5 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_render_process_preferences, +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_render_process_preferences, Initialize) diff --git a/atom/browser/api/atom_api_screen.cc b/atom/browser/api/atom_api_screen.cc index a87d6d3598f8..2e94e05da35f 100644 --- a/atom/browser/api/atom_api_screen.cc +++ b/atom/browser/api/atom_api_screen.cc @@ -144,4 +144,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_screen, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_screen, Initialize) diff --git a/atom/browser/api/atom_api_session.cc b/atom/browser/api/atom_api_session.cc index 6e5c4b9cbe77..c9fc0837f5df 100644 --- a/atom/browser/api/atom_api_session.cc +++ b/atom/browser/api/atom_api_session.cc @@ -839,4 +839,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_session, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_session, Initialize) diff --git a/atom/browser/api/atom_api_system_preferences.cc b/atom/browser/api/atom_api_system_preferences.cc index 82c3b2e1017f..2b18d0f7974d 100644 --- a/atom/browser/api/atom_api_system_preferences.cc +++ b/atom/browser/api/atom_api_system_preferences.cc @@ -96,4 +96,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_system_preferences, Initialize); +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_system_preferences, Initialize); diff --git a/atom/browser/api/atom_api_tray.cc b/atom/browser/api/atom_api_tray.cc index 27d186e0d038..6a032e202793 100644 --- a/atom/browser/api/atom_api_tray.cc +++ b/atom/browser/api/atom_api_tray.cc @@ -250,4 +250,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_tray, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_tray, Initialize) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index cca172f3cecc..6f5507c55398 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -2034,4 +2034,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_web_contents, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_web_contents, Initialize) diff --git a/atom/browser/api/atom_api_web_view_manager.cc b/atom/browser/api/atom_api_web_view_manager.cc index d145fb15fb6e..2a0cbd8a3ebf 100644 --- a/atom/browser/api/atom_api_web_view_manager.cc +++ b/atom/browser/api/atom_api_web_view_manager.cc @@ -52,4 +52,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_web_view_manager, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_web_view_manager, Initialize) diff --git a/atom/browser/atom_browser_main_parts.cc b/atom/browser/atom_browser_main_parts.cc index 86d50d3c78bd..718d7d4f82ba 100644 --- a/atom/browser/atom_browser_main_parts.cc +++ b/atom/browser/atom_browser_main_parts.cc @@ -135,8 +135,8 @@ void AtomBrowserMainParts::PostEarlyInitialization() { node_bindings_->Initialize(); // Create the global environment. - node::Environment* env = - node_bindings_->CreateEnvironment(js_env_->context()); + node::Environment* env = node_bindings_->CreateEnvironment( + js_env_->context(), js_env_->platform()); node_env_.reset(new NodeEnvironment(env)); // Enable support for v8 inspector diff --git a/atom/browser/javascript_environment.cc b/atom/browser/javascript_environment.cc index a1e824cad315..631beb4ff61a 100644 --- a/atom/browser/javascript_environment.cc +++ b/atom/browser/javascript_environment.cc @@ -15,6 +15,7 @@ #include "gin/v8_initializer.h" #include "atom/common/node_includes.h" +#include "vendor/node/src/tracing/trace_event.h" namespace atom { @@ -48,10 +49,10 @@ bool JavascriptEnvironment::Initialize() { // The V8Platform of gin relies on Chromium's task schedule, which has not // been started at this point, so we have to rely on Node's V8Platform. platform_ = node::CreatePlatform( - base::RecommendedMaxNumberOfThreadsInPool(3, 8, 0.1, 0), - uv_default_loop(), nullptr); + base::RecommendedMaxNumberOfThreadsInPool(3, 8, 0.1, 0), nullptr); v8::V8::InitializePlatform(platform_); - + node::tracing::TraceEventHelper::SetTracingController( + new v8::TracingController()); gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode, gin::IsolateHolder::kStableV8Extras, gin::ArrayBufferAllocator::SharedInstance(), diff --git a/atom/browser/javascript_environment.h b/atom/browser/javascript_environment.h index 0754df212c87..69872e454aa4 100644 --- a/atom/browser/javascript_environment.h +++ b/atom/browser/javascript_environment.h @@ -10,7 +10,7 @@ namespace node { class Environment; -class NodePlatform; +class MultiIsolatePlatform; } namespace atom { @@ -23,7 +23,7 @@ class JavascriptEnvironment { void OnMessageLoopCreated(); void OnMessageLoopDestroying(); - node::NodePlatform* platform() const { return platform_; } + node::MultiIsolatePlatform* platform() const { return platform_; } v8::Isolate* isolate() const { return isolate_; } v8::Local context() const { return v8::Local::New(isolate_, context_); @@ -33,7 +33,7 @@ class JavascriptEnvironment { bool Initialize(); // Leaked on exit. - node::NodePlatform* platform_; + node::MultiIsolatePlatform* platform_; bool initialized_; gin::IsolateHolder isolate_holder_; diff --git a/atom/browser/node_debugger.cc b/atom/browser/node_debugger.cc index 27d2ce799916..191531d5bf3b 100644 --- a/atom/browser/node_debugger.cc +++ b/atom/browser/node_debugger.cc @@ -20,7 +20,7 @@ NodeDebugger::NodeDebugger(node::Environment* env) NodeDebugger::~NodeDebugger() { } -void NodeDebugger::Start(node::NodePlatform* platform) { +void NodeDebugger::Start(node::MultiIsolatePlatform* platform) { auto inspector = env_->inspector_agent(); if (inspector == nullptr) return; @@ -34,16 +34,16 @@ void NodeDebugger::Start(node::NodePlatform* platform) { #endif } - if (options.inspector_enabled()) { - // Set process._debugWaitConnect if --inspect-brk was specified to stop - // the debugger on the first line - if (options.wait_for_connect()) { - mate::Dictionary process(env_->isolate(), env_->process_object()); - process.Set("_breakFirstLine", true); - } - - inspector->Start(platform, nullptr, options); + // Set process._debugWaitConnect if --inspect-brk was specified to stop + // the debugger on the first line + if (options.wait_for_connect()) { + mate::Dictionary process(env_->isolate(), env_->process_object()); + process.Set("_breakFirstLine", true); } + + inspector->Start(static_cast(platform), nullptr, + options); + DCHECK(env_->inspector_agent()->IsStarted()); } } // namespace atom diff --git a/atom/browser/node_debugger.h b/atom/browser/node_debugger.h index cb176c777648..f62eeadac55b 100644 --- a/atom/browser/node_debugger.h +++ b/atom/browser/node_debugger.h @@ -9,7 +9,7 @@ namespace node { class Environment; -class NodePlatform; +class MultiIsolatePlatform; } namespace atom { @@ -20,7 +20,7 @@ class NodeDebugger { explicit NodeDebugger(node::Environment* env); ~NodeDebugger(); - void Start(node::NodePlatform* platform); + void Start(node::MultiIsolatePlatform* platform); private: node::Environment* env_; diff --git a/atom/common/api/atom_api_asar.cc b/atom/common/api/atom_api_asar.cc index ef27850370ff..c9c355e42350 100644 --- a/atom/common/api/atom_api_asar.cc +++ b/atom/common/api/atom_api_asar.cc @@ -163,4 +163,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_asar, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_asar, Initialize) diff --git a/atom/common/api/atom_api_clipboard.cc b/atom/common/api/atom_api_clipboard.cc index 66b88374e4f9..47c85650a84e 100644 --- a/atom/common/api/atom_api_clipboard.cc +++ b/atom/common/api/atom_api_clipboard.cc @@ -255,4 +255,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_clipboard, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_clipboard, Initialize) diff --git a/atom/common/api/atom_api_crash_reporter.cc b/atom/common/api/atom_api_crash_reporter.cc index 9042f0917942..78ef525f9118 100644 --- a/atom/common/api/atom_api_crash_reporter.cc +++ b/atom/common/api/atom_api_crash_reporter.cc @@ -61,4 +61,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_crash_reporter, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_crash_reporter, Initialize) diff --git a/atom/common/api/atom_api_native_image.cc b/atom/common/api/atom_api_native_image.cc index a8f865c63ea6..ed736dabd00f 100644 --- a/atom/common/api/atom_api_native_image.cc +++ b/atom/common/api/atom_api_native_image.cc @@ -636,4 +636,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_native_image, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_native_image, Initialize) diff --git a/atom/common/api/atom_api_shell.cc b/atom/common/api/atom_api_shell.cc index 39e6aea7baf8..231d2ea9cbef 100644 --- a/atom/common/api/atom_api_shell.cc +++ b/atom/common/api/atom_api_shell.cc @@ -151,4 +151,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_shell, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_shell, Initialize) diff --git a/atom/common/api/atom_api_v8_util.cc b/atom/common/api/atom_api_v8_util.cc index a01ca8f84d91..f7edfd28cb3f 100644 --- a/atom/common/api/atom_api_v8_util.cc +++ b/atom/common/api/atom_api_v8_util.cc @@ -123,4 +123,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_v8_util, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_common_v8_util, Initialize) diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index 90e76e7870fd..a69f5bcf7e3e 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -27,45 +27,48 @@ #include "atom/common/node_includes.h" -// Force all builtin modules to be referenced so they can actually run their -// DSO constructors, see http://git.io/DRIqCg. -#define REFERENCE_MODULE(name) \ - extern "C" void _register_ ## name(void); \ - void (*fp_register_ ## name)(void) = _register_ ## name -// Electron's builtin modules. -REFERENCE_MODULE(atom_browser_app); -REFERENCE_MODULE(atom_browser_auto_updater); -REFERENCE_MODULE(atom_browser_browser_view); -REFERENCE_MODULE(atom_browser_content_tracing); -REFERENCE_MODULE(atom_browser_debugger); -REFERENCE_MODULE(atom_browser_desktop_capturer); -REFERENCE_MODULE(atom_browser_dialog); -REFERENCE_MODULE(atom_browser_download_item); -REFERENCE_MODULE(atom_browser_global_shortcut); -REFERENCE_MODULE(atom_browser_in_app_purchase); -REFERENCE_MODULE(atom_browser_menu); -REFERENCE_MODULE(atom_browser_net); -REFERENCE_MODULE(atom_browser_power_monitor); -REFERENCE_MODULE(atom_browser_power_save_blocker); -REFERENCE_MODULE(atom_browser_protocol); -REFERENCE_MODULE(atom_browser_render_process_preferences); -REFERENCE_MODULE(atom_browser_session); -REFERENCE_MODULE(atom_browser_system_preferences); -REFERENCE_MODULE(atom_browser_tray); -REFERENCE_MODULE(atom_browser_web_contents); -REFERENCE_MODULE(atom_browser_web_view_manager); -REFERENCE_MODULE(atom_browser_window); -REFERENCE_MODULE(atom_common_asar); -REFERENCE_MODULE(atom_common_clipboard); -REFERENCE_MODULE(atom_common_crash_reporter); -REFERENCE_MODULE(atom_common_native_image); -REFERENCE_MODULE(atom_common_notification); -REFERENCE_MODULE(atom_common_screen); -REFERENCE_MODULE(atom_common_shell); -REFERENCE_MODULE(atom_common_v8_util); -REFERENCE_MODULE(atom_renderer_ipc); -REFERENCE_MODULE(atom_renderer_web_frame); -#undef REFERENCE_MODULE +#define ELECTRON_BUILTIN_MODULES(V) \ + V(atom_browser_app) \ + V(atom_browser_auto_updater) \ + V(atom_browser_browser_view) \ + V(atom_browser_content_tracing) \ + V(atom_browser_debugger) \ + V(atom_browser_desktop_capturer) \ + V(atom_browser_dialog) \ + V(atom_browser_download_item) \ + V(atom_browser_global_shortcut) \ + V(atom_browser_in_app_purchase) \ + V(atom_browser_menu) \ + V(atom_browser_net) \ + V(atom_browser_power_monitor) \ + V(atom_browser_power_save_blocker) \ + V(atom_browser_protocol) \ + V(atom_browser_render_process_preferences) \ + V(atom_browser_session) \ + V(atom_browser_system_preferences) \ + V(atom_browser_tray) \ + V(atom_browser_web_contents) \ + V(atom_browser_web_view_manager) \ + V(atom_browser_window) \ + V(atom_common_asar) \ + V(atom_common_clipboard) \ + V(atom_common_crash_reporter) \ + V(atom_common_native_image) \ + V(atom_common_notification) \ + V(atom_common_screen) \ + V(atom_common_shell) \ + V(atom_common_v8_util) \ + V(atom_renderer_ipc) \ + V(atom_renderer_web_frame) + +// This is used to load built-in modules. Instead of using +// __attribute__((constructor)), we call the _register_ +// function for each built-in modules explicitly. This is only +// forward declaration. The definitions are in each module's +// implementation when calling the NODE_BUILTIN_MODULE_CONTEXT_AWARE. +#define V(modname) void _register_##modname(); +ELECTRON_BUILTIN_MODULES(V) +#undef V namespace { @@ -155,6 +158,12 @@ NodeBindings::~NodeBindings() { stop_and_close_uv_loop(uv_loop_); } +void NodeBindings::RegisterBuiltinModules() { +#define V(modname) _register_##modname(); + ELECTRON_BUILTIN_MODULES(V) +#undef V +} + void NodeBindings::Initialize() { // Open node's error reporting system for browser process. node::g_standalone_mode = browser_env_ == BROWSER; @@ -166,6 +175,9 @@ void NodeBindings::Initialize() { AtomCommandLine::InitializeFromCommandLine(); #endif + // Explicitly register electron's builtin modules. + RegisterBuiltinModules(); + // Init node. // (we assume node::Init would not modify the parameters under embedded mode). node::Init(nullptr, nullptr, nullptr, nullptr); @@ -180,6 +192,7 @@ void NodeBindings::Initialize() { } node::Environment* NodeBindings::CreateEnvironment( +<<<<<<< c1acc6cb5c9591122cecfcf3910c73d62d28eaf7 v8::Handle context) { #if defined(OS_WIN) auto& atom_args = AtomCommandLine::argv(); @@ -187,6 +200,10 @@ node::Environment* NodeBindings::CreateEnvironment( std::transform(atom_args.cbegin(), atom_args.cend(), args.begin(), [](auto& a) { return base::WideToUTF8(a); }); #else +======= + v8::Handle context, + node::MultiIsolatePlatform* platform) { +>>>>>>> Upgrade to node v9.3.0 (#11507) auto args = AtomCommandLine::argv(); #endif @@ -212,8 +229,8 @@ node::Environment* NodeBindings::CreateEnvironment( std::unique_ptr c_argv = StringVectorToArgArray(args); node::Environment* env = node::CreateEnvironment( - new node::IsolateData(context->GetIsolate(), uv_loop_), context, - args.size(), c_argv.get(), 0, nullptr); + node::CreateIsolateData(context->GetIsolate(), uv_loop_, platform), + context, args.size(), c_argv.get(), 0, nullptr); if (browser_env_ == BROWSER) { // SetAutorunMicrotasks is no longer called in node::CreateEnvironment diff --git a/atom/common/node_bindings.h b/atom/common/node_bindings.h index 4be779e68a01..8f0fdbe57611 100644 --- a/atom/common/node_bindings.h +++ b/atom/common/node_bindings.h @@ -17,6 +17,7 @@ class MessageLoop; namespace node { class Environment; +class MultiIsolatePlatform; } namespace atom { @@ -30,6 +31,7 @@ class NodeBindings { }; static NodeBindings* Create(BrowserEnvironment browser_env); + static void RegisterBuiltinModules(); virtual ~NodeBindings(); @@ -37,7 +39,9 @@ class NodeBindings { void Initialize(); // Create the environment and load node.js. - node::Environment* CreateEnvironment(v8::Handle context); + node::Environment* CreateEnvironment( + v8::Handle context, + node::MultiIsolatePlatform* platform = nullptr); // Load node.js in the environment. void LoadEnvironment(node::Environment* env); diff --git a/atom/renderer/api/atom_api_renderer_ipc.cc b/atom/renderer/api/atom_api_renderer_ipc.cc index 7bee1411ba1c..2bb35992ff9a 100644 --- a/atom/renderer/api/atom_api_renderer_ipc.cc +++ b/atom/renderer/api/atom_api_renderer_ipc.cc @@ -76,4 +76,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace atom -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_renderer_ipc, atom::api::Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_renderer_ipc, atom::api::Initialize) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index 6ebd63d27a11..444f36444c4b 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -429,4 +429,4 @@ void Initialize(v8::Local exports, v8::Local unused, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_renderer_web_frame, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_renderer_web_frame, Initialize) diff --git a/atom/renderer/atom_renderer_client.cc b/atom/renderer/atom_renderer_client.cc index 82ba9d024350..937e422a0d21 100644 --- a/atom/renderer/atom_renderer_client.cc +++ b/atom/renderer/atom_renderer_client.cc @@ -25,6 +25,7 @@ #include "atom/common/node_includes.h" #include "atom_natives.h" // NOLINT: This file is generated with js2c +#include "vendor/node/src/tracing/trace_event.h" namespace atom { @@ -95,6 +96,11 @@ void AtomRendererClient::DidCreateScriptContext( node_bindings_->PrepareMessageLoop(); } + // Setup node tracing controller. + if (!node::tracing::TraceEventHelper::GetTracingController()) + node::tracing::TraceEventHelper::SetTracingController( + new v8::TracingController()); + // Setup node environment for each window. node::Environment* env = node_bindings_->CreateEnvironment(context); diff --git a/atom/renderer/atom_sandboxed_renderer_client.cc b/atom/renderer/atom_sandboxed_renderer_client.cc index 07d20bda8b00..33f9c6940b6a 100644 --- a/atom/renderer/atom_sandboxed_renderer_client.cc +++ b/atom/renderer/atom_sandboxed_renderer_client.cc @@ -11,6 +11,7 @@ #include "atom/common/native_mate_converters/string16_converter.h" #include "atom/common/native_mate_converters/v8_value_converter.h" #include "atom/common/native_mate_converters/value_converter.h" +#include "atom/common/node_bindings.h" #include "atom/common/options_switches.h" #include "atom/renderer/api/atom_api_renderer_ipc.h" #include "atom/renderer/atom_render_view_observer.h" @@ -136,6 +137,8 @@ class AtomSandboxedRenderViewObserver : public AtomRenderViewObserver { AtomSandboxedRendererClient::AtomSandboxedRendererClient() { + // Explicitly register electron's builtin modules. + NodeBindings::RegisterBuiltinModules(); } AtomSandboxedRendererClient::~AtomSandboxedRendererClient() { diff --git a/common.gypi b/common.gypi index 233e21047718..2209914148e8 100644 --- a/common.gypi +++ b/common.gypi @@ -13,6 +13,8 @@ 'component%': 'static_library', 'debug_http2': 'false', 'debug_nghttp2': 'false', + # XXX(alexeykuzmin): Must match the clang version we use. See `clang -v`. + 'llvm_version': '6.0', 'python': 'python', 'openssl_fips': '', 'openssl_no_asm': 1, diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index 86a86703137e..f8ff573e503d 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit 86a86703137e54b0299bd76421093fdfdb94c531 +Subproject commit f8ff573e503dea08f8ef05a2773bf3b0aa8dfdb1 diff --git a/vendor/node b/vendor/node index 618ed0431bbd..7fe5e2f60f6f 160000 --- a/vendor/node +++ b/vendor/node @@ -1 +1 @@ -Subproject commit 618ed0431bbd1a96fc88d2b6b36ad3086d418ffd +Subproject commit 7fe5e2f60f6f40363ec0d77fd17b241208663534 From 653ceb98604eae343ab1c7bd1eba1896c72340de Mon Sep 17 00:00:00 2001 From: shelley vohr Date: Tue, 23 Jan 2018 23:06:41 -0500 Subject: [PATCH 50/60] update update submodule ref for updated node 9.3.0 (#11708) --- vendor/node | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/node b/vendor/node index 7fe5e2f60f6f..3895d8f1ca32 160000 --- a/vendor/node +++ b/vendor/node @@ -1 +1 @@ -Subproject commit 7fe5e2f60f6f40363ec0d77fd17b241208663534 +Subproject commit 3895d8f1ca32edce4c9e04b28948ddbd05c21269 From b7b40d9c3ada4c0d37b9fdbb2b7b50064b875981 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 30 Jan 2018 10:26:08 +0900 Subject: [PATCH 51/60] Fix linking error with atomic --- brightray/brightray.gyp | 1 + 1 file changed, 1 insertion(+) diff --git a/brightray/brightray.gyp b/brightray/brightray.gyp index 0d1a6d82d3e5..ebd043845f4f 100644 --- a/brightray/brightray.gyp +++ b/brightray/brightray.gyp @@ -72,6 +72,7 @@ ], 'libraries': [ '-lpthread', + '-latomic', ' Date: Tue, 30 Jan 2018 15:28:32 +0900 Subject: [PATCH 52/60] Link with libcc's libc++ on Linux --- common.gypi | 21 ++++++++++++++++++++- toolchain.gypi | 18 +++++++++++++----- vendor/libchromiumcontent | 2 +- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/common.gypi b/common.gypi index 2209914148e8..76eb017387a9 100644 --- a/common.gypi +++ b/common.gypi @@ -182,7 +182,10 @@ '-Wl,--no-whole-archive', ], }, { - 'libraries': [ '<@(libchromiumcontent_v8_libraries)' ], + 'libraries': [ + '<@(libchromiumcontent_v8_libraries)', + '<(libchromiumcontent_dir)/libc++.so', + ], }], ], }], @@ -243,6 +246,22 @@ }], # OS=="win" ], }], + ['OS=="linux" and _target_name in ["dump_syms"]', { + 'conditions': [ + ['libchromiumcontent_component==0', { + 'libraries': [ + '<(libchromiumcontent_dir)/libc++.a', + ], + }, { + 'libraries': [ + '<(libchromiumcontent_dir)/libc++.so', + ], + 'ldflags': [ + '-Wl,-rpath=\$$ORIGIN', + ], + }], + ], + }] ], 'msvs_cygwin_shell': 0, # Strangely setting it to 1 would make building under cygwin fail. 'msvs_disabled_warnings': [ diff --git a/toolchain.gypi b/toolchain.gypi index aa9ce81ee7c3..5e291127a2f5 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -110,9 +110,6 @@ ['CXX.host', '$(CXX)'], ], 'target_defaults': { - 'cflags_cc': [ - '-std=c++14', - ], 'xcode_settings': { 'CC': '<(make_clang_dir)/bin/clang', 'LDPLUSPLUS': '<(make_clang_dir)/bin/clang++', @@ -125,13 +122,24 @@ 'CLANG_CXX_LANGUAGE_STANDARD': 'c++14', # -std=c++14 }, 'target_conditions': [ - ['_type in ["executable", "shared_library"]', { + ['OS=="mac" and _type in ["executable", "shared_library"]', { 'xcode_settings': { # On some machines setting CLANG_CXX_LIBRARY doesn't work for # linker. 'OTHER_LDFLAGS': [ '-stdlib=libc++' ], }, }], + ['OS=="linux"', { + 'cflags_cc': [ + '-std=gnu++14', + '-nostdinc++', + '-isystem<(libchromiumcontent_src_dir)/buildtools/third_party/libc++/trunk/include', + '-isystem<(libchromiumcontent_src_dir)/buildtools/third_party/libc++abi/trunk/include', + ], + 'ldflags': [ + '-nostdlib++', + ], + }], ], }, }], # clang==1 @@ -145,7 +153,7 @@ ], 'target_defaults': { 'cflags_cc': [ - '-std=c++11', + '-std=gnu++14', ], }, }], diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index f8ff573e503d..5964d8fe1ef8 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit f8ff573e503dea08f8ef05a2773bf3b0aa8dfdb1 +Subproject commit 5964d8fe1ef813028d53c6496857ca84d9d91fd3 From 2fcf2c81bf31df6330ff0013faf1ad6d991f1aed Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 30 Jan 2018 18:07:19 +0900 Subject: [PATCH 53/60] Make sure --sysroot is appended at last --- toolchain.gypi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/toolchain.gypi b/toolchain.gypi index 5e291127a2f5..34d1af9cb808 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -172,7 +172,11 @@ 'target_defaults': { 'target_conditions': [ ['_toolset=="target"', { - 'cflags': [ + # Do not use 'cflags' to make sure sysroot is appended at last. + 'cflags_cc': [ + '--sysroot=<(sysroot)', + ], + 'cflags_c': [ '--sysroot=<(sysroot)', ], 'ldflags': [ From 9d05c596008da317aea87c2dc9b8bc842643335d Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 30 Jan 2018 20:07:35 +0900 Subject: [PATCH 54/60] node.so should link with libc++.so --- common.gypi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index 76eb017387a9..7623eba2184f 100644 --- a/common.gypi +++ b/common.gypi @@ -246,12 +246,15 @@ }], # OS=="win" ], }], - ['OS=="linux" and _target_name in ["dump_syms"]', { + ['OS=="linux" and _target_name in ["dump_syms", "node"]', { 'conditions': [ ['libchromiumcontent_component==0', { 'libraries': [ '<(libchromiumcontent_dir)/libc++.a', ], + 'ldflags': [ + '-lpthread', + ], }, { 'libraries': [ '<(libchromiumcontent_dir)/libc++.so', From 39e0433570109965275c996e84737dd34c5f5ff8 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 31 Jan 2018 16:09:13 +0900 Subject: [PATCH 55/60] Fix build error after rebasing --- atom/browser/api/atom_api_in_app_purchase.cc | 2 +- atom/common/node_bindings.cc | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/atom/browser/api/atom_api_in_app_purchase.cc b/atom/browser/api/atom_api_in_app_purchase.cc index 4f507fb86e41..c30057fa0702 100644 --- a/atom/browser/api/atom_api_in_app_purchase.cc +++ b/atom/browser/api/atom_api_in_app_purchase.cc @@ -112,4 +112,4 @@ void Initialize(v8::Local exports, } // namespace -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_in_app_purchase, Initialize) +NODE_BUILTIN_MODULE_CONTEXT_AWARE(atom_browser_in_app_purchase, Initialize) diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index a69f5bcf7e3e..15c651856848 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -192,18 +192,14 @@ void NodeBindings::Initialize() { } node::Environment* NodeBindings::CreateEnvironment( -<<<<<<< c1acc6cb5c9591122cecfcf3910c73d62d28eaf7 - v8::Handle context) { + v8::Handle context, + node::MultiIsolatePlatform* platform) { #if defined(OS_WIN) auto& atom_args = AtomCommandLine::argv(); std::vector args(atom_args.size()); std::transform(atom_args.cbegin(), atom_args.cend(), args.begin(), [](auto& a) { return base::WideToUTF8(a); }); #else -======= - v8::Handle context, - node::MultiIsolatePlatform* platform) { ->>>>>>> Upgrade to node v9.3.0 (#11507) auto args = AtomCommandLine::argv(); #endif From b25175a19acb4fd2bb1491585307801674a2f2f3 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 31 Jan 2018 16:37:32 +0900 Subject: [PATCH 56/60] Fix assertion when get X11 error in new thread --- brightray/browser/browser_main_parts.cc | 2 +- common.gypi | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/brightray/browser/browser_main_parts.cc b/brightray/browser/browser_main_parts.cc index 642734aa4db9..9313a9fa92bb 100644 --- a/brightray/browser/browser_main_parts.cc +++ b/brightray/browser/browser_main_parts.cc @@ -105,7 +105,7 @@ void OverrideLinuxAppDataPath() { } int BrowserX11ErrorHandler(Display* d, XErrorEvent* error) { - if (!g_in_x11_io_error_handler) { + if (!g_in_x11_io_error_handler && base::ThreadTaskRunnerHandle::IsSet()) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&ui::LogErrorEventDescription, d, *error)); } diff --git a/common.gypi b/common.gypi index 7623eba2184f..df932c1e3949 100644 --- a/common.gypi +++ b/common.gypi @@ -184,7 +184,6 @@ }, { 'libraries': [ '<@(libchromiumcontent_v8_libraries)', - '<(libchromiumcontent_dir)/libc++.so', ], }], ], From 81c23b84e7ed04aba646171c9adaf3b21d00485d Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 31 Jan 2018 17:13:59 +0900 Subject: [PATCH 57/60] Fix error when cross compilation --- common.gypi | 2 +- toolchain.gypi | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index df932c1e3949..f4189345646d 100644 --- a/common.gypi +++ b/common.gypi @@ -245,7 +245,7 @@ }], # OS=="win" ], }], - ['OS=="linux" and _target_name in ["dump_syms", "node"]', { + ['OS=="linux" and _toolset=="target" and _target_name in ["dump_syms", "node"]', { 'conditions': [ ['libchromiumcontent_component==0', { 'libraries': [ diff --git a/toolchain.gypi b/toolchain.gypi index 34d1af9cb808..0b4ffa3e5eb9 100644 --- a/toolchain.gypi +++ b/toolchain.gypi @@ -129,7 +129,7 @@ 'OTHER_LDFLAGS': [ '-stdlib=libc++' ], }, }], - ['OS=="linux"', { + ['OS=="linux" and _toolset=="target"', { 'cflags_cc': [ '-std=gnu++14', '-nostdinc++', @@ -140,6 +140,11 @@ '-nostdlib++', ], }], + ['OS=="linux" and _toolset=="host"', { + 'cflags_cc': [ + '-std=gnu++14', + ], + }], ], }, }], # clang==1 From b9ab2fe0fb616295b4f78c36b7017a1ccf853be6 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 6 Feb 2018 16:50:58 +0900 Subject: [PATCH 58/60] Disable stack dumping for 32bit ARM --- atom/app/atom_main_delegate.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index 82b3559fb9f0..929b641d4465 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -99,6 +99,11 @@ bool AtomMainDelegate::BasicStartupComplete(int* exit_code) { bool enable_stack_dumping = true; #else bool enable_stack_dumping = env->HasVar("ELECTRON_ENABLE_STACK_DUMPING"); +#endif +#if defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS) + // For 32bit ARM enabling stack printing would end up crashing. + // https://github.com/electron/electron/pull/11230#issuecomment-363232482 + enable_stack_dumping = false; #endif if (enable_stack_dumping) base::debug::EnableInProcessStackDumping(); From 7e3b690257716db02b2628929362808d39a96f24 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Wed, 21 Feb 2018 20:38:08 +0300 Subject: [PATCH 59/60] Update libcc revision --- vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index 5964d8fe1ef8..dfa5994b8926 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit 5964d8fe1ef813028d53c6496857ca84d9d91fd3 +Subproject commit dfa5994b892645abb551a03e06de257dde9b54fa From 3948323a8c829877166514786bba377e87e1ec48 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 23 Feb 2018 10:23:53 +0900 Subject: [PATCH 60/60] Update libcc to latest chrome62 --- vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index dfa5994b8926..8c526e52d02a 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit dfa5994b892645abb551a03e06de257dde9b54fa +Subproject commit 8c526e52d02a574b6d3cbaf2014cdccb9a0e3185