From 7ee9ca32d671c45625cd1bbb3760349d7a5ec53b Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 28 May 2018 22:39:09 +0200 Subject: [PATCH 01/75] Update patches to Chromium 68.0.3440.33 --- patches/master_patch.patch | 452 +++++++++--------- .../third_party/boringssl/src/boringssl.patch | 22 +- patches/v8/filter.patch | 18 +- 3 files changed, 250 insertions(+), 242 deletions(-) diff --git a/patches/master_patch.patch b/patches/master_patch.patch index fef9c7d6c..8b8ba3cf3 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -1,5 +1,5 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h -index e3d70e31083e2f2e137bcfbda271d2ab4fe2ed57..cdfa701757bb4e8a52df75bbf4c953a6ba39800e 100644 +index 57f2f21e9ee03079d84965ba48256380a75b0180..d5c093d041f5908d1f0800efd4b2895e7e4ec6fc 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h @@ -34,6 +34,13 @@ class StatisticsProviderImpl; @@ -16,7 +16,7 @@ index e3d70e31083e2f2e137bcfbda271d2ab4fe2ed57..cdfa701757bb4e8a52df75bbf4c953a6 namespace content { class BrowserGpuChannelHostFactory; class BrowserGpuMemoryBufferManager; -@@ -438,6 +445,9 @@ class BASE_EXPORT ThreadRestrictions { +@@ -447,6 +454,9 @@ class BASE_EXPORT ThreadRestrictions { friend class ui::CommandBufferLocal; friend class ui::GpuState; @@ -27,10 +27,10 @@ index e3d70e31083e2f2e137bcfbda271d2ab4fe2ed57..cdfa701757bb4e8a52df75bbf4c953a6 // BEGIN USAGE THAT NEEDS TO BE FIXED. friend class ::chromeos::BlockingMethodCaller; // http://crbug.com/125360 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn -index 9e38ee0e592b64f2457dd48110aceafff95164cd..d3d67d38394c1234c1f3f93a76850165f4951ce2 100644 +index 93a97ff2803fe335be4537bc2d21a493468a2a23..bb84112e3babe3e4e974dbd2d11e580501ddf152 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -152,6 +152,8 @@ declare_args() { +@@ -148,6 +148,8 @@ declare_args() { host_toolchain = "" # DON'T ADD MORE FLAGS HERE. Read the comment above. @@ -39,7 +39,7 @@ index 9e38ee0e592b64f2457dd48110aceafff95164cd..d3d67d38394c1234c1f3f93a76850165 } declare_args() { -@@ -541,6 +543,14 @@ default_compiler_configs = [ +@@ -529,6 +531,14 @@ default_compiler_configs = [ "//build/config/sanitizers:default_sanitizer_flags", ] @@ -78,7 +78,7 @@ index 4bb4a043cbbcb562aed8926867660547cd7f018c..769bc73607b600d549b6185a37d6b0cc } +} diff --git a/build/toolchain/win/BUILD.gn b/build/toolchain/win/BUILD.gn -index f8eb453e400fd645a48f7d1ca2f92cdb2213ffd2..c4a63e44099cf1baa4f574cd29c126f01936a0d5 100644 +index 4d9d1f45f8702395716bd7be30c7a9b21ffb2f7d..c668f93a50f3e46ee441eedf34f6c09e82003a68 100644 --- a/build/toolchain/win/BUILD.gn +++ b/build/toolchain/win/BUILD.gn @@ -6,6 +6,7 @@ import("//build/config/clang/clang.gni") @@ -99,7 +99,7 @@ index f8eb453e400fd645a48f7d1ca2f92cdb2213ffd2..c4a63e44099cf1baa4f574cd29c126f0 goma_prefix = "" } diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 4304cc82494f57b7bbc4d1f3dff0fab96e30aef3..77130b344ba1e03e34e5faa752cd2590b8797869 100644 +index 395d16c7cef21407a233cdb79aaa88a5c5b6e72b..2fbac7de0bce3c1bdb634f8e16afed59d3add639 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -40,6 +40,11 @@ if (is_android) { @@ -115,29 +115,30 @@ index 4304cc82494f57b7bbc4d1f3dff0fab96e30aef3..77130b344ba1e03e34e5faa752cd2590 assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome") diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn -index e5744a9d05d3099a61815954b08c7c030d081071..1dfade8ab95643acb19ebf39ae9b69506fbeb5e6 100644 +index 4f74e74cfda63e4a9e9cb64c32a490c85a9a42d1..babd5dc7594d3b8a7529938469a9ea7a640f14a1 100644 --- a/chrome/app/BUILD.gn +++ b/chrome/app/BUILD.gn -@@ -424,6 +424,7 @@ if (is_win) { - if (!is_android) { +@@ -431,6 +431,8 @@ if (!is_android) { chrome_packaged_services += [ "//chrome/utility:profile_import_manifest" ] } -+chrome_packaged_services += [ "//electron/app:tor_launcher_manifest" ] ++chrome_packaged_services += [ "//electron/app:tor_launcher_manifest" ] ++ service_manifest("chrome_manifest") { source = "chrome_manifest.json" + } diff --git a/chrome/browser/chrome_content_browser_manifest_overlay.json b/chrome/browser/chrome_content_browser_manifest_overlay.json -index cd82cd63bfff860abdd765ad6e35355caffc3a43..eb8966b82071f04263e00c897a8708eb9ff6ec91 100644 +index 3805676f7b81e20087b2cc34197733ac0e43edc4..cf11d90db95ed4d59180837d8bff2d4a5180ba79 100644 --- a/chrome/browser/chrome_content_browser_manifest_overlay.json +++ b/chrome/browser/chrome_content_browser_manifest_overlay.json @@ -12,7 +12,7 @@ - "extensions::StashService", - "metrics::mojom::CallStackProfileCollector", - "mojom::ModuleEventSink", -- "rappor::mojom::RapporRecorder", -+// "rappor::mojom::RapporRecorder", - "safe_browsing::mojom::SafeBrowsing", - "translate::mojom::ContentTranslateDriver" + "extensions.StashService", + "metrics.mojom.CallStackProfileCollector", + "mojom.ModuleEventSink", +- "rappor.mojom.RapporRecorder", ++// "rappor.mojom.RapporRecorder", + "safe_browsing.mojom.SafeBrowsing", + "translate.mojom.ContentTranslateDriver" ], @@ -55,6 +55,7 @@ "proxy_resolver": [ "factory" ], @@ -148,10 +149,10 @@ index cd82cd63bfff860abdd765ad6e35355caffc3a43..eb8966b82071f04263e00c897a8708eb "display_dev", "ime_registrar", diff --git a/chrome/browser/chrome_service.cc b/chrome/browser/chrome_service.cc -index a6e8369996c9538a1969a8eef3091c00eecb5ec1..eff895a8593ad0edaaa6e38e1c6f013af5fb3c46 100644 +index 7673d9f881f37abda70bfcf835402b727dd6288d..aa1a4bf8d0cd57e3bbfd5822c54304f5b8c6c46f 100644 --- a/chrome/browser/chrome_service.cc +++ b/chrome/browser/chrome_service.cc -@@ -46,8 +46,10 @@ class ChromeService::IOThreadContext : public service_manager::Service { +@@ -47,8 +47,10 @@ class ChromeService::IOThreadContext : public service_manager::Service { base::Unretained(&launchable_)), ui_task_runner); #endif @@ -225,10 +226,10 @@ index 2592dea8c30aa5e7b9daf614a63fe964471bab7a..5fede5d8ee00b4b06d437b4272ec19a0 callback_fn.Run(updated_pref); } diff --git a/chrome/browser/password_manager/password_store_factory.cc b/chrome/browser/password_manager/password_store_factory.cc -index b90b23305c0bedf47da5c8f5605377e3b8dfaa0d..fa0db0a824df3313be6ac2e4f14ebb26a8715057 100644 +index ef255cb022eb8fdca3a6eb0f3a49e5ec663674ce..e5bc4c49a3d9447ddaa27c4c3caeaaba88767550 100644 --- a/chrome/browser/password_manager/password_store_factory.cc +++ b/chrome/browser/password_manager/password_store_factory.cc -@@ -112,8 +112,10 @@ PasswordStoreFactory::PasswordStoreFactory() +@@ -122,8 +122,10 @@ PasswordStoreFactory::PasswordStoreFactory() #if defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED) // TODO(crbug.com/715987). Remove when PasswordReuseDetector is decoupled // from PasswordStore. @@ -239,7 +240,7 @@ index b90b23305c0bedf47da5c8f5605377e3b8dfaa0d..fa0db0a824df3313be6ac2e4f14ebb26 } PasswordStoreFactory::~PasswordStoreFactory() {} -@@ -264,12 +266,14 @@ PasswordStoreFactory::BuildServiceInstanceFor( +@@ -282,12 +284,14 @@ PasswordStoreFactory::BuildServiceInstanceFor( password_manager_util::CleanUserDataInBlacklistedCredentials( ps.get(), profile->GetPrefs(), 60); @@ -255,10 +256,10 @@ index b90b23305c0bedf47da5c8f5605377e3b8dfaa0d..fa0db0a824df3313be6ac2e4f14ebb26 return ps; diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc -index 9f0672828c18a8421e9f62a6d8a9bb252c9fb510..4cea961ac506c9eea9e7f88deb8c75ae48d1cbc3 100644 +index 9b0c15b3c5016707788476295d53ab9d8a80e338..7dd660e280f28cf73019f45a111d4b86704aaf07 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc -@@ -73,13 +73,13 @@ using PrintSettingsCallback = +@@ -68,13 +68,13 @@ using PrintSettingsCallback = void ShowWarningMessageBox(const base::string16& message) { // Runs always on the UI thread. @@ -411,45 +412,49 @@ index 9f0003bc2d80d7c76ab9dd17393d0188fe1ac6fd..88d75d4091fb3dc282998a5d44e63cbf // content::NotificationObserver implementation. void Observe(int type, diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc -index 1b5026face136534578062e4d3c9c0c955dadd20..8dabdbd4f67a0af777f7136963ef18eaf5283584 100644 +index 01d3ee8917c2d05943e42556a4221161606c451d..f801248b1017abaf706533ff0889295c13cfb653 100644 --- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc +++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc -@@ -7,10 +7,12 @@ - #include "base/logging.h" +@@ -12,6 +12,7 @@ #include "base/metrics/histogram_macros.h" + #include "base/optional.h" #include "base/process/process_metrics.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" #include "chrome/browser/profiles/profile.h" +@@ -19,6 +20,7 @@ + #include "chrome/browser/resource_coordinator/tab_activity_watcher.h" #include "chrome/browser/resource_coordinator/tab_lifecycle_observer.h" + #include "chrome/browser/resource_coordinator/tab_load_tracker.h" +#include "chrome/browser/resource_coordinator/tab_manager.h" + #include "chrome/browser/resource_coordinator/tab_manager_features.h" #include "chrome/browser/resource_coordinator/time.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" - #include "content/public/browser/favicon_status.h" -@@ -228,7 +230,7 @@ bool TabLifecycleUnitSource::TabLifecycleUnit::Discard( - create_params.initially_hidden = - old_contents->GetVisibility() == content::Visibility::HIDDEN; - content::WebContents* const null_contents = +@@ -375,7 +377,7 @@ void TabLifecycleUnitSource::TabLifecycleUnit::FinishDiscard( + create_params.desired_renderer_state = + content::WebContents::CreateParams::kNoRendererProcess; + std::unique_ptr null_contents = - content::WebContents::Create(create_params); + g_browser_process->GetTabManager()->CreateNullContents(create_params, old_contents); + content::WebContents* raw_null_contents = null_contents.get(); // Copy over the state from the navigation controller to preserve the // back/forward history and to continue to display the correct title/favicon. - // -@@ -279,7 +281,7 @@ bool TabLifecycleUnitSource::TabLifecycleUnit::Discard( +@@ -428,7 +430,9 @@ void TabLifecycleUnitSource::TabLifecycleUnit::FinishDiscard( // TODO(jamescook): This breaks script connections with other tabs. Find a // different approach that doesn't do that, perhaps based on // RenderFrameProxyHosts. -- delete old_contents; +- old_contents_deleter.reset(); ++ // MUON(bridiver): see tab_manager.h + g_browser_process->GetTabManager()->DestroyOldContents(old_contents); - SetState(State::DISCARDED); - ++discard_count_; + LifecycleState previous_state = GetState(); + SetState(LifecycleState::DISCARDED); diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc -index 20126aa6e705c72a857e7d52744a33e123bd611e..7c137c593caca72da37186edb0b9aeb4560f1d03 100644 +index 7d5a446cf9fa1c63a71d2bc11c3a7684a3dd992c..ab18db7e11d0efe30b4c1379ce7b7f940c2c490f 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc -@@ -516,6 +516,17 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { +@@ -487,6 +487,17 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { } } @@ -468,10 +473,10 @@ index 20126aa6e705c72a857e7d52744a33e123bd611e..7c137c593caca72da37186edb0b9aeb4 TRACE_EVENT_INSTANT0("navigation", "TabManager::PauseBackgroundTabOpeningIfNeeded", diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h -index 462ea07d0073906b1068316163b48ea1636488e3..b66ba1e93f1c7fcc86bd50bae2f261a1368c5a62 100644 +index 926a13003dd9ff8578d188790c282e51168f7f3e..a373b0718d0fefd459e10330450e7f6c3d1104f3 100644 --- a/chrome/browser/resource_coordinator/tab_manager.h +++ b/chrome/browser/resource_coordinator/tab_manager.h -@@ -30,6 +30,7 @@ +@@ -32,6 +32,7 @@ #include "chrome/browser/ui/browser_tab_strip_tracker.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" #include "content/public/browser/navigation_throttle.h" @@ -479,7 +484,7 @@ index 462ea07d0073906b1068316163b48ea1636488e3..b66ba1e93f1c7fcc86bd50bae2f261a1 #include "ui/gfx/native_widget_types.h" class GURL; -@@ -89,6 +90,11 @@ class TabManager : public LifecycleUnitObserver, +@@ -92,6 +93,11 @@ class TabManager : public LifecycleUnitObserver, TabManager(); ~TabManager() override; @@ -491,19 +496,38 @@ index 462ea07d0073906b1068316163b48ea1636488e3..b66ba1e93f1c7fcc86bd50bae2f261a1 // Start/Stop the Tab Manager. void Start(); void Stop(); -@@ -202,6 +208,7 @@ class TabManager : public LifecycleUnitObserver, - const TabLoadTracker& tab_load_tracker() const { return tab_load_tracker_; } +@@ -181,6 +187,7 @@ class TabManager : public LifecycleUnitObserver, + int restored_tab_count() const; private: + friend class GuestTabManager; friend class TabManagerStatsCollectorTest; + friend class TabManagerWithProactiveDiscardExperimentEnabledTest; - FRIEND_TEST_ALL_PREFIXES(TabManagerTest, PurgeBackgroundRenderer); +diff --git a/chrome/browser/ssl/ssl_config_service_manager_pref.cc b/chrome/browser/ssl/ssl_config_service_manager_pref.cc +index de9e4280f1984afd3198b5c8132774cc26ff7e95..54be9a23739ddb16322c0067c7e4da51a2e85b02 100644 +--- a/chrome/browser/ssl/ssl_config_service_manager_pref.cc ++++ b/chrome/browser/ssl/ssl_config_service_manager_pref.cc +@@ -254,10 +254,14 @@ SSLConfigServiceManagerPref::GetSSLConfigFromPrefs() const { + + // rev_checking_enabled was formerly a user-settable preference, but now + // it is managed-only. ++#if defined(MUON_CHROMIUM_BUILD) + if (rev_checking_enabled_.IsManaged()) + config->rev_checking_enabled = rev_checking_enabled_.GetValue(); + else + config->rev_checking_enabled = false; ++#else ++ config->rev_checking_enabled = rev_checking_enabled_.GetValue(); ++#endif + config->rev_checking_required_local_anchors = + rev_checking_required_local_anchors_.GetValue(); + config->sha1_local_anchors_enabled = sha1_local_anchors_enabled_.GetValue(); diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn -index eb650f8aa7009371e31077e0f4a754807efd7613..a2f4a1345789a15ff70f34f7a405ed8310dc4685 100644 +index b45794f858d4f8eabceab39166f2103dbdf87361..69d2674f11800d3b906b60f840c9b4e5351d8ab6 100644 --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -494,6 +494,12 @@ static_library("common") { +@@ -495,6 +495,12 @@ static_library("common") { ] public_deps += [ "//chrome/common:version_header" ] } @@ -517,7 +541,7 @@ index eb650f8aa7009371e31077e0f4a754807efd7613..a2f4a1345789a15ff70f34f7a405ed83 process_version("version_header") { diff --git a/chrome/common/chrome_constants.cc b/chrome/common/chrome_constants.cc -index f32ffad1a95bc31b6571a624333420e88d98913a..dd2a26b9ae57459e0bbd1b558d2721f2f21dea81 100644 +index d4e0823a55994118bacfe4fd7f8ec1881640e8ac..3644624a60bc75b5d6308c30343a25793ccff589 100644 --- a/chrome/common/chrome_constants.cc +++ b/chrome/common/chrome_constants.cc @@ -10,11 +10,11 @@ @@ -629,7 +653,7 @@ index f32ffad1a95bc31b6571a624333420e88d98913a..dd2a26b9ae57459e0bbd1b558d2721f2 FPL("Chrome_StatusTrayWindow"); #endif // defined(OS_WIN) diff --git a/chrome/common/chrome_paths_mac.mm b/chrome/common/chrome_paths_mac.mm -index cca3bbb41ae25484c3e87c9aba09a8b07741e2b2..57abbcfd90dab7bbf1b5dffc35b17d3ade1a5e1e 100644 +index 406298ba2b3352b072ed500c42e46e26d1043f8c..dd9e3b25926d7d7d79d6f02c6265febf37696053 100644 --- a/chrome/common/chrome_paths_mac.mm +++ b/chrome/common/chrome_paths_mac.mm @@ -40,7 +40,9 @@ NSBundle* OuterAppBundleInternal() { @@ -694,10 +718,10 @@ index c172f8a5bc534465ff4d063a52f9bb510b7e36af..437026ae26eec5dce80edb73929a0fbc #if defined(OS_MACOSX) TYPE_SAFARI = 3, diff --git a/chrome/common/importer/profile_import.mojom b/chrome/common/importer/profile_import.mojom -index e37446ad30a9c86b480ec389ff7aab0cd12269f8..e4ccc03d7d7f5fd868e6e9ccd60d3aabe65420f1 100644 +index 625b5ddec268292acf11f3c060c07c336ca1317f..9a88422b66723e3fbd805075ca57cb51ff3e026f 100644 --- a/chrome/common/importer/profile_import.mojom +++ b/chrome/common/importer/profile_import.mojom -@@ -17,6 +17,9 @@ struct ImportedBookmarkEntry; +@@ -16,6 +16,9 @@ struct ImportedBookmarkEntry; [Native] struct ImporterAutofillFormDataEntry; @@ -707,7 +731,7 @@ index e37446ad30a9c86b480ec389ff7aab0cd12269f8..e4ccc03d7d7f5fd868e6e9ccd60d3aab [Native] struct SearchEngineInfo; -@@ -65,6 +68,8 @@ interface ProfileImportObserver { +@@ -64,6 +67,8 @@ interface ProfileImportObserver { OnAutofillFormDataImportStart(uint32 total_autofill_form_data_entry_count); OnAutofillFormDataImportGroup( array autofill_form_data_entry_group); @@ -774,7 +798,7 @@ index efd272e706ba56b748e4b76b96d76cbd03aa07ac..051851c40e6b721035c6b57ed5b35962 @"Google Chrome Canary": @"Google Chrome", }; diff --git a/chrome/common/media/cdm_host_file_path.cc b/chrome/common/media/cdm_host_file_path.cc -index f0621d868dfc6cfc5a8738dbf61679b315107b01..7567113a190be2bfe6b40b6d6de54c1bef5b58aa 100644 +index c6030f417db0ea1aca7f1a618a174ab6bc9cb516..e5537c7551e4e2c3c6d3f69a72d21c5333f773c7 100644 --- a/chrome/common/media/cdm_host_file_path.cc +++ b/chrome/common/media/cdm_host_file_path.cc @@ -17,7 +17,7 @@ @@ -881,10 +905,10 @@ index d7734d8883c3e438ece3d509b7bb331931831178..6e6cdda19c271de7e5429db02b3e17b2 } # Note: Update the test expectations in GetBaseMessageIdForMode.GoogleStringIds diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn -index 0903a45209399ebe0de9eb0397d0fbd601faa2b1..3f4d4100bd23b7920e9f97e35ac29ae92aa0d69a 100644 +index 0b312fc03b93ec515fdc50ecd6fc4ed2e55dd2c8..ce621207b4da425873d8c3286eb3ab309996ce3c 100644 --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -415,6 +415,19 @@ static_library("renderer") { +@@ -406,6 +406,19 @@ static_library("renderer") { "searchbox/searchbox_extension.h", ] } @@ -905,10 +929,10 @@ index 0903a45209399ebe0de9eb0397d0fbd601faa2b1..3f4d4100bd23b7920e9f97e35ac29ae9 static_library("test_support") { diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc -index 1cd2e64b9eb9858e40f7a5914edfd162fc4dcb58..759bfb6a90817f5d235aa449c4b881b47b0a1310 100644 +index 64a3c7982c9f23dbef8cd3061b3bface7cd65997..68aea089616a0b19483bed771d4d9f6ce3d79189 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -1508,6 +1508,7 @@ ChromeContentRendererClient::CreateBrowserPluginDelegate( +@@ -1512,6 +1512,7 @@ ChromeContentRendererClient::CreateBrowserPluginDelegate( #endif } @@ -916,7 +940,7 @@ index 1cd2e64b9eb9858e40f7a5914edfd162fc4dcb58..759bfb6a90817f5d235aa449c4b881b4 void ChromeContentRendererClient::RecordRappor(const std::string& metric, const std::string& sample) { if (!rappor_recorder_) { -@@ -1525,6 +1526,7 @@ void ChromeContentRendererClient::RecordRapporURL(const std::string& metric, +@@ -1529,6 +1530,7 @@ void ChromeContentRendererClient::RecordRapporURL(const std::string& metric, } rappor_recorder_->RecordRapporURL(metric, url); } @@ -925,7 +949,7 @@ index 1cd2e64b9eb9858e40f7a5914edfd162fc4dcb58..759bfb6a90817f5d235aa449c4b881b4 void ChromeContentRendererClient::AddImageContextMenuProperties( const WebURLResponse& response, diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h -index 5f9de171e4ec238bc8fef097e2b2ed896f3f72a8..f76f92ae6ff554e3f7ed780c8154b97ec156b8fb 100644 +index 8427fc4c5669c30f2c54181ab5b684266a357cfc..265de15051ea410e4b1712a45a208ce2ad717ff7 100644 --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h @@ -198,9 +198,9 @@ class ChromeContentRendererClient @@ -963,10 +987,10 @@ index d63e90b6c5079ab3237c4bad3d5e63ce2f99c657..a11bccc62f9ed847013903a48c826bd8 return nullptr; } diff --git a/chrome/utility/importer/external_process_importer_bridge.h b/chrome/utility/importer/external_process_importer_bridge.h -index d137743e4b8f522340126a31563133d8b005bcf6..4f40e98168ab1e4f4f95c82018cdb8fdaddc414c 100644 +index 47109f604cf982e74511749890c6fb1ec9ca98f2..4d25f3ae2ca8704046a787e0fb35cdf83c1f9e8f 100644 --- a/chrome/utility/importer/external_process_importer_bridge.h +++ b/chrome/utility/importer/external_process_importer_bridge.h -@@ -83,6 +83,7 @@ class ExternalProcessImporterBridge : public ImporterBridge { +@@ -82,6 +82,7 @@ class ExternalProcessImporterBridge : public ImporterBridge { private: ~ExternalProcessImporterBridge() override; @@ -975,10 +999,10 @@ index d137743e4b8f522340126a31563133d8b005bcf6..4f40e98168ab1e4f4f95c82018cdb8fd // Holds strings needed by the external importer because the resource // bundle isn't available to the external process. diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc -index 21442ff4561a43c96b2e34dbadd7af30fb321b07..b0cfd80e7befd9c7e6c55b520ae1b632707c3de9 100644 +index e98cc6055ad7f0b5df4b73dacef5972b5efb249b..87a57d3718ef110429729fcaee02bee1da8ec1dd 100644 --- a/chrome/utility/importer/firefox_importer.cc +++ b/chrome/utility/importer/firefox_importer.cc -@@ -160,14 +160,12 @@ void FirefoxImporter::StartImport(const importer::SourceProfile& source_profile, +@@ -159,14 +159,12 @@ void FirefoxImporter::StartImport(const importer::SourceProfile& source_profile, if ((items & importer::PASSWORDS) && !cancelled()) { bridge_->NotifyItemStarted(importer::PASSWORDS); ImportPasswords(); @@ -1008,17 +1032,17 @@ index 8c6dafc83d25a697a6ca235faf4e0dc386a8828b..f6465167a32f27c496caaa4015a9cd10 FRIEND_TEST_ALL_PREFIXES(FirefoxImporterTest, ImportBookmarksV25); void ImportBookmarks(); diff --git a/chrome/utility/importer/profile_import_impl.h b/chrome/utility/importer/profile_import_impl.h -index effad1751c42f70e2c657204345777f58b038a4e..50e0bd6b27cf120435f8d5e40107fa95393e2154 100644 +index c969cc5c740837d5a73650739e66ed659cb6915a..4855eb232919e71fa8aa2cff4d4dda9a89d3cdd3 100644 --- a/chrome/utility/importer/profile_import_impl.h +++ b/chrome/utility/importer/profile_import_impl.h -@@ -34,6 +34,7 @@ class ProfileImportImpl : public chrome::mojom::ProfileImport { +@@ -33,6 +33,7 @@ class ProfileImportImpl : public chrome::mojom::ProfileImport { ~ProfileImportImpl() override; private: + friend class BraveProfileImportImpl; // chrome::mojom::ProfileImport: - void StartImport(const importer::SourceProfile& source_profile, - uint16_t items, + void StartImport( + const importer::SourceProfile& source_profile, diff --git a/chrome/utility/importer/profile_import_service.h b/chrome/utility/importer/profile_import_service.h index c4c5f83886574956b3abdfa77a07500a2ee6de9e..edbfde3c41a1e38bcdedd09aaa41d8a1ab3ab03b 100644 --- a/chrome/utility/importer/profile_import_service.h @@ -1032,10 +1056,10 @@ index c4c5f83886574956b3abdfa77a07500a2ee6de9e..edbfde3c41a1e38bcdedd09aaa41d8a1 std::unique_ptr ref_factory_; service_manager::BinderRegistry registry_; diff --git a/components/autofill/core/browser/credit_card_save_manager.cc b/components/autofill/core/browser/credit_card_save_manager.cc -index 140ca98f97b60dcc9d147458efdbc13ad53436d2..1cd74f11035327a376fa071b03007588ac35c99a 100644 +index 5eac76c70943bef6691581cb5d92afae25c1239a..5f688cd9f8e2bd6134ce5783302c62ca55430ced 100644 --- a/components/autofill/core/browser/credit_card_save_manager.cc +++ b/components/autofill/core/browser/credit_card_save_manager.cc -@@ -210,12 +210,17 @@ void CreditCardSaveManager::AttemptToOfferCardUploadSave( +@@ -190,12 +190,17 @@ void CreditCardSaveManager::AttemptToOfferCardUploadSave( } bool CreditCardSaveManager::IsCreditCardUploadEnabled() { @@ -1054,7 +1078,7 @@ index 140ca98f97b60dcc9d147458efdbc13ad53436d2..1cd74f11035327a376fa071b03007588 void CreditCardSaveManager::OnDidUploadCard( diff --git a/components/crash/content/app/breakpad_linux.cc b/components/crash/content/app/breakpad_linux.cc -index 1dde47fb6bba92deb9ef49f72b0410412ab8198f..31e8cda19cbc690e904ee277d42e7312f6a99762 100644 +index 76f15cb5b511877a489e1a4f13350a712bc0a677..dc02ac413d44ac6942915fa0469b04b68860e058 100644 --- a/components/crash/content/app/breakpad_linux.cc +++ b/components/crash/content/app/breakpad_linux.cc @@ -86,8 +86,10 @@ namespace breakpad { @@ -1069,7 +1093,7 @@ index 1dde47fb6bba92deb9ef49f72b0410412ab8198f..31e8cda19cbc690e904ee277d42e7312 #endif bool g_is_crash_reporter_enabled = false; -@@ -1343,6 +1345,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info, +@@ -1342,6 +1344,7 @@ void ExecUploadProcessOrTerminate(const BreakpadInfo& info, header_content_type, post_file, kUploadURL, @@ -1077,7 +1101,7 @@ index 1dde47fb6bba92deb9ef49f72b0410412ab8198f..31e8cda19cbc690e904ee277d42e7312 "--timeout=10", // Set a timeout so we don't hang forever. "--tries=1", // Don't retry if the upload fails. "-O", // Output reply to the file descriptor path. -@@ -1898,6 +1901,7 @@ void HandleCrashDump(const BreakpadInfo& info) { +@@ -1897,6 +1900,7 @@ void HandleCrashDump(const BreakpadInfo& info) { const size_t kCrashIdLength = 16; char id_buf[kCrashIdLength + 1]; @@ -1086,10 +1110,10 @@ index 1dde47fb6bba92deb9ef49f72b0410412ab8198f..31e8cda19cbc690e904ee277d42e7312 WaitForCrashReportUploadProcess(fds[0], kCrashIdLength, id_buf); HandleCrashReportId(id_buf, bytes_read, kCrashIdLength); diff --git a/components/crash/content/app/crashpad_mac.mm b/components/crash/content/app/crashpad_mac.mm -index eb82f44053cec67f7e98c798d8e1e58228aa7fe6..5ab4abe28b41f5af346e263f0a4573b79dd4c40c 100644 +index f06d903c2f41b8a58cfc406c36704ae93bf30378..7eebefa875ebe41e700003e1b75d2edd0a731a4c 100644 --- a/components/crash/content/app/crashpad_mac.mm +++ b/components/crash/content/app/crashpad_mac.mm -@@ -55,6 +55,8 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, +@@ -132,6 +132,8 @@ base::FilePath PlatformCrashpadInitialization(bool initial_client, // Only allow the possibility of report upload in official builds. This // crash server won't have symbols for any other build types. std::string url = "https://clients2.google.com/cr/report"; @@ -1171,7 +1195,7 @@ index 32341e9197a71fe2215c67e5b2e936b171043d76..25f6b04bafc86c44a243d933a55444a5 // // This gives the derived class an opportunity to perform additional diff --git a/components/guest_view/browser/guest_view_manager.cc b/components/guest_view/browser/guest_view_manager.cc -index 0738b6917057019a9e006a3a34fcf6164017cb46..ce3de6082c9ad8014d80a216f0c23c06d929d354 100644 +index a18eacb3b74c7bdfba63394cc123a8b748728fd1..8da758ea5a68e9773e8f6c23acb0c781c91cf279 100644 --- a/components/guest_view/browser/guest_view_manager.cc +++ b/components/guest_view/browser/guest_view_manager.cc @@ -67,6 +67,9 @@ class GuestViewManager::EmbedderRenderProcessHostObserver @@ -1260,39 +1284,20 @@ index 2b38db266f9aa1f4141c8649c021042ede4e5589..ea0387b11f4b00f87596d738c152aa4c OSStatus error = keychain_.FindGenericPassword( nullptr, strlen(service_name), service_name, strlen(account_name), account_name, &password_length, &password_data, NULL); -diff --git a/components/ssl_config/ssl_config_service_manager_pref.cc b/components/ssl_config/ssl_config_service_manager_pref.cc -index bd0ba311df28f87bf464175e5b2eb3e926c3fa83..e6c06ede9c5e77eb0769fc308388a1175de406f4 100644 ---- a/components/ssl_config/ssl_config_service_manager_pref.cc -+++ b/components/ssl_config/ssl_config_service_manager_pref.cc -@@ -293,10 +293,14 @@ void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( - net::SSLConfig* config) { - // rev_checking_enabled was formerly a user-settable preference, but now - // it is managed-only. -+#if defined(MUON_CHROMIUM_BUILD) - if (rev_checking_enabled_.IsManaged()) - config->rev_checking_enabled = rev_checking_enabled_.GetValue(); - else - config->rev_checking_enabled = false; -+#else -+ config->rev_checking_enabled = rev_checking_enabled_.GetValue(); -+#endif - config->rev_checking_required_local_anchors = - rev_checking_required_local_anchors_.GetValue(); - config->sha1_local_anchors_enabled = sha1_local_anchors_enabled_.GetValue(); -diff --git a/content/app/content_main_runner.cc b/content/app/content_main_runner.cc -index d1e6e7d28d46a4543079482d0eab6e6b9a305d70..957c5545b9fc127a5d8b6ffdab5cb1dc444b2782 100644 ---- a/content/app/content_main_runner.cc -+++ b/content/app/content_main_runner.cc -@@ -836,7 +836,7 @@ class ContentMainRunnerImpl : public ContentMainRunner { - - InitializeV8IfNeeded(command_line, process_type); +diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc +index 83e8990edf17e2cd26687eeec13ef99e25dd4f44..5b3d06b71bab28c001e82828c91ab8ae16909cf0 100644 +--- a/content/app/content_main_runner_impl.cc ++++ b/content/app/content_main_runner_impl.cc +@@ -871,7 +871,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) { + return nullptr; + })); -#if !defined(OFFICIAL_BUILD) +#if 0 #if defined(OS_WIN) bool should_enable_stack_dump = !process_type.empty(); #else -@@ -852,7 +852,7 @@ class ContentMainRunnerImpl : public ContentMainRunner { +@@ -887,7 +887,7 @@ int ContentMainRunnerImpl::Initialize(const ContentMainParams& params) { service_manager::switches::kDisableInProcessStackTraces)) { base::debug::EnableInProcessStackDumping(); } @@ -1302,10 +1307,10 @@ index d1e6e7d28d46a4543079482d0eab6e6b9a305d70..957c5545b9fc127a5d8b6ffdab5cb1dc if (delegate_) delegate_->PreSandboxStartup(); diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc -index 15994d5dada4e7092260ef57ef458157ec2e1103..b233051fb79df27fb22a605e97d56de8e5dcf802 100644 +index a0bc9305e62dceaa1179dce3166711d33e3ea254..3d5cf1f526cf928e1e658c9e525d9dc98709334d 100644 --- a/content/browser/browser_plugin/browser_plugin_guest.cc +++ b/content/browser/browser_plugin/browser_plugin_guest.cc -@@ -843,6 +843,8 @@ void BrowserPluginGuest::OnDetach(int browser_plugin_instance_id) { +@@ -833,6 +833,8 @@ void BrowserPluginGuest::OnDetach(int browser_plugin_instance_id) { } delegate_->DidDetach(); @@ -1315,10 +1320,10 @@ index 15994d5dada4e7092260ef57ef458157ec2e1103..b233051fb79df27fb22a605e97d56de8 void BrowserPluginGuest::OnDragStatusUpdate(int browser_plugin_instance_id, diff --git a/content/browser/find_request_manager.cc b/content/browser/find_request_manager.cc -index b1d214c35f075d16acfcd71576842e6b751d0697..8e9fb9fc6f5d27a106b13aad0412fc843df647ed 100644 +index 34c5307b0fa70deea728cf36c4dfbf93dc32fc66..8b0ab6f2632e6ef8e8cca6d4eaa8f95d8a0694c6 100644 --- a/content/browser/find_request_manager.cc +++ b/content/browser/find_request_manager.cc -@@ -86,6 +86,8 @@ FrameTreeNode* GetParent(FrameTreeNode* node) { +@@ -87,6 +87,8 @@ FrameTreeNode* GetParent(FrameTreeNode* node) { // The parent frame may be in another WebContents. if (node->IsMainFrame()) { auto* contents = WebContentsImpl::FromFrameTreeNode(node); @@ -1327,7 +1332,7 @@ index b1d214c35f075d16acfcd71576842e6b751d0697..8e9fb9fc6f5d27a106b13aad0412fc84 if (GuestMode::IsCrossProcessFrameGuest(contents)) { int node_id = contents->GetOuterDelegateFrameTreeNodeId(); if (node_id != FrameTreeNode::kFrameTreeNodeInvalidId) -@@ -625,6 +627,9 @@ RenderFrameHost* FindRequestManager::Traverse(RenderFrameHost* from_rfh, +@@ -651,6 +653,9 @@ RenderFrameHost* FindRequestManager::Traverse(RenderFrameHost* from_rfh, bool forward, bool matches_only, bool wrap) const { @@ -1357,10 +1362,10 @@ index d938013c90b630b94c2f4ee2daed542dbe437da0..05fbfe707db8afb0dcf4d3fa1a841c50 static_cast( storage_partition->GetDOMStorageContext()); diff --git a/content/browser/frame_host/render_frame_message_filter.cc b/content/browser/frame_host/render_frame_message_filter.cc -index 80fd7cf8957865e62186f394a318f912c6da4e20..a189c82b5a2d6ca6fdfb38c6eadffebd518999ea 100644 +index 91bf248a67a5a82eab9c5942be54465599bf397a..b2dbd9a97dce6c402f0d3f87b452613d74d2135c 100644 --- a/content/browser/frame_host/render_frame_message_filter.cc +++ b/content/browser/frame_host/render_frame_message_filter.cc -@@ -584,7 +584,7 @@ void RenderFrameMessageFilter::GetPluginsCallback( +@@ -620,7 +620,7 @@ void RenderFrameMessageFilter::GetPluginsCallback( PluginServiceFilter* filter = PluginServiceImpl::GetInstance()->GetFilter(); std::vector plugins; @@ -1370,10 +1375,10 @@ index 80fd7cf8957865e62186f394a318f912c6da4e20..a189c82b5a2d6ca6fdfb38c6eadffebd // In this loop, copy the WebPluginInfo (and do not use a reference) because // the filter might mutate it. diff --git a/content/browser/frame_host/render_widget_host_view_guest.cc b/content/browser/frame_host/render_widget_host_view_guest.cc -index 839017d8feedabd9b558f0d90bb5374ba0d50306..5c95d66f3f4c6715e220e3d8b93d2e8b0a5dbc6d 100644 +index a0bc38e7f059d5066ef0147ac9b83cbc958d7209..de59d17171b79266bc25c47ea581989a625ae3c1 100644 --- a/content/browser/frame_host/render_widget_host_view_guest.cc +++ b/content/browser/frame_host/render_widget_host_view_guest.cc -@@ -574,7 +574,14 @@ void RenderWidgetHostViewGuest::ShowDefinitionForSelection() { +@@ -594,7 +594,14 @@ void RenderWidgetHostViewGuest::ShowDefinitionForSelection() { // overlay (it will open Dictionary.app), so the target NSView need not be // specified. // https://crbug.com/152438 @@ -1389,7 +1394,7 @@ index 839017d8feedabd9b558f0d90bb5374ba0d50306..5c95d66f3f4c6715e220e3d8b93d2e8b void RenderWidgetHostViewGuest::SpeakSelection() { diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm b/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm -index 71b3c5906b61728dfad31bd743fb9f9c6c214c68..66b6951c21a06c2313ac5e7080741b9782139262 100644 +index 08d8639f6fd230eaf5fae1e0a94de504b5c76f2f..c1986c9647249d97f3c5dccf48fe90f67e3ca342 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm +++ b/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm @@ -23,7 +23,7 @@ @@ -1402,10 +1407,10 @@ index 71b3c5906b61728dfad31bd743fb9f9c6c214c68..66b6951c21a06c2313ac5e7080741b97 @end diff --git a/content/browser/renderer_host/render_widget_host_ns_view_bridge.h b/content/browser/renderer_host/render_widget_host_ns_view_bridge.h -index e0ffad96974e38133117f809f3f80b4d94f2e928..094491fc8132ceabefad99822337b0a0279bbc10 100644 +index 3761be5f730dd73662acdd016ee098d64556b09c..e3066953627059ec96ebd6b159db7251c4bd38cf 100644 --- a/content/browser/renderer_host/render_widget_host_ns_view_bridge.h +++ b/content/browser/renderer_host/render_widget_host_ns_view_bridge.h -@@ -23,6 +23,7 @@ class Rect; +@@ -31,6 +31,7 @@ enum class DomCode; namespace content { @@ -1413,9 +1418,9 @@ index e0ffad96974e38133117f809f3f80b4d94f2e928..094491fc8132ceabefad99822337b0a0 class RenderWidgetHostNSViewClient; class WebCursor; -@@ -92,6 +93,10 @@ class RenderWidgetHostNSViewBridge { - const mac::AttributedStringCoder::EncodedString& encoded_string, - gfx::Point baseline_point) = 0; +@@ -117,6 +118,10 @@ class RenderWidgetHostNSViewBridge { + // Stop intercepting keyboard events. + virtual void UnlockKeyboard() = 0; +#if !defined(MUON_CHROMIUM_BUILD) + virtual void SetTargetView(RenderWidgetHostView* target_view) = 0; @@ -1425,7 +1430,7 @@ index e0ffad96974e38133117f809f3f80b4d94f2e928..094491fc8132ceabefad99822337b0a0 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostNSViewBridge); }; diff --git a/content/browser/renderer_host/render_widget_host_ns_view_bridge.mm b/content/browser/renderer_host/render_widget_host_ns_view_bridge.mm -index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31bfd32c55 100644 +index 54b1c71bb4c6d2d792eb449cfe9d2cbd94881ffa..9b8249025e94fe3ee18f3562ab1d923266de3ff2 100644 --- a/content/browser/renderer_host/render_widget_host_ns_view_bridge.mm +++ b/content/browser/renderer_host/render_widget_host_ns_view_bridge.mm @@ -11,6 +11,9 @@ @@ -1437,8 +1442,8 @@ index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31 +#endif #include "content/common/cursors/webcursor.h" #import "skia/ext/skia_utils_mac.h" - #import "ui/base/cocoa/animation_utils.h" -@@ -50,6 +53,11 @@ class RenderWidgetHostViewNSViewBridgeLocal + #include "ui/accelerated_widget_mac/display_ca_layer_tree.h" +@@ -55,6 +58,11 @@ class RenderWidgetHostViewNSViewBridgeLocal void DisplayCursor(const WebCursor& cursor) override; void SetCursorLocked(bool locked) override; void ShowDictionaryOverlayForSelection() override; @@ -1450,7 +1455,7 @@ index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31 void ShowDictionaryOverlay( const mac::AttributedStringCoder::EncodedString& encoded_string, gfx::Point baseline_point) override; -@@ -78,6 +86,10 @@ class RenderWidgetHostViewNSViewBridgeLocal +@@ -91,6 +99,10 @@ class RenderWidgetHostViewNSViewBridgeLocal // Cached copy of the tooltip text, to avoid redundant calls. base::string16 tooltip_text_; @@ -1461,8 +1466,8 @@ index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewNSViewBridgeLocal); }; -@@ -90,6 +102,9 @@ RenderWidgetHostViewNSViewBridgeLocal::RenderWidgetHostViewNSViewBridgeLocal( - background_layer_.reset([[CALayer alloc] init]); +@@ -105,6 +117,9 @@ RenderWidgetHostViewNSViewBridgeLocal::RenderWidgetHostViewNSViewBridgeLocal( + std::make_unique(background_layer_.get()); [cocoa_view_ setLayer:background_layer_]; [cocoa_view_ setWantsLayer:YES]; +#if !defined(MUON_CHROMIUM_BUILD) @@ -1471,7 +1476,7 @@ index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31 } RenderWidgetHostViewNSViewBridgeLocal:: -@@ -268,10 +283,17 @@ void RenderWidgetHostViewNSViewBridgeLocal::ShowDictionaryOverlay( +@@ -305,10 +320,17 @@ void RenderWidgetHostViewNSViewBridgeLocal::ShowDictionaryOverlay( mac::AttributedStringCoder::Decode(&encoded_string); if ([string length] == 0) return; @@ -1492,11 +1497,11 @@ index ce3cc68af90d5b2d8be070e1a4eed3352ed50bb6..46461e13b8a26012da7a90289561ae31 } diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc -index ebf2d257e64fe80e5f95dd236e8a848efe36e721..2c60d9a60f3dc6efb55bc215a722f5baad0f4ecd 100644 +index aefe1196095598567cef2e883b52e23a95a45737..121f3ba116bdac7b058ba78228c3a1a114dc9ac2 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc -@@ -1610,8 +1610,23 @@ bool RenderWidgetHostViewAura::TransformPointToLocalCoordSpace( - !delegated_frame_host_->TransformPointToLocalCoordSpace( +@@ -1640,8 +1640,23 @@ bool RenderWidgetHostViewAura::TransformPointToLocalCoordSpaceLegacy( + !delegated_frame_host_->TransformPointToLocalCoordSpaceLegacy( point_in_pixels, original_surface, transformed_point)) return false; - *transformed_point = @@ -1522,10 +1527,10 @@ index ebf2d257e64fe80e5f95dd236e8a848efe36e721..2c60d9a60f3dc6efb55bc215a722f5ba } diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm -index 8ee84cdafbde9114cf6ef5036b214f81184fdc44..1bd0b9bf90bee8ee0ca586a477985025fa420fb1 100644 +index d86576cc36ac0fe922623618b0d84346ccc5ec8e..3733a3074b9bbb1139574b9e7f6435fb205bf0f5 100644 --- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm +++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm -@@ -178,6 +178,12 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -179,6 +179,12 @@ void ExtractUnderlines(NSAttributedString* string, } // namespace @@ -1538,7 +1543,7 @@ index 8ee84cdafbde9114cf6ef5036b214f81184fdc44..1bd0b9bf90bee8ee0ca586a477985025 // These are not documented, so use only after checking -respondsToSelector:. @interface NSApplication (UndocumentedSpeechMethods) - (void)speakString:(NSString*)string; -@@ -355,7 +361,14 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -363,7 +369,14 @@ void ExtractUnderlines(NSAttributedString* string, } - (BOOL)acceptsFirstMouse:(NSEvent*)theEvent { @@ -1553,7 +1558,7 @@ index 8ee84cdafbde9114cf6ef5036b214f81184fdc44..1bd0b9bf90bee8ee0ca586a477985025 } - (void)setCloseOnDeactivate:(BOOL)b { -@@ -618,8 +631,10 @@ void ExtractUnderlines(NSAttributedString* string, +@@ -650,8 +663,10 @@ void ExtractUnderlines(NSAttributedString* string, if (EventIsReservedBySystem(theEvent)) return; @@ -1564,8 +1569,8 @@ index 8ee84cdafbde9114cf6ef5036b214f81184fdc44..1bd0b9bf90bee8ee0ca586a477985025 if (eventType == NSFlagsChanged) { // Ignore NSFlagsChanged events from the NumLock and Fn keys as -@@ -663,6 +678,12 @@ void ExtractUnderlines(NSAttributedString* string, - bool shouldAutohideCursor = textInputType != ui::TEXT_INPUT_TYPE_NONE && +@@ -698,6 +713,12 @@ void ExtractUnderlines(NSAttributedString* string, + bool shouldAutohideCursor = textInputType_ != ui::TEXT_INPUT_TYPE_NONE && eventType == NSKeyDown && !(modifierFlags & NSCommandKeyMask); +#ifndef MUON_CHROMIUM_BUILD @@ -1578,10 +1583,10 @@ index 8ee84cdafbde9114cf6ef5036b214f81184fdc44..1bd0b9bf90bee8ee0ca586a477985025 // We only handle key down events and just simply forward other events. if (eventType != NSKeyDown) { diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h -index d4b8dadb129c8af19b306e591ae1913228d7f522..7ed24becd075a2754901d2188d55da28512ae516 100644 +index 656807e405af36dc7d34ab0b6a0cff265cf0c55a..ce4dadb867841e6cb4817e99536e62342a208a50 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h -@@ -103,6 +103,9 @@ class CONTENT_EXPORT RenderWidgetHostViewMac +@@ -106,6 +106,9 @@ class CONTENT_EXPORT RenderWidgetHostViewMac gfx::Rect GetViewBounds() const override; void SetActive(bool active) override; void ShowDefinitionForSelection() override; @@ -1589,13 +1594,13 @@ index d4b8dadb129c8af19b306e591ae1913228d7f522..7ed24becd075a2754901d2188d55da28 + void ShowDefinitionForSelection(RenderWidgetHostView* target_view) override; +#endif void SpeakSelection() override; - void SetBackgroundColor(SkColor color) override; - SkColor background_color() const override; + void SetNeedsBeginFrames(bool needs_begin_frames) override; + void GetScreenInfo(ScreenInfo* screen_info) const override; diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm -index 6a161f0f36c6ebb400a0785a303fd40f8c58e9e7..df8a49c604c26dded69de0e14cd424d69f8969ba 100644 +index c8bfdb794cd399b8da72c2cd07876460cd2f2516..938c8a3a7a9ff36f1ea59faabea3011cb5d6aa9f 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm -@@ -1085,6 +1085,10 @@ void RenderWidgetHostViewMac::SetActive(bool active) { +@@ -1204,6 +1204,10 @@ void RenderWidgetHostViewMac::SetActive(bool active) { if (host()) { host()->SetActive(active); if (active) { @@ -1606,7 +1611,7 @@ index 6a161f0f36c6ebb400a0785a303fd40f8c58e9e7..df8a49c604c26dded69de0e14cd424d6 if (HasFocus()) host()->Focus(); } else { -@@ -1102,6 +1106,14 @@ void RenderWidgetHostViewMac::ShowDefinitionForSelection() { +@@ -1221,6 +1225,14 @@ void RenderWidgetHostViewMac::ShowDefinitionForSelection() { ns_view_bridge_->ShowDictionaryOverlayForSelection(); } @@ -1618,22 +1623,22 @@ index 6a161f0f36c6ebb400a0785a303fd40f8c58e9e7..df8a49c604c26dded69de0e14cd424d6 +} +#endif + - void RenderWidgetHostViewMac::SetBackgroundColor(SkColor color) { + void RenderWidgetHostViewMac::UpdateBackgroundColor() { // This is called by the embedding code prior to the first frame appearing, // to set a reasonable color to show before the web content generates its diff --git a/content/browser/renderer_host/render_widget_targeter.cc b/content/browser/renderer_host/render_widget_targeter.cc -index 9e0e5b96b8e38a6c29e601d091941dad28eec900..1463daf2462cfb3d8208a91f3fb3b0f15e6710ff 100644 +index c5f44fc0abf56b3a8daa297a11774005b32f06a7..414ab6d8086f59096074abc9ea4945bbfddca085 100644 --- a/content/browser/renderer_host/render_widget_targeter.cc +++ b/content/browser/renderer_host/render_widget_targeter.cc -@@ -5,6 +5,7 @@ - #include "content/browser/renderer_host/render_widget_targeter.h" +@@ -6,6 +6,7 @@ #include "base/metrics/histogram_functions.h" + #include "base/metrics/histogram_macros.h" +#include "content/browser/renderer_host/cursor_manager.h" #include "content/browser/renderer_host/input/one_shot_timeout_monitor.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" -@@ -149,7 +150,13 @@ void RenderWidgetTargeter::FindTargetAndDispatch( +@@ -154,7 +155,13 @@ void RenderWidgetTargeter::FindTargetAndDispatch( // TODO(kenrb, wjmaclean): Asynchronous hit tests don't work properly with // GuestViews, so rely on the synchronous result. // See https://crbug.com/802378. @@ -1648,9 +1653,9 @@ index 9e0e5b96b8e38a6c29e601d091941dad28eec900..1463daf2462cfb3d8208a91f3fb3b0f1 // TODO(kenrb, sadrul): When all event types support asynchronous hit // testing, we should be able to have FindTargetSynchronously return the // view and location to use for the renderer hit test query. -@@ -161,6 +168,9 @@ void RenderWidgetTargeter::FindTargetAndDispatch( - } else { - FoundTarget(root_view, target, *event_ptr, latency, result.target_location); +@@ -167,6 +174,9 @@ void RenderWidgetTargeter::FindTargetAndDispatch( + FoundTarget(root_view, target, *event_ptr, latency, result.target_location, + result.latched_target); } + if (root_view->GetCursorManager() && + event.GetType() == blink::WebInputEvent::kMouseMove) @@ -1659,18 +1664,21 @@ index 9e0e5b96b8e38a6c29e601d091941dad28eec900..1463daf2462cfb3d8208a91f3fb3b0f1 void RenderWidgetTargeter::ViewWillBeDestroyed(RenderWidgetHostViewBase* view) { diff --git a/content/browser/storage_partition_impl_map.h b/content/browser/storage_partition_impl_map.h -index ce0951bacd4dab08db92f6a87087279fcc7e4f09..d0195f20c4f05b406521bbe6e29a792454246713 100644 +index ce0951bacd4dab08db92f6a87087279fcc7e4f09..10c7976815635c945079344e63ecf7f9f9932eaf 100644 --- a/content/browser/storage_partition_impl_map.h +++ b/content/browser/storage_partition_impl_map.h -@@ -21,6 +21,7 @@ namespace base { - class FilePath; +@@ -22,6 +22,10 @@ class FilePath; class SequencedTaskRunner; } // namespace base -+namespace brave {class BraveBrowserContext;} // namespace brave ++namespace brave { ++class BraveBrowserContext; ++} // namespace brave ++ namespace content { -@@ -64,6 +65,8 @@ class CONTENT_EXPORT StoragePartitionImplMap + class BrowserContext; +@@ -64,6 +68,8 @@ class CONTENT_EXPORT StoragePartitionImplMap FRIEND_TEST_ALL_PREFIXES(StoragePartitionConfigTest, OperatorLess); FRIEND_TEST_ALL_PREFIXES(StoragePartitionImplMapTest, GarbageCollect); @@ -1693,10 +1701,10 @@ index 39b89cd36c327f27da7f687c3179ace964fc6d63..9140ff961245e4e4e222986e48297906 process_->Launch(std::make_unique( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 942a35d355acc1cff8762c1e5a4961c6f022f4b2..182887b23f1b8b969cf68302673a7f94139b7ba3 100644 +index 093e585d7e9812fca1b5266d809e6a5ff4379de3..a797e6694e204af68f66f17815aa83321ee0a87f 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -1758,8 +1758,9 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -1774,8 +1774,9 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { // This is set before initializing the render manager since // RenderFrameHostManager::Init calls back into us via its delegate to ask if // it should be hidden. @@ -1708,7 +1716,7 @@ index 942a35d355acc1cff8762c1e5a4961c6f022f4b2..182887b23f1b8b969cf68302673a7f94 // The routing ids must either all be set or all be unset. DCHECK((params.routing_id == MSG_ROUTING_NONE && -@@ -2354,7 +2355,8 @@ void WebContentsImpl::CreateNewWindow( +@@ -2381,7 +2382,8 @@ void WebContentsImpl::CreateNewWindow( DCHECK(!params.opener_suppressed || render_view_route_id == MSG_ROUTING_NONE); scoped_refptr site_instance = @@ -1719,10 +1727,10 @@ index 942a35d355acc1cff8762c1e5a4961c6f022f4b2..182887b23f1b8b969cf68302673a7f94 : source_site_instance; diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm -index 6a9ee15776b6b4ec988cb9717a3ce71ac8dd9057..89d5bc930f04fcc06239149679dc49d771724c4f 100644 +index 00b2d2a729da28f55cd0bbbe8ab923da9462e093..6ebef5c88c12cec86fcf8e95a123295f0e0880a3 100644 --- a/content/browser/web_contents/web_contents_view_mac.mm +++ b/content/browser/web_contents/web_contents_view_mac.mm -@@ -584,6 +584,7 @@ void WebContentsViewMac::CloseTab() { +@@ -596,6 +596,7 @@ void WebContentsViewMac::SetParentUiLayer(ui::Layer* parent_ui_layer) { endedAt:(NSPoint)screenPoint operation:(NSDragOperation)operation { [dragSource_ endDragAt:screenPoint operation:operation]; @@ -1802,22 +1810,22 @@ index 0a6b0176a982782fd1472f607f811dd6c183c3fe..052ca73677cad3b10b494bf2ab823a04 (*map_type)[key] = value; ResetKeyIterator(); diff --git a/content/public/app/mojo/content_renderer_manifest.json b/content/public/app/mojo/content_renderer_manifest.json -index 9c5f03aad4269e814e11523c6a80f5d179c08e93..e56b9626d24ec403ae8f65b950d9f1331e385f32 100644 +index 71bc81d6183df0dbd118e9c91a88c39ec14a9b60..c2917293b9f58df1e80725217c407eada67d7f16 100644 --- a/content/public/app/mojo/content_renderer_manifest.json +++ b/content/public/app/mojo/content_renderer_manifest.json -@@ -49,6 +49,7 @@ +@@ -48,6 +48,7 @@ "navigation:frame": { "provides": { "browser": [ -+ "autofill::mojom::AutofillAgent", - "blink::mojom::AppBannerController", - "blink::mojom::EngagementClient", - "blink::mojom::InstallationService", ++ "autofill.mojom.AutofillAgent", + "blink.mojom.AppBannerController", + "blink.mojom.EngagementClient", + "blink.mojom.InstallationService", diff --git a/content/public/browser/render_widget_host_view.h b/content/public/browser/render_widget_host_view.h -index 1ced1c489b4d88d392038cc203d043c85203bb6d..b4d490f537e835d8dc6ed57824bee3a44b5230e4 100644 +index 0f2bbdcf4b2b25f938fde6c8433390f6adc1d384..45fc9e5353dcdaa2b368e62981f0597f25c617c5 100644 --- a/content/public/browser/render_widget_host_view.h +++ b/content/public/browser/render_widget_host_view.h -@@ -248,6 +248,9 @@ class CONTENT_EXPORT RenderWidgetHostView { +@@ -252,6 +252,9 @@ class CONTENT_EXPORT RenderWidgetHostView { // Brings up the dictionary showing a definition for the selected text. virtual void ShowDefinitionForSelection() = 0; @@ -1828,10 +1836,10 @@ index 1ced1c489b4d88d392038cc203d043c85203bb6d..b4d490f537e835d8dc6ed57824bee3a4 // Tells the view to speak the currently selected text. virtual void SpeakSelection() = 0; diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc -index c5fe59a523776ab12f23a58350ab816c22bd3495..2ae931624a84d2bd20769759e952951a31ae1113 100644 +index d64895137a73fe0bccc29e8081e0a16c4657a86f..58befaf094e95827a5126e0abfa55d30a9e13340 100644 --- a/content/renderer/browser_plugin/browser_plugin.cc +++ b/content/renderer/browser_plugin/browser_plugin.cc -@@ -104,6 +104,7 @@ BrowserPlugin::BrowserPlugin( +@@ -105,6 +105,7 @@ BrowserPlugin::BrowserPlugin( delegate_->SetElementInstanceID(browser_plugin_instance_id_); enable_surface_synchronization_ = features::IsSurfaceSynchronizationEnabled(); @@ -1839,12 +1847,12 @@ index c5fe59a523776ab12f23a58350ab816c22bd3495..2ae931624a84d2bd20769759e952951a } BrowserPlugin::~BrowserPlugin() { -@@ -218,7 +219,12 @@ void BrowserPlugin::Detach() { +@@ -219,7 +220,12 @@ void BrowserPlugin::Detach() { attached_ = false; guest_crashed_ = false; -- web_layer_ = nullptr; -+ // web_layer_ = nullptr; +- embedded_layer_ = nullptr; ++ // embedded_layer_ = nullptr; + compositing_helper_->SetPrimarySurfaceId( + viz::SurfaceId(), screen_space_rect().size(), + cc::DeadlinePolicy::UseDefaultDeadline()); @@ -1853,7 +1861,7 @@ index c5fe59a523776ab12f23a58350ab816c22bd3495..2ae931624a84d2bd20769759e952951a BrowserPluginManager::Get()->Send( new BrowserPluginHostMsg_Detach(browser_plugin_instance_id_)); -@@ -625,8 +631,6 @@ blink::WebInputEventResult BrowserPlugin::HandleInputEvent( +@@ -654,8 +660,6 @@ blink::WebInputEventResult BrowserPlugin::HandleInputEvent( if (blink::WebInputEvent::IsGestureEventType(event.GetType())) { auto gesture_event = static_cast(event); @@ -1892,10 +1900,10 @@ index a9a739e4f9a707faaf195f0747b560197b97a1be..2c34b71205886e239151ba56e5c8f7f8 const char kLocationString[] = "location"; const char kLatitudeString[] = "lat"; diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn -index e1dcd075672fa1a92c88cf60cee70ef263da7be7..4c11e78cede0d3e688677087330ddcff2f7a183d 100644 +index 40b145b62c4ec608197883e4b9a215dcf1a578ee..7d7dfc7166b57a0f60f40c53517e12c611e2a138 100644 --- a/extensions/browser/BUILD.gn +++ b/extensions/browser/BUILD.gn -@@ -325,8 +325,8 @@ jumbo_source_set("browser_sources") { +@@ -329,8 +329,8 @@ jumbo_source_set("browser_sources") { "service_worker_task_queue.h", "service_worker_task_queue_factory.cc", "service_worker_task_queue_factory.h", @@ -1923,10 +1931,10 @@ index 3d39acbf3ac8333ea9bdc750f163e147615f00b8..dea52ee7434646c9efafe5750b2ae425 ProcessManager::Get(context)->GetSiteInstanceForURL( Extension::GetBaseURLFromExtensionId(extension_id)); diff --git a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc -index 1661c0c65821de8e8e8ac5dbabaa582590c8f0cb..93340b7ce3db2718f64c983a2f68827167f07ede 100644 +index ffa79cf2918bc0c651448cb27bebcb780f9c4e6c..5f78f790bccf27fc2349d95324cf1a4f314827a1 100644 --- a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc +++ b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc -@@ -56,8 +56,10 @@ void ExtensionsGuestViewManagerDelegate::DispatchEvent( +@@ -63,8 +63,10 @@ void ExtensionsGuestViewManagerDelegate::DispatchEvent( // extensions::events::HistogramValue as an argument. events::HistogramValue histogram_value = guest_view_events::GetEventHistogramValue(event_name); @@ -1938,10 +1946,10 @@ index 1661c0c65821de8e8e8ac5dbabaa582590c8f0cb..93340b7ce3db2718f64c983a2f688271 content::WebContents* owner = guest->owner_web_contents(); if (!owner) diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc -index 122bd3cfed8e127d4b0194451601369ae5902a36..e1661fc1b9902a973188165f971b7bbd5439d908 100644 +index 8611c34be99326fa50f7cc0469dd02051399231b..67f768723be251820f6680feb243e8c8289d3450 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc -@@ -307,7 +307,7 @@ std::string WebViewGuest::GetPartitionID( +@@ -306,7 +306,7 @@ std::string WebViewGuest::GetPartitionID( } // static @@ -1951,7 +1959,7 @@ index 122bd3cfed8e127d4b0194451601369ae5902a36..e1661fc1b9902a973188165f971b7bbd // static int WebViewGuest::GetOrGenerateRulesRegistryID( diff --git a/extensions/common/BUILD.gn b/extensions/common/BUILD.gn -index b3559030e96b0b1e740ab8272061608d6f8ca4b3..200cffddfd496bafc453380697b72ac19fa2de66 100644 +index cb4a7414da8542af079dff51be69c5a837f0f4d4..2371bab4b987edfa682fed920aebd25ffab8dcdb 100644 --- a/extensions/common/BUILD.gn +++ b/extensions/common/BUILD.gn @@ -313,6 +313,7 @@ if (enable_extensions) { @@ -1963,10 +1971,10 @@ index b3559030e96b0b1e740ab8272061608d6f8ca4b3..200cffddfd496bafc453380697b72ac1 "//device/bluetooth", "//device/usb", diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json -index 5c57352617aaaf5b79195fe5e499d35636f98ba9..6ed27bb45ceb781d6a217d54244e417f6dbc3fe1 100644 +index 702788438797608165c3ee7c5f8ac1d5574d2698..718445ad38a6d74d20ca5ef50da693c9ff8cbb32 100644 --- a/extensions/common/api/_api_features.json +++ b/extensions/common/api/_api_features.json -@@ -189,7 +189,10 @@ +@@ -193,7 +193,10 @@ { "internal": true, "channel": "stable", @@ -1978,15 +1986,15 @@ index 5c57352617aaaf5b79195fe5e499d35636f98ba9..6ed27bb45ceb781d6a217d54244e417f }, { "internal": true, "channel": "stable", -@@ -556,6 +559,7 @@ +@@ -561,6 +564,7 @@ "internal": true, "contexts": ["webui"], "matches": [ + "chrome://brave/*", "chrome://chrome-signin/*", + "chrome://home/*", "chrome://media-router/*", - "chrome://mobilesetup/*", -@@ -578,6 +582,14 @@ +@@ -585,6 +589,14 @@ "chrome://oobe/*", "chrome://assistant-optin/*" ] @@ -2001,14 +2009,14 @@ index 5c57352617aaaf5b79195fe5e499d35636f98ba9..6ed27bb45ceb781d6a217d54244e417f }], "webViewRequest": [{ "dependencies": ["permission:webview"], -@@ -586,6 +598,7 @@ +@@ -593,6 +605,7 @@ "channel": "stable", "contexts": ["webui"], "matches": [ + "chrome://brave/*", "chrome://chrome-signin/*", + "chrome://home/*", "chrome://media-router/*", - "chrome://mobilesetup/*", diff --git a/extensions/renderer/module_system.cc b/extensions/renderer/module_system.cc index a83c07e09f7217bf0a02a13edba1cdc1cf6bd973..9df5031df2f275fd3e898f1a3a6a41ce7fb7cc3e 100644 --- a/extensions/renderer/module_system.cc @@ -2053,10 +2061,10 @@ index d985c0df7a9cb9543003ac32751f3fc80633248a..02bd6daf7e48de8345ce3be506e02110 proto.attachedCallback = function() { diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc -index 45334f8bb6b461b2d7c1ba7ff5bd73a6ea735420..28cb4a29b53fb1d4dcedcaca9e36798a69fad252 100644 +index 8fda8274d5dfe61e8d7e6bec9eb24719adb69e3a..a17609ac5f5dcc175d0abb758ac9729a2cb33f6a 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -353,7 +353,7 @@ std::string GetEffectiveAutoplayPolicy(const base::CommandLine& command_line) { +@@ -378,7 +378,7 @@ std::string GetEffectiveAutoplayPolicy(const base::CommandLine& command_line) { return switches::autoplay::kDocumentUserActivationRequiredPolicy; // The default value is platform dependent. @@ -2066,13 +2074,13 @@ index 45334f8bb6b461b2d7c1ba7ff5bd73a6ea735420..28cb4a29b53fb1d4dcedcaca9e36798a #else return switches::autoplay::kNoUserGestureRequiredPolicy; diff --git a/net/BUILD.gn b/net/BUILD.gn -index a2d700e2ae97176d60ca0367f01677e44c7e609c..54c8b9db9673abddaa47d0799f3672cda0783be3 100644 +index 9d59189d80aea8f99b73020f36a578a96667af37..30b01577e5f01ba1d6f33a14c811363d3b0eea2c 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -356,6 +356,10 @@ component("net") { - "ssl/ssl_server_config.h", - "ssl/token_binding.cc", +@@ -355,6 +355,10 @@ component("net") { "ssl/token_binding.h", + "third_party/quic/core/quic_error_codes.cc", + "third_party/quic/core/quic_error_codes.h", + # muon override + "//electron/chromium_src/net/base/host_port_pair_auth.cc", + "//electron/chromium_src/net/base/url_auth_util.cc", @@ -2211,10 +2219,10 @@ index e26c7d78b7d379dd010ba6ac6afdf494ecd5c563..3e827a41f18577b1f1f4f9744cfab83f } diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc -index 3802937bc0c472cb72d38958ccbe9d5b25da6cbb..79f05f7f57f2547b50c9755dd363ab478a4c5ee8 100644 +index 5177ef21fdfe0ca4e01bc7551f081380bcaa98ee..82fa14fbd64344dcaf1952b22ac3f558e2e6f613 100644 --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -760,6 +760,10 @@ TransportSecurityState::TransportSecurityState() +@@ -761,6 +761,10 @@ TransportSecurityState::TransportSecurityState() enable_static_pins_ = false; enable_static_expect_ct_ = false; #endif @@ -2226,10 +2234,10 @@ index 3802937bc0c472cb72d38958ccbe9d5b25da6cbb..79f05f7f57f2547b50c9755dd363ab47 } diff --git a/net/log/net_log_event_type_list.h b/net/log/net_log_event_type_list.h -index 596c35c5be6a443a33d1b36587a34ef58debad68..583ff6dd9abeb39dd7e6bed43caf323ba299d838 100644 +index 79f3590df116ba98f0778a5a3f523d311952d86c..d700eb8572eba2361dee83fe0d097d0df2043a3e 100644 --- a/net/log/net_log_event_type_list.h +++ b/net/log/net_log_event_type_list.h -@@ -2115,6 +2115,12 @@ EVENT_TYPE(SOCKS5_GREET_WRITE) +@@ -2113,6 +2113,12 @@ EVENT_TYPE(SOCKS5_GREET_WRITE) // The time spent waiting for the "greeting" response from the SOCKS server. EVENT_TYPE(SOCKS5_GREET_READ) @@ -2243,10 +2251,10 @@ index 596c35c5be6a443a33d1b36587a34ef58debad68..583ff6dd9abeb39dd7e6bed43caf323b EVENT_TYPE(SOCKS5_HANDSHAKE_WRITE) diff --git a/net/socket/socks5_client_socket.cc b/net/socket/socks5_client_socket.cc -index 6b436878f780c0307f3a5508aa5909ad4ce7a23f..8f05c300becbe477c224d803934d60d46f158685 100644 +index 784bcef533288d1eced7daa5b470b8d99550cd98..490766ba173a5f15f618a8fcdd0de8bfa8c5328d 100644 --- a/net/socket/socks5_client_socket.cc +++ b/net/socket/socks5_client_socket.cc -@@ -256,6 +256,9 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) { +@@ -241,6 +241,9 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) { net_log_.EndEventWithNetErrorCode(NetLogEventType::SOCKS5_GREET_READ, rv); break; @@ -2256,7 +2264,7 @@ index 6b436878f780c0307f3a5508aa5909ad4ce7a23f..8f05c300becbe477c224d803934d60d4 case STATE_HANDSHAKE_WRITE: DCHECK_EQ(OK, rv); net_log_.BeginEvent(NetLogEventType::SOCKS5_HANDSHAKE_WRITE); -@@ -285,8 +288,6 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) { +@@ -270,8 +273,6 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) { return rv; } @@ -2265,7 +2273,7 @@ index 6b436878f780c0307f3a5508aa5909ad4ce7a23f..8f05c300becbe477c224d803934d60d4 int SOCKS5ClientSocket::DoGreetWrite() { // Since we only have 1 byte to send the hostname length in, if the // URL has a hostname longer than 255 characters we can't send it. -@@ -296,8 +297,12 @@ int SOCKS5ClientSocket::DoGreetWrite() { +@@ -281,8 +282,12 @@ int SOCKS5ClientSocket::DoGreetWrite() { } if (buffer_.empty()) { @@ -2280,7 +2288,7 @@ index 6b436878f780c0307f3a5508aa5909ad4ce7a23f..8f05c300becbe477c224d803934d60d4 bytes_sent_ = 0; } -@@ -356,14 +361,32 @@ int SOCKS5ClientSocket::DoGreetReadComplete(int result) { +@@ -341,14 +346,32 @@ int SOCKS5ClientSocket::DoGreetReadComplete(int result) { NetLog::IntCallback("version", buffer_[0])); return ERR_SOCKS_CONNECTION_FAILED; } @@ -2316,10 +2324,10 @@ index 6b436878f780c0307f3a5508aa5909ad4ce7a23f..8f05c300becbe477c224d803934d60d4 } diff --git a/net/socket/socks5_client_socket.h b/net/socket/socks5_client_socket.h -index 364ac53391d67773ce967be9dc48ccf335156478..19e6d9b9e946b10d584589aa5d443701deed4f03 100644 +index b6e59ae6b07823087e44ffc40fb7d2d54c6a7c3e..98ee500609b2a72970387324a09da102b7230c14 100644 --- a/net/socket/socks5_client_socket.h +++ b/net/socket/socks5_client_socket.h -@@ -19,6 +19,7 @@ +@@ -20,6 +20,7 @@ #include "net/base/net_export.h" #include "net/dns/host_resolver.h" #include "net/log/net_log_with_source.h" @@ -2327,7 +2335,7 @@ index 364ac53391d67773ce967be9dc48ccf335156478..19e6d9b9e946b10d584589aa5d443701 #include "net/socket/stream_socket.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "url/gurl.h" -@@ -80,11 +81,14 @@ class NET_EXPORT_PRIVATE SOCKS5ClientSocket : public StreamSocket { +@@ -79,11 +80,14 @@ class NET_EXPORT_PRIVATE SOCKS5ClientSocket : public StreamSocket { int GetLocalAddress(IPEndPoint* address) const override; private: @@ -2342,7 +2350,7 @@ index 364ac53391d67773ce967be9dc48ccf335156478..19e6d9b9e946b10d584589aa5d443701 STATE_HANDSHAKE_WRITE, STATE_HANDSHAKE_WRITE_COMPLETE, STATE_HANDSHAKE_READ, -@@ -119,6 +123,14 @@ class NET_EXPORT_PRIVATE SOCKS5ClientSocket : public StreamSocket { +@@ -118,6 +122,14 @@ class NET_EXPORT_PRIVATE SOCKS5ClientSocket : public StreamSocket { int DoGreetReadComplete(int result); int DoGreetWrite(); int DoGreetWriteComplete(int result); @@ -2358,7 +2366,7 @@ index 364ac53391d67773ce967be9dc48ccf335156478..19e6d9b9e946b10d584589aa5d443701 // Writes the SOCKS handshake buffer into |handshake| // and return OK on success. diff --git a/net/socket/socks_client_socket_pool.cc b/net/socket/socks_client_socket_pool.cc -index 0e16d7eecb8a2aa7e7403788c888849c1ba4db79..4c5ee5dab477f8e8e39276f1466bc8a9253b530d 100644 +index 2dad2733466a194da7898919604ebf4dcb463d74..30cb9d1955a034d2a6bcec97a2a286589881f310 100644 --- a/net/socket/socks_client_socket_pool.cc +++ b/net/socket/socks_client_socket_pool.cc @@ -16,7 +16,7 @@ @@ -2398,7 +2406,7 @@ index 389315a25d7da30d71b59e3803ab795bc4c18e1c..79797fe7e674f9f6d2a65de542f262a9 // |buf_size| bytes into |buf|. // Possible return values: diff --git a/services/service_manager/sandbox/win/sandbox_win.cc b/services/service_manager/sandbox/win/sandbox_win.cc -index 50430a8e2f8fc30e08412e75299be7d4ca275252..b65147fc394d96a0557f1987a4f4e8dc14328b44 100644 +index 197090f0f5001a23798ce08a6cba6332f100c720..08695457c8b4dc074d1e964a99e2447929b2a05e 100644 --- a/services/service_manager/sandbox/win/sandbox_win.cc +++ b/services/service_manager/sandbox/win/sandbox_win.cc @@ -827,6 +827,9 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess( @@ -2425,10 +2433,10 @@ index 90f13baf5daa216c0832b39137ba87f60aa2ccd2..643caf4e6825e3da6678af6a1a981c42 bool ShouldSelectReplacement() const { diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 580b48c703eee1d4389b875ece6abcdfe1b607a0..7b8111ec1b4a61bc6f483a7c57079f395834408d 100644 +index 80ba4c18ebc9811a8f6ac6dc706ceef6404ebb5f..86625911824f3b40c300f18db7d9bf1928981183 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3224,6 +3224,7 @@ void WebViewImpl::DidCloseContextMenu() { +@@ -3196,6 +3196,7 @@ void WebViewImpl::DidCloseContextMenu() { LocalFrame* frame = page_->GetFocusController().FocusedFrame(); if (frame) frame->Selection().SetCaretBlinkingSuspended(false); @@ -2437,7 +2445,7 @@ index 580b48c703eee1d4389b875ece6abcdfe1b607a0..7b8111ec1b4a61bc6f483a7c57079f39 void WebViewImpl::HidePopups() { diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc -index b46d047161d41aae70b8485a2b95a38bbb8c3e4d..3366a0caf800f86898e8a444fad314a5a005b73e 100644 +index 2b382dc0094ab2a21c3f46f4ecabbb9acb6e89b8..47c995d35672a69168712b05204d75633af4789d 100644 --- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc @@ -341,6 +341,12 @@ bool AutoplayPolicy::IsGestureNeededForPlaybackIfPendingUserGestureIsLocked() @@ -2453,7 +2461,7 @@ index b46d047161d41aae70b8485a2b95a38bbb8c3e4d..3366a0caf800f86898e8a444fad314a5 // We want to allow muted video to autoplay if: // - the flag is enabled; // - Data Saver is not enabled; -@@ -357,6 +363,12 @@ bool AutoplayPolicy::IsGestureNeededForPlaybackIfPendingUserGestureIsLocked() +@@ -360,6 +366,12 @@ bool AutoplayPolicy::IsGestureNeededForPlaybackIfPendingUserGestureIsLocked() IsAutoplayAllowedPerSettings()) { return false; } @@ -2512,7 +2520,7 @@ index 5d115f0cc12f124d57df088b6b1add05e47e7b68..af49abf95e2268fdcc49cc60d988772b MHTMLArchive* Archive() const override; diff --git a/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc b/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc -index a05468a6fd0cefa3f9ad6ab478427db7a64fe06d..0d057af72cc40aba676e97921d71cd57396f7a85 100644 +index 108efb6d07e77b43494788d0dbe2647cb8038f1c..62b5fbca4822328343ef1c14b040ec1af7baf8b8 100644 --- a/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc +++ b/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc @@ -49,7 +49,8 @@ v8::Isolate* MainThreadIsolate() { @@ -2526,11 +2534,11 @@ index a05468a6fd0cefa3f9ad6ab478427db7a64fe06d..0d057af72cc40aba676e97921d71cd57 static void MicrotasksCompletedCallback(v8::Isolate* isolate) { diff --git a/third_party/boringssl/BUILD.generated.gni b/third_party/boringssl/BUILD.generated.gni -index 8a29de654c00602ec79913b86c33c7c7b32d4a81..e60d66b96961291f36b0a13e1cdd8fb6f543bc24 100644 +index 65148fd17deb60813838de1d994c0b106f6cd737..d83c74331ee6e624b5600bc2408149fbc274a958 100644 --- a/third_party/boringssl/BUILD.generated.gni +++ b/third_party/boringssl/BUILD.generated.gni -@@ -377,6 +377,24 @@ ssl_sources = [ - "src/ssl/tls_record.cc", +@@ -387,6 +387,24 @@ ssl_headers = [ + "src/include/openssl/tls1.h", ] +decrepit_sources = [ @@ -2555,7 +2563,7 @@ index 8a29de654c00602ec79913b86c33c7c7b32d4a81..e60d66b96961291f36b0a13e1cdd8fb6 "ios-aarch64/crypto/chacha/chacha-armv8.S", "ios-aarch64/crypto/fipsmodule/aesv8-armx64.S", diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn -index 64de69286bc96b6ae2f290b49b9c1b1f372609ba..a9aea42b087361e0f7abdee90b8a1e9fef80a5d1 100644 +index d31a9f29fa9c12e753708b2a1e75c33b70924300..4977f3268d04c2d3fd23c93e361a7f29be5113ed 100644 --- a/third_party/boringssl/BUILD.gn +++ b/third_party/boringssl/BUILD.gn @@ -44,7 +44,7 @@ config("no_asm_config") { @@ -2564,9 +2572,9 @@ index 64de69286bc96b6ae2f290b49b9c1b1f372609ba..a9aea42b087361e0f7abdee90b8a1e9f -all_sources = crypto_sources + ssl_sources +all_sources = crypto_sources + ssl_sources + decrepit_sources + all_headers = crypto_headers + ssl_headers # Windows' assembly is built with Yasm. The other platforms use the platform - # assembler. diff --git a/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc b/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc index 715c533a2756506cc3151739fe458efd2dc5323d..30608c6852d0845566f2a05d620f6c86a5560161 100644 --- a/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc @@ -2584,10 +2592,10 @@ index 715c533a2756506cc3151739fe458efd2dc5323d..30608c6852d0845566f2a05d620f6c86 database_->SkipReportUpload( report.uuid, Metrics::CrashSkippedReason::kUploadThrottled); diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc -index 46713d7170a66e38c2ecb21b7b7d914c9dcac872..758f3aa16efea24e9f00af8e1c4e3f34b60a776f 100644 +index 00590f09d91f0f2b5226ba5e59d866cc47fb347e..fe3790e6cd3329c8eab8651592188eccc77dec98 100644 --- a/ui/views/controls/menu/menu_controller.cc +++ b/ui/views/controls/menu/menu_controller.cc -@@ -616,6 +616,7 @@ bool MenuController::OnMouseDragged(SubmenuView* source, +@@ -619,6 +619,7 @@ bool MenuController::OnMouseDragged(SubmenuView* source, return true; } MenuItemView* mouse_menu = NULL; @@ -2595,7 +2603,7 @@ index 46713d7170a66e38c2ecb21b7b7d914c9dcac872..758f3aa16efea24e9f00af8e1c4e3f34 if (part.type == MenuPart::MENU_ITEM) { // If there is no menu target, but a submenu target, then we are interacting // with an empty menu item within a submenu. These cannot become selection -@@ -640,7 +641,10 @@ bool MenuController::OnMouseDragged(SubmenuView* source, +@@ -643,7 +644,10 @@ bool MenuController::OnMouseDragged(SubmenuView* source, } } } diff --git a/patches/third_party/boringssl/src/boringssl.patch b/patches/third_party/boringssl/src/boringssl.patch index c1b2e1c9a..b60591575 100644 --- a/patches/third_party/boringssl/src/boringssl.patch +++ b/patches/third_party/boringssl/src/boringssl.patch @@ -1,5 +1,5 @@ diff --git a/crypto/cipher_extra/cipher_extra.c b/crypto/cipher_extra/cipher_extra.c -index fc8e24b65c4c6f379072f3756703d318747e9526..106f3a9103333e1cc6a2eff6666e980e5607248c 100644 +index e770489e947ecbf3154bb680cf043c9b8dc6159d..04c2c57d412eda4cfa82db8323c188d364761528 100644 --- a/crypto/cipher_extra/cipher_extra.c +++ b/crypto/cipher_extra/cipher_extra.c @@ -83,6 +83,8 @@ const EVP_CIPHER *EVP_get_cipherbynid(int nid) { @@ -202,10 +202,10 @@ index 6e569ec82db970ba8f1004f811ff08cc59794005..905a293ad046e5653352ec59a278df3a name = "bssl", srcs = tool_sources + tool_headers, diff --git a/util/generate_build_files.py b/util/generate_build_files.py -index f2b10dec0018b7e66ad4a5b9c77bd2510c6d6442..337540bd51b58f3edd931eae1eae13dfa24b1d8d 100644 +index 11b9a8a9928a813501f66f867277928515e9e2ed..f4e2d3686dcd1e894bca30d944bdd1bb52dd5218 100644 --- a/util/generate_build_files.py +++ b/util/generate_build_files.py -@@ -150,6 +150,14 @@ class Android(object): +@@ -151,6 +151,14 @@ class Android(object): blueprint.write(' ],\n') blueprint.write('}\n\n') @@ -220,7 +220,7 @@ index f2b10dec0018b7e66ad4a5b9c77bd2510c6d6442..337540bd51b58f3edd931eae1eae13df # Legacy Android.mk format, only used by Trusty in new branches with open('sources.mk', 'w+') as makefile: makefile.write(self.header) -@@ -198,6 +206,7 @@ class Bazel(object): +@@ -199,6 +207,7 @@ class Bazel(object): self.PrintVariableSection(out, 'crypto_sources', files['crypto']) self.PrintVariableSection(out, 'tool_sources', files['tool']) self.PrintVariableSection(out, 'tool_headers', files['tool_headers']) @@ -228,16 +228,16 @@ index f2b10dec0018b7e66ad4a5b9c77bd2510c6d6442..337540bd51b58f3edd931eae1eae13df for ((osname, arch), asm_files) in asm_outputs: self.PrintVariableSection( -@@ -299,6 +308,8 @@ class GN(object): - self.PrintVariableSection(out, 'ssl_sources', - files['ssl'] + files['ssl_headers'] + - files['ssl_internal_headers']) +@@ -353,6 +362,8 @@ class GYP(object): + self.PrintVariableSection(gypi, 'boringssl_crypto_sources', + files['crypto'] + files['crypto_headers'] + + files['crypto_internal_headers']) + self.PrintVariableSection(out, 'decrepit_sources', + files['decrepit']) for ((osname, arch), asm_files) in asm_outputs: - self.PrintVariableSection( -@@ -587,6 +598,21 @@ def main(platforms): + self.PrintVariableSection(gypi, 'boringssl_%s_%s_sources' % +@@ -592,6 +603,21 @@ def main(platforms): ssl_source_files = FindCFiles(os.path.join('src', 'ssl'), NoTests) tool_c_files = FindCFiles(os.path.join('src', 'tool'), NoTests) tool_h_files = FindHeaderFiles(os.path.join('src', 'tool'), AllFiles) @@ -259,7 +259,7 @@ index f2b10dec0018b7e66ad4a5b9c77bd2510c6d6442..337540bd51b58f3edd931eae1eae13df # third_party/fiat/p256.c lives in third_party/fiat, but it is a FIPS # fragment, not a normal source file. -@@ -656,6 +682,7 @@ def main(platforms): +@@ -664,6 +690,7 @@ def main(platforms): 'ssl_test': sorted(ssl_test_files), 'tool': tool_c_files, 'tool_headers': tool_h_files, diff --git a/patches/v8/filter.patch b/patches/v8/filter.patch index 02ed624ce..7fe66b1c9 100644 --- a/patches/v8/filter.patch +++ b/patches/v8/filter.patch @@ -1,10 +1,10 @@ diff --git a/BUILD.gn b/BUILD.gn -index 4b48f7d6874df9617aedf59ee40bb5a1b2737ca2..7c94a120058dbfb587dce340cec1215ce9c1ee49 100644 +index 456a318c1c60527ae264cc3b8326cbd860dc5d2f..27291944c55c2b8ac343344419f759f8dbe2e55f 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -192,7 +192,13 @@ config("internal_config") { - - include_dirs = [ "." ] +@@ -195,7 +195,13 @@ config("internal_config") { + "$target_gen_dir", + ] - if (is_component_build) { + if (is_win) { @@ -18,15 +18,15 @@ index 4b48f7d6874df9617aedf59ee40bb5a1b2737ca2..7c94a120058dbfb587dce340cec1215c } } diff --git a/src/profiler/profiler-listener.cc b/src/profiler/profiler-listener.cc -index 16ec9d883a1f7fc097faf2f3f37e330b8294a5f2..c5d01e0f6ab1f03c92db6c77f969c04ba1868bfa 100644 +index 70d907b21659702e2543c6a18f7b855d112d786f..8a1d417e1eaa7a7d831a86403ceb37792a10dde6 100644 --- a/src/profiler/profiler-listener.cc +++ b/src/profiler/profiler-listener.cc @@ -98,7 +98,7 @@ void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag, + continue; int position = it.source_position().ScriptOffset(); int line_number = script->GetLineNumber(position) + 1; - int pc_offset = it.code_offset() + offset; -- line_table->SetPosition(pc_offset, line_number); -+ line_table->SetPosition(pc_offset, line_number > 0 ? line_number : line); +- line_table->SetPosition(it.code_offset(), line_number); ++ line_table->SetPosition(it.code_offset(), line_number > 0 ? line_number : line); } } - rec->entry = NewCodeEntry( + rec->entry = From ca86fff85d7700e537f9958d659ca872bd7205d5 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 28 May 2018 23:37:33 +0200 Subject: [PATCH 02/75] Removed BUILDFLAG(ENABLE_WEBRTC) https://crrev.com/b564859b8900 --- chromium_src/BUILD.gn | 26 +++++++++---------- .../chrome/browser/browser_process_impl.cc | 9 ++----- common.gypi | 15 ----------- 3 files changed, 14 insertions(+), 36 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index d231f44f7..f2e35ca45 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -350,6 +350,18 @@ source_set("browser") { "//components/policy/core/common/policy_service_stub.h", ] + sources += [ + "chrome/browser/media/webrtc/media_capture_devices_dispatcher.cc", + "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h", + "chrome/browser/media/webrtc/media_stream_capture_indicator.cc", + "chrome/browser/media/webrtc/media_stream_capture_indicator.h", + ] + + public_deps += [ + "//third_party/libyuv", + "//third_party/webrtc/modules/desktop_capture", + ] + if (use_aura) { sources += [ "//chrome/browser/platform_util_aura.cc", @@ -489,20 +501,6 @@ source_set("browser") { } } - if (enable_webrtc) { - sources += [ - "chrome/browser/media/webrtc/media_capture_devices_dispatcher.cc", - "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h", - "chrome/browser/media/webrtc/media_stream_capture_indicator.cc", - "chrome/browser/media/webrtc/media_stream_capture_indicator.h", - ] - - public_deps += [ - "//third_party/libyuv", - "//third_party/webrtc/modules/desktop_capture", - ] - } - if (enable_plugins) { sources += [ "//chrome/browser/media/media_storage_id_salt.cc", diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index d7424ffc4..3bc073625 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -16,6 +16,8 @@ #include "chrome/browser/background/background_mode_manager.h" #include "chrome/browser/browser_shutdown.h" #include "chrome/browser/component_updater/crl_set_component_installer.h" +#include "chrome/browser/media/webrtc/webrtc_event_log_manager.h" +#include "chrome/browser/media/webrtc/webrtc_log_uploader.h" #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "chrome/browser/notifications/notification_ui_manager_stub.h" #include "chrome/browser/policy/chrome_browser_policy_connector.h" @@ -95,11 +97,6 @@ #include "content/public/browser/plugin_service.h" #endif -#if BUILDFLAG(ENABLE_WEBRTC) -#include "chrome/browser/media/webrtc/webrtc_event_log_manager.h" -#include "chrome/browser/media/webrtc/webrtc_log_uploader.h" -#endif - #if defined(OS_WIN) #include "chrome/common/chrome_constants.h" #include "chrome/install_static/install_util.h" @@ -709,13 +706,11 @@ MediaFileSystemRegistry* BrowserProcessImpl::media_file_system_registry() { return nullptr; } -#if BUILDFLAG(ENABLE_WEBRTC) WebRtcLogUploader* BrowserProcessImpl::webrtc_log_uploader() { NOTIMPLEMENTED(); return nullptr; } -#endif network_time::NetworkTimeTracker* BrowserProcessImpl::network_time_tracker() { NOTIMPLEMENTED(); return nullptr; diff --git a/common.gypi b/common.gypi index b445ffe6d..9cf64d57a 100644 --- a/common.gypi +++ b/common.gypi @@ -574,9 +574,6 @@ # Use Minikin hyphenation engine. 'use_minikin_hyphenation%': 0, - # Webrtc compilation is enabled by default. Set to 0 to disable. - 'enable_webrtc%': 1, - # Media router support is enabled by default. Set to 0 to disable. 'enable_media_router%': 1, @@ -852,10 +849,6 @@ 'enable_hotwording%': 1, }], - ['OS=="android"', { - 'enable_webrtc%': 1, - }], - ['OS=="ios"', { 'configuration_policy': 0, 'enable_extensions%': 0, @@ -864,7 +857,6 @@ 'enable_session_service%': 0, 'enable_spellcheck%': 0, 'enable_themes%': 0, - 'enable_webrtc%': 0, 'notifications%': 0, 'remoting%': 0, 'safe_browsing%': 2, @@ -1169,7 +1161,6 @@ 'remoting%': '<(remoting)', 'enable_one_click_signin%': '<(enable_one_click_signin)', 'enable_media_router%': '<(enable_media_router)', - 'enable_webrtc%': '<(enable_webrtc)', 'chromium_win_pch%': '<(chromium_win_pch)', 'configuration_policy': '<(configuration_policy)', 'safe_browsing%': '<(safe_browsing)', @@ -2149,9 +2140,6 @@ ['enable_media_router==1', { 'grit_defines': ['-D', 'enable_media_router'], }], - ['enable_webrtc==1', { - 'grit_defines': ['-D', 'enable_webrtc'], - }], ['enable_hangout_services_extension==1', { 'grit_defines': ['-D', 'enable_hangout_services_extension'], }], @@ -2682,9 +2670,6 @@ ['image_loader_extension==1', { 'defines': ['IMAGE_LOADER_EXTENSION=1'], }], - ['enable_webrtc==1', { - 'defines': ['ENABLE_WEBRTC=1'], - }], ['enable_media_router==1', { 'defines': ['ENABLE_MEDIA_ROUTER=1'], }], From 542de313e7836d4922435b2f0dddae7e95a467bd Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 28 May 2018 23:44:16 +0200 Subject: [PATCH 03/75] Remove mojo/common and all references to it https://crrev.com/58de35c184c3 --- brave/browser/BUILD.gn | 1 - 1 file changed, 1 deletion(-) diff --git a/brave/browser/BUILD.gn b/brave/browser/BUILD.gn index 871e775aa..a947ccd0a 100644 --- a/brave/browser/BUILD.gn +++ b/brave/browser/BUILD.gn @@ -69,7 +69,6 @@ source_set("browser") { "//device/usb/mojo", "//device/usb/public/mojom", "//gpu/config", - "//mojo/common", "//mojo/edk", "//mojo/public/cpp/bindings", "//services/device/public/mojom", From 7b9cbc79143b532a56e775176dcb72a01a8b3a0a Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 10:39:07 +0200 Subject: [PATCH 04/75] chromium_src: browser_shutdown.* moved to chrome/browser/lifetime/ https://crrev.com/d309273426bc --- atom/browser/atom_browser_main_parts.cc | 2 +- atom/browser/browser.cc | 2 +- atom/browser/extensions/tab_helper.cc | 2 +- chromium_src/BUILD.gn | 4 ++-- chromium_src/chrome/browser/browser_process_impl.cc | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/atom/browser/atom_browser_main_parts.cc b/atom/browser/atom_browser_main_parts.cc index 7d3a54166..ba19dbbdc 100644 --- a/atom/browser/atom_browser_main_parts.cc +++ b/atom/browser/atom_browser_main_parts.cc @@ -28,8 +28,8 @@ #include "base/time/default_tick_clock.h" #include "base/trace_event/trace_event.h" #include "browser/media/media_capture_devices_dispatcher.h" -#include "chrome/browser/browser_shutdown.h" #include "chrome/browser/chrome_browser_main_extra_parts.h" +#include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" #include "chrome/common/chrome_constants.h" diff --git a/atom/browser/browser.cc b/atom/browser/browser.cc index 3e2e37889..4420bd0ac 100644 --- a/atom/browser/browser.cc +++ b/atom/browser/browser.cc @@ -15,7 +15,7 @@ #include "base/path_service.h" #include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_event_impl.h" -#include "chrome/browser/browser_shutdown.h" +#include "chrome/browser/lifetime/browser_shutdown.h" namespace atom { diff --git a/atom/browser/extensions/tab_helper.cc b/atom/browser/extensions/tab_helper.cc index 0880bf187..66b27c3a1 100644 --- a/atom/browser/extensions/tab_helper.cc +++ b/atom/browser/extensions/tab_helper.cc @@ -17,8 +17,8 @@ #include "brave/browser/guest_view/tab_view/tab_view_guest.h" #include "brave/browser/resource_coordinator/guest_tab_manager.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/browser_shutdown.h" #include "chrome/browser/chrome_notification_types.h" +#include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h" #include "chrome/browser/sessions/session_tab_helper.h" #include "chrome/browser/ui/browser.h" diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index f2e35ca45..56c0aa15e 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -182,8 +182,8 @@ source_set("browser") { "//chrome/browser/browser_process.h", "chrome/browser/browser_process_impl.cc", "//chrome/browser/browser_process_impl.h", - "//chrome/browser/browser_shutdown.cc", - "//chrome/browser/browser_shutdown.h", + "//chrome/browser/lifetime/browser_shutdown.cc", + "//chrome/browser/lifetime/browser_shutdown.h", "//chrome/browser/chrome_notification_types.h", "//chrome/browser/chrome_service.cc", "//chrome/browser/chrome_service.h", diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index 3bc073625..3858d3a1d 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -14,8 +14,8 @@ #include "brave/browser/brave_content_browser_client.h" #include "brave/browser/resource_coordinator/guest_tab_manager.h" #include "chrome/browser/background/background_mode_manager.h" -#include "chrome/browser/browser_shutdown.h" #include "chrome/browser/component_updater/crl_set_component_installer.h" +#include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/media/webrtc/webrtc_event_log_manager.h" #include "chrome/browser/media/webrtc/webrtc_log_uploader.h" #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" From 89040751b7d04b85f2a47a0dc6a8bcca921234f0 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 10:52:52 +0200 Subject: [PATCH 05/75] chromium_src: sth_distributor_provider.* was removed https://crrev.com/84d795bcd177 --- chromium_src/BUILD.gn | 2 -- 1 file changed, 2 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 56c0aa15e..94474ad1a 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -246,8 +246,6 @@ source_set("browser") { "//chrome/browser/net/proxy_config_monitor.h", "//chrome/browser/net/proxy_service_factory.cc", "//chrome/browser/net/proxy_service_factory.h", - "//chrome/browser/net/sth_distributor_provider.cc", - "//chrome/browser/net/sth_distributor_provider.h", "//chrome/browser/net/system_network_context_manager.cc", "//chrome/browser/net/system_network_context_manager.h", From 5c1c5f98debac9022417ca1a0f6287407a8f5e60 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 10:56:45 +0200 Subject: [PATCH 06/75] chromium_src: print_job_worker_owner.* was removed https://crrev.com/5423e5e642f3 --- chromium_src/BUILD.gn | 2 -- 1 file changed, 2 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 94474ad1a..55625e592 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -461,8 +461,6 @@ source_set("browser") { "//chrome/browser/printing/print_job_manager.h", "//chrome/browser/printing/print_job_worker.cc", "//chrome/browser/printing/print_job_worker.h", - "//chrome/browser/printing/print_job_worker_owner.cc", - "//chrome/browser/printing/print_job_worker_owner.h", "//chrome/browser/printing/print_view_manager_base.cc", "//chrome/browser/printing/print_view_manager_base.h", "//chrome/browser/printing/print_view_manager_basic.cc", From c27d44c738a0746e7a57c5ed3482c30a49b4f05c Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 12:27:30 +0200 Subject: [PATCH 07/75] chromium_src: rename resource_coordinator_web_contents_observer.* => tab_helper.* https://crrev.com/c502833d6d71 --- atom/browser/api/atom_api_web_contents.cc | 6 +++--- chromium_src/BUILD.gn | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index edf00725e..6b7179da5 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -61,7 +61,7 @@ #include "chrome/browser/printing/print_preview_message_handler.h" #include "chrome/browser/printing/print_view_manager.h" #include "chrome/browser/printing/print_view_manager_common.h" -#include "chrome/browser/resource_coordinator/resource_coordinator_web_contents_observer.h" +#include "chrome/browser/resource_coordinator/tab_helper.h" #include "chrome/browser/resource_coordinator/tab_manager.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" #include "chrome/browser/spellchecker/spellcheck_factory.h" @@ -608,8 +608,8 @@ void WebContents::CompleteInit(v8::Isolate* isolate, this); } - if (ResourceCoordinatorWebContentsObserver::IsEnabled()) - ResourceCoordinatorWebContentsObserver::CreateForWebContents( + if (resource_coordinator::ResourceCoordinatorTabHelper::IsEnabled()) + resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents( web_contents); } diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 55625e592..f0653460d 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -1138,8 +1138,8 @@ source_set("tab_manager") { "//chrome/browser/resource_coordinator/lifecycle_unit_source_base.h", "//chrome/browser/resource_coordinator/page_signal_receiver.cc", "//chrome/browser/resource_coordinator/page_signal_receiver.h", - "//chrome/browser/resource_coordinator/resource_coordinator_web_contents_observer.cc", - "//chrome/browser/resource_coordinator/resource_coordinator_web_contents_observer.h", + "//chrome/browser/resource_coordinator/tab_helper.cc", + "//chrome/browser/resource_coordinator/tab_helper.h", "//chrome/browser/resource_coordinator/tab_lifecycle_observer.h", "//chrome/browser/resource_coordinator/tab_lifecycle_unit.cc", "//chrome/browser/resource_coordinator/tab_lifecycle_unit.h", From fc66436ef7edfc8b6e531a8b820cb8f6ab834245 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 12:40:54 +0200 Subject: [PATCH 08/75] chromium_src: web_contents_closer.* was removed https://crrev.com/88ff8d7f1368 --- chromium_src/BUILD.gn | 2 -- 1 file changed, 2 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index f0653460d..de4dcb596 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -1181,8 +1181,6 @@ source_set("tab_manager") { "//chrome/browser/ui/tabs/tab_strip_model_order_controller.h", "chrome/browser/ui/tabs/tab_utils.cc", "//chrome/browser/ui/tabs/tab_utils.h", - "//chrome/browser/ui/tabs/web_contents_closer.cc", - "//chrome/browser/ui/tabs/web_contents_closer.h", "//chrome/browser/ui/tab_contents/tab_contents_iterator.cc", "//chrome/browser/ui/tab_contents/tab_contents_iterator.h", "//chrome/browser/ui/tab_ui_helper.cc", From fcb0a1a402c5383e48f3ed5bac26cb65a03a0dd2 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 13:50:20 +0200 Subject: [PATCH 09/75] DispatchNonPersistentCloseEvent() parameters https://crrev.com/60036df9cee4 --- vendor/brightray/browser/notification_delegate.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vendor/brightray/browser/notification_delegate.cc b/vendor/brightray/browser/notification_delegate.cc index 0110977b2..287a1a6ba 100644 --- a/vendor/brightray/browser/notification_delegate.cc +++ b/vendor/brightray/browser/notification_delegate.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. +#include "base/bind_helpers.h" #include "brightray/browser/notification_delegate.h" #include "content/public/browser/notification_event_dispatcher.h" @@ -22,7 +23,7 @@ void NotificationDelegate::NotificationClick() { void NotificationDelegate::NotificationClosed() { content::NotificationEventDispatcher::GetInstance() - ->DispatchNonPersistentCloseEvent(notification_id_); + ->DispatchNonPersistentCloseEvent(notification_id_, base::DoNothing()); } void NotificationDelegate::NotificationDisplayed() { From 6994476a87f880e37e12a391ae5ae749a2c2c3ac Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 14:09:39 +0200 Subject: [PATCH 10/75] EnterFullscreenModeForTab() parameters https://crrev.com/3ed44192c56b --- atom/browser/api/atom_api_web_contents.cc | 9 ++++++--- atom/browser/api/atom_api_web_contents.h | 6 ++++-- atom/browser/common_web_contents_delegate.cc | 4 +++- atom/browser/common_web_contents_delegate.h | 6 ++++-- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 6b7179da5..6a52e0309 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -1039,8 +1039,10 @@ void WebContents::HandleKeyboardEvent( } } -void WebContents::EnterFullscreenModeForTab(content::WebContents* source, - const GURL& origin) { +void WebContents::EnterFullscreenModeForTab( + content::WebContents* source, + const GURL& origin, + const blink::WebFullscreenOptions& options) { auto permission_helper = WebContentsPermissionHelper::FromWebContents(source); auto callback = base::Bind(&WebContents::OnEnterFullscreenModeForTab, @@ -1053,7 +1055,8 @@ void WebContents::OnEnterFullscreenModeForTab(content::WebContents* source, bool allowed) { if (!allowed) return; - CommonWebContentsDelegate::EnterFullscreenModeForTab(source, origin); + CommonWebContentsDelegate::EnterFullscreenModeForTab( + source, origin, blink::WebFullscreenOptions()); Emit("enter-html-full-screen"); } diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 6bd94b35a..8dd4d8af5 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -429,8 +429,10 @@ class WebContents : public mate::TrackableObject, void HandleKeyboardEvent( content::WebContents* source, const content::NativeWebKeyboardEvent& event) override; - void EnterFullscreenModeForTab(content::WebContents* source, - const GURL& origin) override; + void EnterFullscreenModeForTab( + content::WebContents* source, + const GURL& origin, + const blink::WebFullscreenOptions& options) override; void ExitFullscreenModeForTab(content::WebContents* source) override; void ContentsZoomChange(bool zoom_in) override; void RendererUnresponsive( diff --git a/atom/browser/common_web_contents_delegate.cc b/atom/browser/common_web_contents_delegate.cc index cae8ad011..b59c60fd3 100644 --- a/atom/browser/common_web_contents_delegate.cc +++ b/atom/browser/common_web_contents_delegate.cc @@ -276,7 +276,9 @@ void CommonWebContentsDelegate::EnumerateDirectory(content::WebContents* guest, } void CommonWebContentsDelegate::EnterFullscreenModeForTab( - content::WebContents* source, const GURL& origin) { + content::WebContents* source, + const GURL& origin, + const blink::WebFullscreenOptions& options) { if (!owner_window_) return; SetHtmlApiFullscreen(true); diff --git a/atom/browser/common_web_contents_delegate.h b/atom/browser/common_web_contents_delegate.h index f900b9588..be5d38618 100644 --- a/atom/browser/common_web_contents_delegate.h +++ b/atom/browser/common_web_contents_delegate.h @@ -75,8 +75,10 @@ class CommonWebContentsDelegate void EnumerateDirectory(content::WebContents* web_contents, int request_id, const base::FilePath& path) override; - void EnterFullscreenModeForTab(content::WebContents* source, - const GURL& origin) override; + void EnterFullscreenModeForTab( + content::WebContents* source, + const GURL& origin, + const blink::WebFullscreenOptions& options) override; void ExitFullscreenModeForTab(content::WebContents* source) override; bool IsFullscreenForTabOrPending( const content::WebContents* source) const override; From d882a8be6124fd52e5d68ac366496b3bda0b4a51 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 14:18:47 +0200 Subject: [PATCH 11/75] TabStripModelObserver::TabDetachedAt() parameters https://crrev.com/12c65585e122 --- atom/browser/api/atom_api_web_contents.cc | 4 +++- atom/browser/api/atom_api_web_contents.h | 4 +++- atom/browser/extensions/tab_helper.cc | 4 +++- atom/browser/extensions/tab_helper.h | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 6a52e0309..820f532cd 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -1208,7 +1208,9 @@ void WebContents::ActiveTabChanged(content::WebContents* old_contents, } } -void WebContents::TabDetachedAt(content::WebContents* contents, int index) { +void WebContents::TabDetachedAt(content::WebContents* contents, + int index, + bool was_active) { int window_id = -1; if (owner_window() && owner_window()->browser()) diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 8dd4d8af5..5a2f60c73 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -348,7 +348,9 @@ class WebContents : public mate::TrackableObject, void TabPinnedStateChanged(TabStripModel* tab_strip_model, content::WebContents* contents, int index) override; - void TabDetachedAt(content::WebContents* contents, int index) override; + void TabDetachedAt(content::WebContents* contents, + int index, + bool was_active) override; void ActiveTabChanged(content::WebContents* old_contents, content::WebContents* new_contents, int index, diff --git a/atom/browser/extensions/tab_helper.cc b/atom/browser/extensions/tab_helper.cc index 66b27c3a1..2987e6c3c 100644 --- a/atom/browser/extensions/tab_helper.cc +++ b/atom/browser/extensions/tab_helper.cc @@ -340,7 +340,9 @@ void TabHelper::TabReplacedAt(TabStripModel* tab_strip_model, new_guest->TabIdChanged(); } -void TabHelper::TabDetachedAt(content::WebContents* contents, int index) { +void TabHelper::TabDetachedAt(content::WebContents* contents, + int index, + bool was_active) { if (contents != web_contents()) return; diff --git a/atom/browser/extensions/tab_helper.h b/atom/browser/extensions/tab_helper.h index 5441c84ab..a3f55640f 100644 --- a/atom/browser/extensions/tab_helper.h +++ b/atom/browser/extensions/tab_helper.h @@ -154,7 +154,9 @@ class TabHelper : public content::WebContentsObserver, content::WebContents* contents, int index, bool active) override; - void TabDetachedAt(content::WebContents* contents, int index) override; + void TabDetachedAt(content::WebContents* contents, + int index, + bool was_active) override; void TabReplacedAt(TabStripModel* tab_strip_model, content::WebContents* old_contents, content::WebContents* new_contents, From 04e3c0339f0add3b4a4f0c3e10322b48f80de7e7 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 14:43:35 +0200 Subject: [PATCH 12/75] Update ownership semantics for WebContents in serveral places https://crrev.com/bb8e738e5eb7 https://crrev.com/bee5c962dce0 --- atom/browser/api/atom_api_web_contents.cc | 55 +++++++++---------- atom/browser/api/atom_api_web_contents.h | 2 +- .../atom_extension_host_delegate.cc | 13 ++--- .../extensions/atom_extension_host_delegate.h | 4 +- atom/browser/extensions/tab_helper.cc | 21 ++++--- .../resource_coordinator/guest_tab_manager.cc | 9 +-- .../resource_coordinator/guest_tab_manager.h | 7 ++- patches/master_patch.patch | 31 ++++++----- .../browser/inspectable_web_contents.cc | 7 ++- .../browser/inspectable_web_contents_impl.cc | 2 +- .../brightray/browser/views/views_delegate.cc | 6 -- .../brightray/browser/views/views_delegate.h | 3 - 12 files changed, 83 insertions(+), 77 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 820f532cd..72ac5a6f7 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -538,8 +538,10 @@ void WebContents::CreateWebContents(v8::Isolate* isolate, type_ = WEB_VIEW; } - content::WebContents* web_contents = content::WebContents::Create(params); - CompleteInit(isolate, web_contents, options); + std::unique_ptr web_contents = + content::WebContents::Create(params); + CompleteInit(isolate, web_contents.get(), options); + web_contents.release(); } void WebContents::CompleteInit(v8::Isolate* isolate, @@ -760,12 +762,13 @@ void WebContents::WebContentsCreated( } } -void WebContents::AddNewContents(content::WebContents* source, - content::WebContents* new_contents, - WindowOpenDisposition disposition, - const gfx::Rect& initial_rect, - bool user_gesture, - bool* was_blocked) { +void WebContents::AddNewContents( + content::WebContents* source, + std::unique_ptr new_contents, + WindowOpenDisposition disposition, + const gfx::Rect& initial_rect, + bool user_gesture, + bool* was_blocked) { if (brave::api::Extension::IsBackgroundPageWebContents(source)) { user_gesture = true; } @@ -773,7 +776,7 @@ void WebContents::AddNewContents(content::WebContents* source, bool active = disposition != WindowOpenDisposition::NEW_BACKGROUND_TAB; ::Browser* browser = nullptr; - auto tab_helper = extensions::TabHelper::FromWebContents(new_contents); + auto tab_helper = extensions::TabHelper::FromWebContents(new_contents.get()); if (tab_helper) { tab_helper->SetActive(active); @@ -808,7 +811,7 @@ void WebContents::AddNewContents(content::WebContents* source, "add-new-contents", event, source, - new_contents, + new_contents.get(), disposition, initial_rect, user_gesture); @@ -822,14 +825,17 @@ void WebContents::AddNewContents(content::WebContents* source, } if (blocked) { - auto guest = brave::TabViewGuest::FromWebContents(new_contents); + auto guest = brave::TabViewGuest::FromWebContents(new_contents.get()); if (guest) { guest->Destroy(true); } else { - delete new_contents; + new_contents.reset(); + } + } else { + new_contents.release(); + if (browser) { + tab_helper->SetBrowser(browser); } - } else if (browser) { - tab_helper->SetBrowser(browser); } } @@ -944,12 +950,9 @@ content::WebContents* WebContents::OpenURLFromTab( if (background_contents) { bool was_blocked = false; - AddNewContents(source, - background_contents, - params.disposition, - gfx::Rect(), - params.user_gesture, - &was_blocked); + AddNewContents(source, base::WrapUnique(background_contents), + params.disposition, gfx::Rect(), params.user_gesture, + &was_blocked); if (!was_blocked) return background_contents; } @@ -2939,14 +2942,10 @@ void WebContents::OnTabCreated(const mate::Dictionary& options, } bool was_blocked = false; - AddNewContents(source, - tab, - active ? - WindowOpenDisposition::NEW_FOREGROUND_TAB : - WindowOpenDisposition::NEW_BACKGROUND_TAB, - gfx::Rect(), - user_gesture, - &was_blocked); + AddNewContents(source, base::WrapUnique(tab), + active ? WindowOpenDisposition::NEW_FOREGROUND_TAB + : WindowOpenDisposition::NEW_BACKGROUND_TAB, + gfx::Rect(), user_gesture, &was_blocked); if (was_blocked) callback.Run(nullptr); diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 5a2f60c73..095c21921 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -406,7 +406,7 @@ class WebContents : public mate::TrackableObject, content::WebContents* new_contents) override; void AddNewContents(content::WebContents* source, - content::WebContents* new_contents, + std::unique_ptr new_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_rect, bool user_gesture, diff --git a/atom/browser/extensions/atom_extension_host_delegate.cc b/atom/browser/extensions/atom_extension_host_delegate.cc index 0a9c08b3a..efa5c7217 100644 --- a/atom/browser/extensions/atom_extension_host_delegate.cc +++ b/atom/browser/extensions/atom_extension_host_delegate.cc @@ -2,8 +2,6 @@ // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. -#include - #include "atom/browser/extensions/atom_extension_host_delegate.h" #include "atom/browser/extensions/atom_extension_web_contents_observer.h" @@ -53,11 +51,12 @@ AtomExtensionHostDelegate::GetJavaScriptDialogManager() { return brave::BraveJavaScriptDialogManager::GetInstance(); } -void AtomExtensionHostDelegate::CreateTab(content::WebContents* web_contents, - const std::string& extension_id, - WindowOpenDisposition disposition, - const gfx::Rect& initial_rect, - bool user_gesture) { +void AtomExtensionHostDelegate::CreateTab( + std::unique_ptr web_contents, + const std::string& extension_id, + WindowOpenDisposition disposition, + const gfx::Rect& initial_rect, + bool user_gesture) { NOTIMPLEMENTED(); } diff --git a/atom/browser/extensions/atom_extension_host_delegate.h b/atom/browser/extensions/atom_extension_host_delegate.h index c59a3bd49..a1a967c5b 100644 --- a/atom/browser/extensions/atom_extension_host_delegate.h +++ b/atom/browser/extensions/atom_extension_host_delegate.h @@ -5,7 +5,9 @@ #ifndef ATOM_BROWSER_EXTENSIONS_ATOM_EXTENSION_HOST_DELEGATE_H_ #define ATOM_BROWSER_EXTENSIONS_ATOM_EXTENSION_HOST_DELEGATE_H_ +#include #include + #include "extensions/browser/extension_host_delegate.h" namespace extensions { @@ -19,7 +21,7 @@ class AtomExtensionHostDelegate : public ExtensionHostDelegate { void OnExtensionHostCreated(content::WebContents* web_contents) override; void OnRenderViewCreatedForBackgroundPage(ExtensionHost* host) override; content::JavaScriptDialogManager* GetJavaScriptDialogManager() override; - void CreateTab(content::WebContents* web_contents, + void CreateTab(std::unique_ptr web_contents, const std::string& extension_id, WindowOpenDisposition disposition, const gfx::Rect& initial_rect, diff --git a/atom/browser/extensions/tab_helper.cc b/atom/browser/extensions/tab_helper.cc index 2987e6c3c..d8ef13169 100644 --- a/atom/browser/extensions/tab_helper.cc +++ b/atom/browser/extensions/tab_helper.cc @@ -178,7 +178,8 @@ bool TabHelper::AttachGuest(int window_id, int index) { if (browser->session_id().id() == window_id) { index_ = index; browser->tab_strip_model()->ReplaceWebContentsAt( - GetTabStripIndex(window_id, index_), web_contents()); + GetTabStripIndex(window_id, index_), + base::WrapUnique(web_contents())); return true; } } @@ -196,7 +197,7 @@ content::WebContents* TabHelper::DetachGuest() { null_contents->GetController().CopyStateFrom( web_contents()->GetController(), false); - auto null_helper = FromWebContents(null_contents); + auto null_helper = FromWebContents(null_contents.get()); null_helper->index_ = get_index(); null_helper->pinned_ = pinned_; // transfer window closing state @@ -207,9 +208,9 @@ content::WebContents* TabHelper::DetachGuest() { // Replace the detached tab with the null placeholder browser_->tab_strip_model()->ReplaceWebContentsAt( - get_index(), null_contents); + get_index(), std::move(null_contents)); - return null_contents; + return null_contents.get(); } return nullptr; } @@ -425,7 +426,8 @@ void TabHelper::SetBrowser(Browser* browser) { if (browser_) { if (get_index() != TabStripModel::kNoTab) - browser_->tab_strip_model()->DetachWebContentsAt(get_index()); + // TODO(hferreiro) + // browser_->tab_strip_model()->DetachWebContentsAt(get_index()); OnBrowserRemoved(browser_); } @@ -447,8 +449,8 @@ void TabHelper::SetBrowser(Browser* browser) { transition_type = ui::PAGE_TRANSITION_LINK; } - browser_->tab_strip_model()->AddWebContents(web_contents(), index_, - transition_type, add_types); + browser_->tab_strip_model()->AddWebContents( + base::WrapUnique(web_contents()), index_, transition_type, add_types); } else { browser_ = nullptr; } @@ -549,9 +551,10 @@ bool TabHelper::MoveTo(int index, int window_id, bool foreground) { int add_types = TabStripModel::ADD_NONE; add_types |= foreground ? TabStripModel::ADD_ACTIVE : 0; b->tab_strip_model()->InsertWebContentsAt( - index, web_contents(), add_types); + index, base::WrapUnique(web_contents()), add_types); } else { - b->tab_strip_model()->AppendWebContents(web_contents(), foreground); + b->tab_strip_model()->AppendWebContents( + base::WrapUnique(web_contents()), foreground); } return true; } diff --git a/brave/browser/resource_coordinator/guest_tab_manager.cc b/brave/browser/resource_coordinator/guest_tab_manager.cc index 49fe43aa9..ebe9da566 100644 --- a/brave/browser/resource_coordinator/guest_tab_manager.cc +++ b/brave/browser/resource_coordinator/guest_tab_manager.cc @@ -37,7 +37,7 @@ namespace resource_coordinator { GuestTabManager::GuestTabManager() : TabManager() {} -WebContents* GuestTabManager::CreateNullContents( +std::unique_ptr GuestTabManager::CreateNullContents( const content::WebContents::CreateParams& params, content::WebContents* old_contents) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -51,13 +51,14 @@ WebContents* GuestTabManager::CreateNullContents( create_params.initially_hidden = true; auto contents = extensions::TabHelper::CreateTab(owner, create_params); content::RestoreHelper::CreateForWebContents(contents); - return contents; + return base::WrapUnique(contents); } -void GuestTabManager::DestroyOldContents(WebContents* old_contents) { +void GuestTabManager::DestroyOldContents( + std::unique_ptr old_contents) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - auto tab_helper = extensions::TabHelper::FromWebContents(old_contents); + auto tab_helper = extensions::TabHelper::FromWebContents(old_contents.get()); DCHECK(tab_helper && tab_helper->guest()); // Let the guest destroy itself after the detach message has been received tab_helper->guest()->SetCanRunInDetachedState(false); diff --git a/brave/browser/resource_coordinator/guest_tab_manager.h b/brave/browser/resource_coordinator/guest_tab_manager.h index 831d32213..418ea1477 100644 --- a/brave/browser/resource_coordinator/guest_tab_manager.h +++ b/brave/browser/resource_coordinator/guest_tab_manager.h @@ -5,6 +5,8 @@ #ifndef BRAVE_BROWSER_RESOURCE_COORDINATOR_GUEST_TAB_MANAGER_H_ #define BRAVE_BROWSER_RESOURCE_COORDINATOR_GUEST_TAB_MANAGER_H_ +#include + #include "chrome/browser/resource_coordinator/tab_manager.h" #include "content/public/browser/web_contents_observer.h" @@ -42,10 +44,11 @@ class GuestTabManager : public TabManager { content::WebContents* new_contents, int index) override; - content::WebContents* CreateNullContents( + std::unique_ptr CreateNullContents( const content::WebContents::CreateParams& params, content::WebContents* old_contents) override; - void DestroyOldContents(content::WebContents* old_contents) override; + void DestroyOldContents( + std::unique_ptr old_contents) override; DISALLOW_COPY_AND_ASSIGN(GuestTabManager); }; diff --git a/patches/master_patch.patch b/patches/master_patch.patch index 8b8ba3cf3..042236589 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -446,34 +446,37 @@ index 01d3ee8917c2d05943e42556a4221161606c451d..f801248b1017abaf706533ff0889295c // RenderFrameProxyHosts. - old_contents_deleter.reset(); + // MUON(bridiver): see tab_manager.h -+ g_browser_process->GetTabManager()->DestroyOldContents(old_contents); ++ g_browser_process->GetTabManager()->DestroyOldContents( ++ std::move(old_contents_deleter)); LifecycleState previous_state = GetState(); SetState(LifecycleState::DISCARDED); diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc -index 7d5a446cf9fa1c63a71d2bc11c3a7684a3dd992c..ab18db7e11d0efe30b4c1379ce7b7f940c2c490f 100644 +index 7d5a446cf9fa1c63a71d2bc11c3a7684a3dd992c..8c02dd39d4d509849061a7ad09f6de3758d38f18 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc -@@ -487,6 +487,17 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { +@@ -487,6 +487,19 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { } } +// MUON(bridiver): see tab_manager.h -+content::WebContents* TabManager::CreateNullContents( -+ const content::WebContents::CreateParams& params, content::WebContents* old_contents) { ++std::unique_ptr TabManager::CreateNullContents( ++ const content::WebContents::CreateParams& params, ++ content::WebContents* old_contents) { + return content::WebContents::Create(params); +} + +// MUON(bridiver): see tab_manager.h -+void TabManager::DestroyOldContents(content::WebContents* old_contents) { -+ delete old_contents; ++void TabManager::DestroyOldContents( ++ std::unique_ptr old_contents) { ++ old_contents.reset(); +} + void TabManager::PauseBackgroundTabOpeningIfNeeded() { TRACE_EVENT_INSTANT0("navigation", "TabManager::PauseBackgroundTabOpeningIfNeeded", diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h -index 926a13003dd9ff8578d188790c282e51168f7f3e..a373b0718d0fefd459e10330450e7f6c3d1104f3 100644 +index 926a13003dd9ff8578d188790c282e51168f7f3e..8f37a9e1d3cb2dd7941aeef526c77904bf4be348 100644 --- a/chrome/browser/resource_coordinator/tab_manager.h +++ b/chrome/browser/resource_coordinator/tab_manager.h @@ -32,6 +32,7 @@ @@ -484,19 +487,21 @@ index 926a13003dd9ff8578d188790c282e51168f7f3e..a373b0718d0fefd459e10330450e7f6c #include "ui/gfx/native_widget_types.h" class GURL; -@@ -92,6 +93,11 @@ class TabManager : public LifecycleUnitObserver, +@@ -92,6 +93,13 @@ class TabManager : public LifecycleUnitObserver, TabManager(); ~TabManager() override; + // MUON(bridiver): override to create/destroy guests webcontents -+ virtual content::WebContents* CreateNullContents( -+ const content::WebContents::CreateParams& params, content::WebContents* old_contents); -+ virtual void DestroyOldContents(content::WebContents* old_contents); ++ virtual std::unique_ptr CreateNullContents( ++ const content::WebContents::CreateParams& params, ++ content::WebContents* old_contents); ++ virtual void DestroyOldContents( ++ std::unique_ptr old_contents); + // Start/Stop the Tab Manager. void Start(); void Stop(); -@@ -181,6 +187,7 @@ class TabManager : public LifecycleUnitObserver, +@@ -181,6 +189,7 @@ class TabManager : public LifecycleUnitObserver, int restored_tab_count() const; private: diff --git a/vendor/brightray/browser/inspectable_web_contents.cc b/vendor/brightray/browser/inspectable_web_contents.cc index 74aeac671..64ad0c3d4 100644 --- a/vendor/brightray/browser/inspectable_web_contents.cc +++ b/vendor/brightray/browser/inspectable_web_contents.cc @@ -1,13 +1,16 @@ #include "browser/inspectable_web_contents.h" +#include + #include "browser/inspectable_web_contents_impl.h" namespace brightray { InspectableWebContents* InspectableWebContents::Create( const content::WebContents::CreateParams& create_params) { - auto contents = content::WebContents::Create(create_params); - return Create(contents); + std::unique_ptr contents = + content::WebContents::Create(create_params); + return Create(contents.release()); } InspectableWebContents* InspectableWebContents::Create( diff --git a/vendor/brightray/browser/inspectable_web_contents_impl.cc b/vendor/brightray/browser/inspectable_web_contents_impl.cc index 3ee4cafc8..a94e642ae 100644 --- a/vendor/brightray/browser/inspectable_web_contents_impl.cc +++ b/vendor/brightray/browser/inspectable_web_contents_impl.cc @@ -449,7 +449,7 @@ void InspectableWebContentsImpl::ShowDevTools() { DevToolsEmbedderMessageDispatcher::CreateForDevToolsFrontend(this)); content::WebContents::CreateParams create_params(web_contents_->GetBrowserContext()); - devtools_web_contents_.reset(content::WebContents::Create(create_params)); + devtools_web_contents_ = content::WebContents::Create(create_params); Observe(devtools_web_contents_.get()); devtools_web_contents_->SetDelegate(this); diff --git a/vendor/brightray/browser/views/views_delegate.cc b/vendor/brightray/browser/views/views_delegate.cc index 4f4037e61..474688904 100644 --- a/vendor/brightray/browser/views/views_delegate.cc +++ b/vendor/brightray/browser/views/views_delegate.cc @@ -77,12 +77,6 @@ void ViewsDelegate::AddRef() { void ViewsDelegate::ReleaseRef() { } -content::WebContents* ViewsDelegate::CreateWebContents( - content::BrowserContext* browser_context, - content::SiteInstance* site_instance) { - return NULL; -} - void ViewsDelegate::OnBeforeWidgetInit( views::Widget::InitParams* params, views::internal::NativeWidgetDelegate* delegate) { diff --git a/vendor/brightray/browser/views/views_delegate.h b/vendor/brightray/browser/views/views_delegate.h index 337f82360..e750de745 100644 --- a/vendor/brightray/browser/views/views_delegate.h +++ b/vendor/brightray/browser/views/views_delegate.h @@ -45,9 +45,6 @@ class ViewsDelegate : public views::ViewsDelegate { views::Widget* widget) override; void AddRef() override; void ReleaseRef() override; - content::WebContents* CreateWebContents( - content::BrowserContext* browser_context, - content::SiteInstance* site_instance) override; void OnBeforeWidgetInit( views::Widget::InitParams* params, views::internal::NativeWidgetDelegate* delegate) override; From 1e7e37080385e97407aa77999f43679a0527f2bd Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 09:24:36 +0200 Subject: [PATCH 13/75] Fully move PathService into the base namespace https://crrev.com/ea15ea06b514 --- atom/app/atom_content_client.cc | 4 ++-- atom/app/atom_main.cc | 4 ++-- atom/app/atom_main_delegate.cc | 10 +++++----- atom/app/atom_main_delegate_mac.mm | 2 +- atom/browser/api/atom_api_app.cc | 9 +++++---- atom/browser/api/atom_api_dialog.cc | 2 +- atom/browser/atom_browser_main_parts.cc | 4 ++-- atom/browser/browser_win.cc | 10 +++++----- atom/browser/common_web_contents_delegate.cc | 2 +- atom/browser/extensions/atom_component_extensions.cc | 2 +- atom/browser/relauncher.cc | 2 +- atom/common/importer/chrome_importer_utils_linux.cc | 4 ++-- atom/common/importer/chrome_importer_utils_win.cc | 6 +++--- atom/common/node_bindings.cc | 4 ++-- brave/browser/brave_browser_context.cc | 2 +- brave/browser/brave_content_browser_client.cc | 4 ++-- brave/browser/tor/tor_launcher_factory.cc | 2 +- chromium_src/chrome/browser/browser_process_impl.cc | 4 ++-- vendor/brightray/browser/browser_client.cc | 2 +- vendor/brightray/browser/browser_context.cc | 2 +- vendor/brightray/common/mac/main_application_bundle.mm | 2 +- vendor/brightray/common/main_delegate.cc | 2 +- vendor/brightray/common/main_delegate_mac.mm | 2 +- 23 files changed, 44 insertions(+), 43 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 7cd7d2fca..314bf8e4d 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -181,10 +181,10 @@ void AtomContentClient::AddContentDecryptionModules( if (cdm_host_file_paths) { #if defined(OS_WIN) base::FilePath brave_exe_dir; - if (!PathService::Get(base::DIR_EXE, &brave_exe_dir)) + if (!base::PathService::Get(base::DIR_EXE, &brave_exe_dir)) NOTREACHED(); base::FilePath file_path; - if (!PathService::Get(base::FILE_EXE, &file_path)) + if (!base::PathService::Get(base::FILE_EXE, &file_path)) NOTREACHED(); cdm_host_file_paths->reserve(1); diff --git a/atom/app/atom_main.cc b/atom/app/atom_main.cc index 9fc9b3bb1..b9d32aaa4 100644 --- a/atom/app/atom_main.cc +++ b/atom/app/atom_main.cc @@ -133,7 +133,7 @@ int main(int argc, const char* argv[]) { user_data_dir = command_line->GetSwitchValuePath(switches::kUserDataDir); } else { #if defined(OS_WIN) || defined(OS_MACOSX) - PathService::Get(base::DIR_APP_DATA, &user_data_dir); + base::PathService::Get(base::DIR_APP_DATA, &user_data_dir); #else user_data_dir = base::nix::GetXDGDirectory(environment.get(), base::nix::kXdgConfigHomeEnvVar, @@ -151,7 +151,7 @@ int main(int argc, const char* argv[]) { #endif } } - PathService::Override(chrome::DIR_CRASH_DUMPS, + base::PathService::Override(chrome::DIR_CRASH_DUMPS, user_data_dir.Append(FILE_PATH_LITERAL("CrashPad"))); environment->SetVar("CHROME_USER_DATA_DIR", user_data_dir.AsUTF8Unsafe()); diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index e9569b173..b6763a193 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -171,7 +171,7 @@ base::FilePath InitializeUserDataDir() { // Warn and fail early if the process fails to get a user data directory. if (user_data_dir.empty() || - !PathService::OverrideAndCreateIfNeeded(chrome::DIR_USER_DATA, + !base::PathService::OverrideAndCreateIfNeeded(chrome::DIR_USER_DATA, user_data_dir, false, true)) { std::string process_type = command_line.GetSwitchValueASCII(switches::kProcessType); @@ -187,7 +187,7 @@ base::FilePath InitializeUserDataDir() { base::FilePath chrome_user_data_dir; base::FilePath native_messaging_dir; #if defined(OS_MACOSX) - PathService::Get(base::DIR_APP_DATA, &chrome_user_data_dir); + base::PathService::Get(base::DIR_APP_DATA, &chrome_user_data_dir); chrome_user_data_dir = chrome_user_data_dir.Append("Google/Chrome"); native_messaging_dir = base::FilePath(FILE_PATH_LITERAL( "/Library/Google/Chrome/NativeMessagingHosts")); @@ -196,11 +196,11 @@ base::FilePath InitializeUserDataDir() { native_messaging_dir = base::FilePath(FILE_PATH_LITERAL( "/etc/opt/chrome/native-messaging-hosts")); #endif // defined(OS_MACOSX) - PathService::OverrideAndCreateIfNeeded( + base::PathService::OverrideAndCreateIfNeeded( chrome::DIR_USER_NATIVE_MESSAGING, chrome_user_data_dir.Append(FILE_PATH_LITERAL("NativeMessagingHosts")), false, true); - PathService::OverrideAndCreateIfNeeded(chrome::DIR_NATIVE_MESSAGING, + base::PathService::OverrideAndCreateIfNeeded(chrome::DIR_NATIVE_MESSAGING, native_messaging_dir, false, true); #endif // OS_POSIX return user_data_dir; @@ -296,7 +296,7 @@ void AtomMainDelegate::PreSandboxStartup() { if (path.empty()) { LOG(ERROR) << "Could not create user data dir"; } else { - PathService::OverrideAndCreateIfNeeded( + base::PathService::OverrideAndCreateIfNeeded( component_updater::DIR_COMPONENT_USER, path.Append(FILE_PATH_LITERAL("Extensions")), false, true); } diff --git a/atom/app/atom_main_delegate_mac.mm b/atom/app/atom_main_delegate_mac.mm index d03f43a38..cf5d3e087 100644 --- a/atom/app/atom_main_delegate_mac.mm +++ b/atom/app/atom_main_delegate_mac.mm @@ -59,7 +59,7 @@ brightray::GetApplicationName()); if (!base::PathExists(helper_path)) LOG(FATAL) << "Unable to find helper app"; - PathService::Override(content::CHILD_PROCESS_EXE, helper_path); + base::PathService::Override(content::CHILD_PROCESS_EXE, helper_path); } void AtomMainDelegate::SetUpBundleOverrides() { diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 35ef6a31e..4f96cdb84 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -676,7 +676,7 @@ base::FilePath App::GetPath(mate::Arguments* args, const std::string& name) { base::FilePath path; int key = GetPathConstant(name); if (key >= 0) - succeed = PathService::Get(key, &path); + succeed = base::PathService::Get(key, &path); if (!succeed) args->ThrowError("Failed to get path"); return path; @@ -693,7 +693,8 @@ void App::SetPath(mate::Arguments* args, bool succeed = false; int key = GetPathConstant(name); if (key >= 0) - succeed = PathService::OverrideAndCreateIfNeeded(key, path, true, false); + succeed = + base::PathService::OverrideAndCreateIfNeeded(key, path, true, false); if (!succeed) args->ThrowError("Failed to set path"); } @@ -728,7 +729,7 @@ bool App::MakeSingleInstance( return false; base::FilePath user_dir; - PathService::Get(chrome::DIR_USER_DATA, &user_dir); + base::PathService::Get(chrome::DIR_USER_DATA, &user_dir); process_singleton_.reset(new ProcessSingleton( user_dir, base::Bind(NotificationCallbackWrapper, callback))); @@ -773,7 +774,7 @@ bool App::Relaunch(mate::Arguments* js_args) { if (exec_path.empty()) { base::FilePath current_exe_path; - PathService::Get(base::FILE_EXE, ¤t_exe_path); + base::PathService::Get(base::FILE_EXE, ¤t_exe_path); argv.push_back(current_exe_path.value()); } else { argv.push_back(exec_path.value()); diff --git a/atom/browser/api/atom_api_dialog.cc b/atom/browser/api/atom_api_dialog.cc index 777fffdd8..7c7dcd6ea 100644 --- a/atom/browser/api/atom_api_dialog.cc +++ b/atom/browser/api/atom_api_dialog.cc @@ -152,7 +152,7 @@ void ShowDialog(const file_dialog::DialogSettings& settings, base::FilePath default_path = settings.default_path; if (default_path.empty()) { - if (!PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &default_path)) { + if (!base::PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &default_path)) { NOTREACHED(); } } diff --git a/atom/browser/atom_browser_main_parts.cc b/atom/browser/atom_browser_main_parts.cc index ba19dbbdc..065466d97 100644 --- a/atom/browser/atom_browser_main_parts.cc +++ b/atom/browser/atom_browser_main_parts.cc @@ -182,7 +182,7 @@ int AtomBrowserMainParts::PreCreateThreads() { TRACE_EVENT0("startup", "AtomBrowserMainParts::PreCreateThreads") base::FilePath user_data_dir; - if (!PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) + if (!base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) return chrome::RESULT_CODE_MISSING_DATA; // Force MediaCaptureDevicesDispatcher to be created on UI thread. @@ -326,7 +326,7 @@ void AtomBrowserMainParts::PreMainMessageLoopRun() { // Make sure the userData directory is created. base::FilePath user_data; - if (PathService::Get(chrome::DIR_USER_DATA, &user_data)) + if (base::PathService::Get(chrome::DIR_USER_DATA, &user_data)) base::CreateDirectoryAndGetError(user_data, nullptr); // PreProfileInit diff --git a/atom/browser/browser_win.cc b/atom/browser/browser_win.cc index 310321b4c..b7ac4bf35 100755 --- a/atom/browser/browser_win.cc +++ b/atom/browser/browser_win.cc @@ -48,7 +48,7 @@ bool GetProtocolLaunchPath(mate::Arguments* args, base::string16* exe) { // Executable Path if (!args || !args->GetNext(exe)) { base::FilePath path; - if (!PathService::Get(base::FILE_EXE, &path)) { + if (!base::PathService::Get(base::FILE_EXE, &path)) { LOG(ERROR) << "Error getting app exe path"; return false; } @@ -353,7 +353,7 @@ void Browser::SetLoginItemSettings(LoginItemSettings settings) { if (settings.open_at_login) { base::FilePath path; - if (PathService::Get(base::FILE_EXE, &path)) { + if (base::PathService::Get(base::FILE_EXE, &path)) { base::string16 exePath(path.value()); key.WriteValue(GetAppUserModelID(), exePath.c_str()); } @@ -370,7 +370,7 @@ Browser::LoginItemSettings Browser::GetLoginItemSettings() { if (!FAILED(key.ReadValue(GetAppUserModelID(), &keyVal))) { base::FilePath path; - if (PathService::Get(base::FILE_EXE, &path)) { + if (base::PathService::Get(base::FILE_EXE, &path)) { base::string16 exePath(path.value()); settings.open_at_login = keyVal == exePath; } @@ -391,7 +391,7 @@ PCWSTR Browser::GetAppUserModelID() { std::string Browser::GetExecutableFileVersion() const { base::FilePath path; - if (PathService::Get(base::FILE_EXE, &path)) { + if (base::PathService::Get(base::FILE_EXE, &path)) { std::unique_ptr version_info( FileVersionInfo::CreateFileVersionInfo(path)); return base::UTF16ToUTF8(version_info->product_version()); @@ -402,7 +402,7 @@ std::string Browser::GetExecutableFileVersion() const { std::string Browser::GetExecutableFileProductName() const { base::FilePath path; - if (PathService::Get(base::FILE_EXE, &path)) { + if (base::PathService::Get(base::FILE_EXE, &path)) { std::unique_ptr version_info( FileVersionInfo::CreateFileVersionInfo(path)); return base::UTF16ToUTF8(version_info->product_name()); diff --git a/atom/browser/common_web_contents_delegate.cc b/atom/browser/common_web_contents_delegate.cc index b59c60fd3..d5390b1c8 100644 --- a/atom/browser/common_web_contents_delegate.cc +++ b/atom/browser/common_web_contents_delegate.cc @@ -326,7 +326,7 @@ void CommonWebContentsDelegate::DevToolsSaveToFile( base::Unretained(this), url)); } else { base::FilePath default_path; - PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &default_path); + base::PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &default_path); default_path = default_path.Append(base::FilePath::FromUTF8Unsafe(url)); new extensions::FileEntryPicker( GetWebContents(), default_path, diff --git a/atom/browser/extensions/atom_component_extensions.cc b/atom/browser/extensions/atom_component_extensions.cc index b88a169b8..30eb919dd 100644 --- a/atom/browser/extensions/atom_component_extensions.cc +++ b/atom/browser/extensions/atom_component_extensions.cc @@ -22,7 +22,7 @@ bool IsComponentExtension(const base::FilePath& extension_path, base::FilePath resources_dir; base::FilePath relative_path; - if (!PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || + if (!base::PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || !resources_dir.AppendRelativePath(directory_path, &relative_path)) { return false; } diff --git a/atom/browser/relauncher.cc b/atom/browser/relauncher.cc index 62f44ad85..bf8595fcb 100644 --- a/atom/browser/relauncher.cc +++ b/atom/browser/relauncher.cc @@ -42,7 +42,7 @@ bool RelaunchApp(const StringVector& argv) { // helper process, because there's no guarantee that the updated version's // relauncher implementation will be compatible with the running version's. base::FilePath child_path; - if (!PathService::Get(content::CHILD_PROCESS_EXE, &child_path)) { + if (!base::PathService::Get(content::CHILD_PROCESS_EXE, &child_path)) { LOG(ERROR) << "No CHILD_PROCESS_EXE"; return false; } diff --git a/atom/common/importer/chrome_importer_utils_linux.cc b/atom/common/importer/chrome_importer_utils_linux.cc index 9ceba83b9..6ecc46c42 100644 --- a/atom/common/importer/chrome_importer_utils_linux.cc +++ b/atom/common/importer/chrome_importer_utils_linux.cc @@ -11,7 +11,7 @@ base::FilePath GetChromeUserDataFolder() { base::FilePath result; - if (!PathService::Get(base::DIR_HOME, &result)) + if (!base::PathService::Get(base::DIR_HOME, &result)) return base::FilePath(); result = result.Append(".config"); @@ -22,7 +22,7 @@ base::FilePath GetChromeUserDataFolder() { base::FilePath GetChromiumUserDataFolder() { base::FilePath result; - if (!PathService::Get(base::DIR_HOME, &result)) + if (!base::PathService::Get(base::DIR_HOME, &result)) return base::FilePath(); result = result.Append(".config"); diff --git a/atom/common/importer/chrome_importer_utils_win.cc b/atom/common/importer/chrome_importer_utils_win.cc index 3137733aa..03000ca4e 100644 --- a/atom/common/importer/chrome_importer_utils_win.cc +++ b/atom/common/importer/chrome_importer_utils_win.cc @@ -10,7 +10,7 @@ base::FilePath GetChromeUserDataFolder() { base::FilePath result; - if (!PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) + if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) return base::FilePath(); result = result.AppendASCII("Google"); @@ -22,7 +22,7 @@ base::FilePath GetChromeUserDataFolder() { base::FilePath GetCanaryUserDataFolder() { base::FilePath result; - if (!PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) + if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) return base::FilePath(); result = result.AppendASCII("Google"); @@ -34,7 +34,7 @@ base::FilePath GetCanaryUserDataFolder() { base::FilePath GetChromiumUserDataFolder() { base::FilePath result; - if (!PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) + if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &result)) return base::FilePath(); result = result.AppendASCII("Chromium"); diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index 5cc193cf0..03cd77670 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -111,7 +111,7 @@ std::unique_ptr StringVectorToArgArray( base::FilePath GetResourcesPath() { auto command_line = base::CommandLine::ForCurrentProcess(); base::FilePath exec_path(command_line->GetProgram()); - PathService::Get(base::FILE_EXE, &exec_path); + base::PathService::Get(base::FILE_EXE, &exec_path); base::FilePath resources_path = #if defined(OS_MACOSX) @@ -193,7 +193,7 @@ node::Environment* NodeBindings::CreateEnvironment( // The path to helper app. base::FilePath helper_exec_path; - PathService::Get(content::CHILD_PROCESS_EXE, &helper_exec_path); + base::PathService::Get(content::CHILD_PROCESS_EXE, &helper_exec_path); process.Set("helperExecPath", helper_exec_path); // Set process._debugWaitConnect if --debug-brk was specified to stop diff --git a/brave/browser/brave_browser_context.cc b/brave/browser/brave_browser_context.cc index aa1b0fd0b..7db643593 100644 --- a/brave/browser/brave_browser_context.cc +++ b/brave/browser/brave_browser_context.cc @@ -821,7 +821,7 @@ AtomBrowserContext* AtomBrowserContext::From( // TODO(bridiver) - pass the path to initialize the browser context // TODO(bridiver) - create these with the profile manager base::FilePath path; - PathService::Get(chrome::DIR_USER_DATA, &path); + base::PathService::Get(chrome::DIR_USER_DATA, &path); if (!in_memory && !partition.empty()) path = path.Append(FILE_PATH_LITERAL("Partitions")) .Append(base::FilePath::FromUTF8Unsafe( diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 796b61628..07251bf52 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -129,7 +129,7 @@ namespace { breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( const std::string& process_type) { base::FilePath dumps_path; - PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path); + base::PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path); { ANNOTATE_SCOPED_MEMORY_LEAK; bool upload = (getenv(env_vars::kHeadless) == NULL); @@ -869,7 +869,7 @@ bool BraveContentBrowserClient::IsURLAcceptableForWebUI( base::FilePath BraveContentBrowserClient::GetShaderDiskCacheDirectory() { base::FilePath user_data_dir; - PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); + base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); DCHECK(!user_data_dir.empty()); return user_data_dir.Append(FILE_PATH_LITERAL("ShaderCache")); } diff --git a/brave/browser/tor/tor_launcher_factory.cc b/brave/browser/tor/tor_launcher_factory.cc index 90f347912..73fd44b89 100644 --- a/brave/browser/tor/tor_launcher_factory.cc +++ b/brave/browser/tor/tor_launcher_factory.cc @@ -72,7 +72,7 @@ void TorLauncherFactory::SetLauncherCallback( void TorLauncherFactory::LaunchOnLauncherThread() { base::FilePath user_data_dir; - PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); + base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); if (!user_data_dir.empty()) { tor_data_path_ = user_data_dir.Append(FILE_PATH_LITERAL("tor")) .Append(FILE_PATH_LITERAL("data")); diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index 3858d3a1d..81251ec01 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -199,7 +199,7 @@ void BrowserProcessImpl::CreateProfileManager() { created_profile_manager_ = true; base::FilePath user_data_dir; - PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); + base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); profile_manager_.reset(new ProfileManager(user_data_dir)); } @@ -291,7 +291,7 @@ void BrowserProcessImpl::CreateLocalState() { DCHECK(!local_state_); base::FilePath local_state_path; - CHECK(PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path)); + CHECK(base::PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path)); scoped_refptr pref_registry = new PrefRegistrySimple; #if defined(OS_WIN) diff --git a/vendor/brightray/browser/browser_client.cc b/vendor/brightray/browser/browser_client.cc index c42cf0542..75643711b 100644 --- a/vendor/brightray/browser/browser_client.cc +++ b/vendor/brightray/browser/browser_client.cc @@ -85,7 +85,7 @@ net::NetLog* BrowserClient::GetNetLog() { base::FilePath BrowserClient::GetDefaultDownloadDirectory() { // ~/Downloads base::FilePath path; - if (PathService::Get(base::DIR_HOME, &path)) + if (base::PathService::Get(base::DIR_HOME, &path)) path = path.Append(FILE_PATH_LITERAL("Downloads")); return path; diff --git a/vendor/brightray/browser/browser_context.cc b/vendor/brightray/browser/browser_context.cc index c6de88e96..b66c5d79e 100644 --- a/vendor/brightray/browser/browser_context.cc +++ b/vendor/brightray/browser/browser_context.cc @@ -76,7 +76,7 @@ BrowserContext::BrowserContext(const std::string& partition, bool in_memory) resource_context_(new ResourceContext), storage_policy_(new SpecialStoragePolicy), weak_factory_(this) { - PathService::Get(chrome::DIR_USER_DATA, &path_); + base::PathService::Get(chrome::DIR_USER_DATA, &path_); if (!in_memory_ && !partition.empty()) path_ = path_.Append(FILE_PATH_LITERAL("Partitions")) diff --git a/vendor/brightray/common/mac/main_application_bundle.mm b/vendor/brightray/common/mac/main_application_bundle.mm index 3e386b40d..26862972a 100644 --- a/vendor/brightray/common/mac/main_application_bundle.mm +++ b/vendor/brightray/common/mac/main_application_bundle.mm @@ -25,7 +25,7 @@ bool HasMainProcessKey() { base::FilePath MainApplicationBundlePath() { // Start out with the path to the running executable. base::FilePath path; - PathService::Get(base::FILE_EXE, &path); + base::PathService::Get(base::FILE_EXE, &path); // Up to Contents. if (!HasMainProcessKey() && diff --git a/vendor/brightray/common/main_delegate.cc b/vendor/brightray/common/main_delegate.cc index f768736d4..aa5f22a34 100644 --- a/vendor/brightray/common/main_delegate.cc +++ b/vendor/brightray/common/main_delegate.cc @@ -56,7 +56,7 @@ void InitializeResourceBundle(const std::string& locale) { path = GetResourcesPakFilePath(); #else base::FilePath pak_dir; - PathService::Get(base::DIR_MODULE, &pak_dir); + base::PathService::Get(base::DIR_MODULE, &pak_dir); path = pak_dir.Append(FILE_PATH_LITERAL("electron_resources.pak")); #endif diff --git a/vendor/brightray/common/main_delegate_mac.mm b/vendor/brightray/common/main_delegate_mac.mm index 383818605..a51a5f851 100644 --- a/vendor/brightray/common/main_delegate_mac.mm +++ b/vendor/brightray/common/main_delegate_mac.mm @@ -44,7 +44,7 @@ .Append("MacOS") .Append(GetApplicationName() + " Helper"); - PathService::Override(content::CHILD_PROCESS_EXE, helper_path); + base::PathService::Override(content::CHILD_PROCESS_EXE, helper_path); } } From 828b0235536c590577a76aab2875816607efe197 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 10:26:26 +0200 Subject: [PATCH 14/75] C68 updates to widevine_cdm_component_installer.cc --- .../widevine_cdm_component_installer.cc | 228 ++++++++++++++---- 1 file changed, 177 insertions(+), 51 deletions(-) diff --git a/brave/browser/component_updater/widevine_cdm_component_installer.cc b/brave/browser/component_updater/widevine_cdm_component_installer.cc index 2f2108fcd..f4718ca68 100644 --- a/brave/browser/component_updater/widevine_cdm_component_installer.cc +++ b/brave/browser/component_updater/widevine_cdm_component_installer.cc @@ -19,6 +19,7 @@ #include "base/base_paths.h" #include "base/bind.h" +#include "base/containers/flat_set.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/logging.h" @@ -33,31 +34,41 @@ #include "base/task_scheduler/post_task.h" #include "base/values.h" #include "build/build_config.h" -#include "chrome/common/chrome_paths.h" #include "components/component_updater/component_installer.h" #include "components/component_updater/component_updater_service.h" #include "components/version_info/version_info.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/cdm_registry.h" -#include "content/public/browser/plugin_service.h" #include "content/public/common/cdm_info.h" -#include "content/public/common/pepper_plugin_info.h" +#include "crypto/sha2.h" +// TODO(crbug.com/825041): Move EncryptionMode out of decrypt_config and +// rename it to EncryptionScheme. +#include "media/base/decrypt_config.h" #include "media/base/video_codecs.h" #include "media/cdm/supported_cdm_versions.h" #include "third_party/widevine/cdm/widevine_cdm_common.h" +#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. NOLINT + +using component_updater::ComponentInstaller; +using component_updater::ComponentInstallerPolicy; +using component_updater::ComponentUpdateService; using content::BrowserThread; using content::CdmRegistry; namespace brave { +#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) + namespace { // CRX hash. The extension id is: oimompecagnajdejgnnjijobebaeigek. -const uint8_t kSha2Hash[] = {0xe8, 0xce, 0xcf, 0x42, 0x06, 0xd0, 0x93, 0x49, - 0x6d, 0xd9, 0x89, 0xe1, 0x41, 0x04, 0x86, 0x4a, - 0x8f, 0xbd, 0x86, 0x12, 0xb9, 0x58, 0x9b, 0xfb, - 0x4f, 0xbb, 0x1b, 0xa9, 0xd3, 0x85, 0x37, 0xef}; +const uint8_t kWidevineSha2Hash[] = { + 0xe8, 0xce, 0xcf, 0x42, 0x06, 0xd0, 0x93, 0x49, 0x6d, 0xd9, 0x89, + 0xe1, 0x41, 0x04, 0x86, 0x4a, 0x8f, 0xbd, 0x86, 0x12, 0xb9, 0x58, + 0x9b, 0xfb, 0x4f, 0xbb, 0x1b, 0xa9, 0xd3, 0x85, 0x37, 0xef}; +static_assert(arraysize(kWidevineSha2Hash) == crypto::kSHA256Length, + "Wrong hash length"); // Name of the Widevine CDM OS in the component manifest. const char kWidevineCdmPlatform[] = @@ -101,6 +112,8 @@ const char kCdmCodecsListName[] = "x-cdm-codecs"; // Whether persistent license is supported by the CDM: "true" or "false". const char kCdmPersistentLicenseSupportName[] = "x-cdm-persistent-license-support"; +const char kCdmSupportedEncryptionSchemesName[] = + "x-cdm-supported-encryption-schemes"; // The following strings are used to specify supported codecs in the // parameter |kCdmCodecsListName|. @@ -110,6 +123,11 @@ const char kCdmSupportedCodecVp9[] = "vp9.0"; const char kCdmSupportedCodecAvc1[] = "avc1"; #endif +// The following strings are used to specify supported encryption schemes in +// the parameter |kCdmSupportedEncryptionSchemesName|. +const char kCdmSupportedEncryptionSchemeCenc[] = "cenc"; +const char kCdmSupportedEncryptionSchemeCbcs[] = "cbcs"; + // Widevine CDM is packaged as a multi-CRX. Widevine CDM binaries are located in // _platform_specific/ folder in the package. This function // returns the platform-specific subdirectory that is part of that multi-CRX. @@ -148,63 +166,157 @@ bool CheckForCompatibleVersion(const base::DictionaryValue& manifest, } // Returns whether the CDM's API versions, as specified in the manifest, are -// compatible with this Chrome binary. +// supported in this Chrome binary and not disabled at run time. // Checks the module API, CDM interface API, and Host API. // This should never fail except in rare cases where the component has not been // updated recently or the user downgrades Chrome. bool IsCompatibleWithBrave(const base::DictionaryValue& manifest) { - return CheckForCompatibleVersion(manifest, - kCdmModuleVersionsName, + return CheckForCompatibleVersion(manifest, kCdmModuleVersionsName, media::IsSupportedCdmModuleVersion) && - CheckForCompatibleVersion(manifest, - kCdmInterfaceVersionsName, - media::IsSupportedCdmInterfaceVersion) && - CheckForCompatibleVersion(manifest, - kCdmHostVersionsName, + CheckForCompatibleVersion( + manifest, kCdmInterfaceVersionsName, + media::IsSupportedAndEnabledCdmInterfaceVersion) && + CheckForCompatibleVersion(manifest, kCdmHostVersionsName, media::IsSupportedCdmHostVersion); } -std::string GetCodecs(const base::DictionaryValue& manifest) { - std::string codecs; - if (manifest.GetStringASCII(kCdmCodecsListName, &codecs)) { - DVLOG_IF(1, codecs.empty()) - << "Widevine CDM component manifest has empty codecs list"; - } else { - DVLOG(1) << "Widevine CDM component manifest is missing codecs"; +// Returns true and updates |supported_video_codecs| (if provided) if the +// appropriate manifest entry is valid. Returns false and does not modify +// |supported_video_codecs| if the manifest entry is incorrectly formatted. +bool GetCodecs(const base::DictionaryValue& manifest, + std::vector* supported_video_codecs) { + const base::Value* value = manifest.FindKey(kCdmCodecsListName); + if (!value) { + DLOG(WARNING) << "Widevine CDM component manifest is missing codecs."; + return true; } - return codecs; -} -std::vector ConvertCodecsString(const std::string& codecs) { - std::vector supported_video_codecs; + if (!value->is_string()) { + DLOG(ERROR) << "Manifest entry " << kCdmCodecsListName + << " is not a string."; + return false; + } + + const std::string& codecs = value->GetString(); + if (codecs.empty()) { + DLOG(WARNING) << "Widevine CDM component manifest has empty codecs list."; + return true; + } + + std::vector result; const std::vector supported_codecs = base::SplitStringPiece(codecs, kCdmValueDelimiter, base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); for (const auto& codec : supported_codecs) { if (codec == kCdmSupportedCodecVp8) - supported_video_codecs.push_back(media::VideoCodec::kCodecVP8); + result.push_back(media::VideoCodec::kCodecVP8); else if (codec == kCdmSupportedCodecVp9) - supported_video_codecs.push_back(media::VideoCodec::kCodecVP9); + result.push_back(media::VideoCodec::kCodecVP9); #if BUILDFLAG(USE_PROPRIETARY_CODECS) else if (codec == kCdmSupportedCodecAvc1) - supported_video_codecs.push_back(media::VideoCodec::kCodecH264); + result.push_back(media::VideoCodec::kCodecH264); #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) } - return supported_video_codecs; + if (supported_video_codecs) + supported_video_codecs->swap(result); + return true; } -bool GetPersistentLicenseSupport(const base::DictionaryValue& manifest) { - std::string supported; +// Returns true and updates |supports_persistent_license| (if provided) if +// the appropriate manifest entry is valid. Returns false if the manifest +// entry is incorrectly formatted. +bool GetPersistentLicenseSupport(const base::DictionaryValue& manifest, + bool* supports_persistent_license) { + bool result = false; const base::Value* value = manifest.FindKey(kCdmPersistentLicenseSupportName); - return value && value->is_bool() && value->GetBool(); + if (value) { + if (value->is_bool()) + result = value->GetBool(); + else + return false; + } + + if (supports_persistent_license) + *supports_persistent_license = result; + return true; +} + +// Returns true and updates |supported_encryption_schemes| (if provided) if +// the appropriate manifest entry is valid. Returns false and does not modify +// |supported_encryption_schemes| if the manifest entry is incorrectly +// formatted. It is assumed that all CDMs support 'cenc', so if the manifest +// entry is missing, the result will indicate support for 'cenc' only. +// Incorrect types in the manifest entry will log the error and fail. +// Unrecognized values will be reported but otherwise ignored. +bool GetEncryptionSchemes( + const base::DictionaryValue& manifest, + base::flat_set* supported_encryption_schemes) { + const base::Value* value = + manifest.FindKey(kCdmSupportedEncryptionSchemesName); + if (!value) { + // No manifest entry found, so assume only 'cenc' supported for backwards + // compatibility. + if (supported_encryption_schemes) + supported_encryption_schemes->insert(media::EncryptionMode::kCenc); + return true; + } + + if (!value->is_list()) { + DLOG(ERROR) << "Manifest entry " << kCdmSupportedEncryptionSchemesName + << " is not a list."; + return false; + } + + const base::Value::ListStorage& list = value->GetList(); + base::flat_set result; + for (const auto& item : list) { + if (!item.is_string()) { + DLOG(ERROR) << "Unrecognized item type in manifest entry " + << kCdmSupportedEncryptionSchemesName; + return false; + } + + const std::string& scheme = item.GetString(); + if (scheme == kCdmSupportedEncryptionSchemeCenc) { + result.insert(media::EncryptionMode::kCenc); + } else if (scheme == kCdmSupportedEncryptionSchemeCbcs) { + result.insert(media::EncryptionMode::kCbcs); + } else { + DLOG(WARNING) << "Unrecognized encryption scheme " << scheme + << " in manifest entry " + << kCdmSupportedEncryptionSchemesName; + } + } + + // As the manifest entry exists, it must specify at least one valid value. + if (result.empty()) + return false; + + if (supported_encryption_schemes) + supported_encryption_schemes->swap(result); + return true; +} + +// Returns true if the entries in the manifest can be parsed correctly, +// false otherwise. Updates |supported_video_codecs|, +// |supports_persistent_license|, and |supported_encryption_schemes|, +// with the values obtained from the manifest, if they are provided. +// If this method returns false, the values may or may not be updated. +bool ParseManifest( + const base::DictionaryValue& manifest, + std::vector* supported_video_codecs, + bool* supports_persistent_license, + base::flat_set* supported_encryption_schemes) { + return GetEncryptionSchemes(manifest, supported_encryption_schemes) && + GetPersistentLicenseSupport(manifest, supports_persistent_license) && + GetCodecs(manifest, supported_video_codecs); } } // namespace -class WidevineCdmComponentInstallerPolicy - : public component_updater::ComponentInstallerPolicy { +class WidevineCdmComponentInstallerPolicy : public ComponentInstallerPolicy { public: explicit WidevineCdmComponentInstallerPolicy( const ReadyCallback& ready_callback); @@ -215,12 +327,11 @@ class WidevineCdmComponentInstallerPolicy bool SupportsGroupPolicyEnabledComponentUpdates() const override; bool RequiresNetworkEncryption() const override; update_client::CrxInstaller::Result OnCustomInstall( - const base::DictionaryValue& manifest, - const base::FilePath& install_dir) override; - void OnCustomUninstall() override; - bool VerifyInstallation( const base::DictionaryValue& manifest, - const base::FilePath& install_dir) const override; + const base::FilePath& install_dir) override; + void OnCustomUninstall() override; + bool VerifyInstallation(const base::DictionaryValue& manifest, + const base::FilePath& install_dir) const override; void ComponentReady(const base::Version& version, const base::FilePath& path, std::unique_ptr manifest) override; @@ -290,7 +401,8 @@ bool WidevineCdmComponentInstallerPolicy::VerifyInstallation( return IsCompatibleWithBrave(manifest) && base::PathExists(GetPlatformDirectory(install_dir) .AppendASCII(base::GetNativeLibraryName( - kWidevineCdmLibraryName))); + kWidevineCdmLibraryName))) && + ParseManifest(manifest, nullptr, nullptr, nullptr); } // The base directory on Windows looks like: @@ -302,7 +414,8 @@ base::FilePath WidevineCdmComponentInstallerPolicy::GetRelativeInstallDir() void WidevineCdmComponentInstallerPolicy::GetHash( std::vector* hash) const { - hash->assign(kSha2Hash, kSha2Hash + arraysize(kSha2Hash)); + hash->assign(kWidevineSha2Hash, + kWidevineSha2Hash + arraysize(kWidevineSha2Hash)); } std::string WidevineCdmComponentInstallerPolicy::GetName() const { @@ -347,32 +460,45 @@ void WidevineCdmComponentInstallerPolicy::RegisterWidevineCdmWithBrave( const base::FilePath& cdm_install_dir, std::unique_ptr manifest) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - const std::string codecs = GetCodecs(*manifest); - bool supports_persistent_license = GetPersistentLicenseSupport(*manifest); + std::vector supported_video_codecs; + bool supports_persistent_license; + base::flat_set supported_encryption_schemes; + + // This check must be a subset of the check in VerifyInstallation() to + // avoid the case where the CDM is accepted by the component updater + // but not registered. + if (!ParseManifest(*manifest, &supported_video_codecs, + &supports_persistent_license, + &supported_encryption_schemes)) { + VLOG(1) << "Not registering Widevine CDM due to malformed manifest."; + return; + } - VLOG(1) << "Register Widevine CDM with Brave"; + VLOG(1) << "Register Widevine CDM with Chrome"; const base::FilePath cdm_path = GetPlatformDirectory(cdm_install_dir) .AppendASCII(base::GetNativeLibraryName(kWidevineCdmLibraryName)); - std::vector supported_video_codecs = - ConvertCodecsString(codecs); - CdmRegistry::GetInstance()->RegisterCdm(content::CdmInfo( kWidevineCdmDisplayName, kWidevineCdmGuid, cdm_version, cdm_path, kWidevineCdmFileSystemId, supported_video_codecs, - supports_persistent_license, kWidevineKeySystem, false)); + supports_persistent_license, supported_encryption_schemes, + kWidevineKeySystem, false)); ready_callback_.Run(cdm_install_dir); } +#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) + void RegisterWidevineCdmComponent( - component_updater::ComponentUpdateService* cus, + ComponentUpdateService* cus, const base::Closure& registered_callback, const ReadyCallback& ready_callback) { - auto installer = base::MakeRefCounted( +#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) + auto installer = base::MakeRefCounted( std::make_unique(ready_callback)); installer->Register(cus, registered_callback); +#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) } } // namespace brave From a0fafd40853bd75f9c733484d5af6ca3b56f7f19 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 11:54:04 +0200 Subject: [PATCH 15/75] Move zygote code to service_manager https://crrev.com/668c097f9a63 --- atom/app/atom_main_delegate.cc | 3 ++- atom/browser/atom_browser_main_parts.cc | 4 ++-- brave/browser/brave_content_browser_client.cc | 5 +++-- muon/app/muon_crash_reporter_client.cc | 3 ++- vendor/brightray/browser/browser_main_parts.cc | 2 +- vendor/brightray/common/main_delegate.cc | 3 ++- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index b6763a193..0e39e5d34 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -37,6 +37,7 @@ #include "extensions/common/constants.h" #include "muon/app/muon_crash_reporter_client.h" #include "printing/buildflags/buildflags.h" +#include "services/service_manager/embedder/switches.h" #include "services/service_manager/sandbox/switches.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" @@ -306,7 +307,7 @@ void AtomMainDelegate::PreSandboxStartup() { #if !defined(CHROME_MULTIPLE_DLL_BROWSER) if (process_type == switches::kUtilityProcess || - process_type == switches::kZygoteProcess) { + process_type == service_manager::switches::kZygoteProcess) { AtomContentUtilityClient::PreSandboxStartup(); } #endif diff --git a/atom/browser/atom_browser_main_parts.cc b/atom/browser/atom_browser_main_parts.cc index 065466d97..fe9a72c4c 100644 --- a/atom/browser/atom_browser_main_parts.cc +++ b/atom/browser/atom_browser_main_parts.cc @@ -175,7 +175,7 @@ int AtomBrowserMainParts::PreEarlyInitialization() { #if defined(OS_POSIX) HandleSIGCHLD(); #endif - return content::RESULT_CODE_NORMAL_EXIT; + return service_manager::RESULT_CODE_NORMAL_EXIT; } int AtomBrowserMainParts::PreCreateThreads() { @@ -266,7 +266,7 @@ int AtomBrowserMainParts::PreCreateThreads() { #endif #endif - return content::RESULT_CODE_NORMAL_EXIT;; + return service_manager::RESULT_CODE_NORMAL_EXIT;; } void AtomBrowserMainParts::PostEarlyInitialization() { diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 07251bf52..1848528af 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -74,6 +74,7 @@ #include "services/metrics/metrics_mojo_service.h" #include "services/metrics/public/mojom/constants.mojom.h" #include "services/proxy_resolver/public/mojom/proxy_resolver.mojom.h" +#include "services/service_manager/embedder/switches.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/mojom/connector.mojom.h" @@ -461,7 +462,7 @@ void BraveContentBrowserClient::GetAdditionalMappedFilesForChildProcess( content::PosixFileDescriptorInfo* mappings) { int crash_signal_fd = GetCrashSignalFD(command_line); if (crash_signal_fd >= 0) { - mappings->Share(kCrashDumpSignal, crash_signal_fd); + mappings->Share(service_manager::kCrashDumpSignal, crash_signal_fd); } } #endif // defined(OS_POSIX) && !defined(OS_MACOSX) @@ -694,7 +695,7 @@ void BraveContentBrowserClient::AppendExtraCommandLineSwitches( command_line->CopySwitchesFrom(browser_command_line, kSwitchNames, arraysize(kSwitchNames)); #endif - } else if (process_type == switches::kZygoteProcess) { + } else if (process_type == service_manager::switches::kZygoteProcess) { static const char* const kSwitchNames[] = { // Load (in-process) Pepper plugins in-process in the zygote pre-sandbox. switches::kDisableBundledPpapiFlash, diff --git a/muon/app/muon_crash_reporter_client.cc b/muon/app/muon_crash_reporter_client.cc index c154620e9..bc8dca40d 100644 --- a/muon/app/muon_crash_reporter_client.cc +++ b/muon/app/muon_crash_reporter_client.cc @@ -21,6 +21,7 @@ #include "components/metrics/metrics_pref_names.h" #include "components/prefs/pref_service.h" #include "content/public/common/content_switches.h" +#include "services/service_manager/embedder/switches.h" #if defined(OS_WIN) #include "base/format_macros.h" @@ -199,7 +200,7 @@ void MuonCrashReporterClient::InitForProcess() { } #if defined(OS_POSIX) && !defined(OS_MACOSX) - if (process_type == switches::kZygoteProcess) + if (process_type == service_manager::switches::kZygoteProcess) return; #endif diff --git a/vendor/brightray/browser/browser_main_parts.cc b/vendor/brightray/browser/browser_main_parts.cc index e3763dc57..4b4f282aa 100644 --- a/vendor/brightray/browser/browser_main_parts.cc +++ b/vendor/brightray/browser/browser_main_parts.cc @@ -163,7 +163,7 @@ int BrowserMainParts::PreEarlyInitialization() { ui::SetX11ErrorHandlers(nullptr, nullptr); #endif - return content::RESULT_CODE_NORMAL_EXIT; + return service_manager::RESULT_CODE_NORMAL_EXIT; } void BrowserMainParts::ToolkitInitialized() { diff --git a/vendor/brightray/common/main_delegate.cc b/vendor/brightray/common/main_delegate.cc index aa5f22a34..fba651bc6 100644 --- a/vendor/brightray/common/main_delegate.cc +++ b/vendor/brightray/common/main_delegate.cc @@ -14,6 +14,7 @@ #include "components/nacl/common/buildflags.h" #include "components/nacl/common/nacl_switches.h" #include "content/public/common/content_switches.h" +#include "services/service_manager/embedder/switches.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -27,7 +28,7 @@ bool SubprocessNeedsResourceBundle(const std::string& process_type) { return #if defined(OS_POSIX) && !defined(OS_MACOSX) // The zygote process opens the resources for the renderers. - process_type == switches::kZygoteProcess || + process_type == service_manager::switches::kZygoteProcess || #endif #if defined(OS_MACOSX) // Mac needs them too for scrollbar related images and for sandbox From 84c65874426dd436a7dcf8a7b21d388c8f20bc7e Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 12:11:08 +0200 Subject: [PATCH 16/75] Move the CTLogList out of //net https://crrev.com/24711fe395e8 --- vendor/brightray/browser/url_request_context_getter.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/vendor/brightray/browser/url_request_context_getter.cc b/vendor/brightray/browser/url_request_context_getter.cc index 2fe3d3cdc..cd25f8b46 100644 --- a/vendor/brightray/browser/url_request_context_getter.cc +++ b/vendor/brightray/browser/url_request_context_getter.cc @@ -22,7 +22,6 @@ #include "content/public/common/content_switches.h" #include "net/base/host_mapping_rules.h" #include "net/cert/cert_verifier.h" -#include "net/cert/ct_known_logs.h" #include "net/cert/ct_log_verifier.h" #include "net/cert/ct_policy_enforcer.h" #include "net/cert/multi_log_ct_verifier.h" @@ -307,10 +306,8 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { new net::HttpServerPropertiesImpl); storage_->set_http_server_properties(std::move(server_properties)); - std::unique_ptr ct_verifier = - std::make_unique(); - ct_verifier->AddLogs(net::ct::CreateLogVerifiersForKnownLogs()); - storage_->set_cert_transparency_verifier(std::move(ct_verifier)); + storage_->set_cert_transparency_verifier( + std::make_unique()); storage_->set_ct_policy_enforcer(std::make_unique()); net::HttpNetworkSession::Params network_session_params; From a38ed380213679109aa1b8f7ee5a7abf9a692d5c Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 12:23:18 +0200 Subject: [PATCH 17/75] REVIEW: chromium_src: C68 updates to io_thread.cc https://crrev.com/5958d32c83f5 https://crrev.com/d476eddae62c --- chromium_src/BUILD.gn | 1 - .../chrome/browser/browser_process_impl.cc | 1 - chromium_src/chrome/browser/io_thread.cc | 90 +------------------ 3 files changed, 2 insertions(+), 90 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index de4dcb596..6a4a2a1de 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -163,7 +163,6 @@ source_set("browser") { "//components/optimization_guide/proto:optimization_guide_proto", "//components/policy/core/common", "//components/prefs", - "//components/ssl_config", "//components/spellcheck:buildflags", "//components/safe_browsing:csd_proto", "//components/safe_browsing:features", diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index 81251ec01..b45c7093e 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -41,7 +41,6 @@ #include "components/prefs/json_pref_store.h" #include "components/prefs/pref_filter.h" #include "components/proxy_config/pref_proxy_config_tracker_impl.h" -#include "components/ssl_config/ssl_config_service_manager.h" #include "components/sync_preferences/pref_service_syncable_factory.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/child_process_security_policy.h" diff --git a/chromium_src/chrome/browser/io_thread.cc b/chromium_src/chrome/browser/io_thread.cc index c616c468c..7aae065f1 100644 --- a/chromium_src/chrome/browser/io_thread.cc +++ b/chromium_src/chrome/browser/io_thread.cc @@ -12,7 +12,6 @@ #include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h" #include "chrome/browser/net/dns_probe_service.h" #include "chrome/browser/net/proxy_service_factory.h" -#include "chrome/browser/net/sth_distributor_provider.h" #include "chrome/common/chrome_content_client.h" #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_switches.h" @@ -28,12 +27,7 @@ #include "content/public/common/content_switches.h" #include "extensions/buildflags/buildflags.h" #include "net/cert/cert_verifier.h" -#include "net/cert/ct_known_logs.h" #include "net/cert/ct_log_verifier.h" -#include "net/cert/ct_verifier.h" -#include "components/certificate_transparency/sth_distributor.h" -#include "components/certificate_transparency/sth_observer.h" -#include "net/cert/multi_log_ct_verifier.h" #include "net/dns/mapped_host_resolver.h" #include "net/http/http_auth_handler_factory.h" #include "net/http/http_auth_preferences.h" @@ -104,10 +98,6 @@ IOThread::IOThread( #if defined(OS_POSIX) gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName); #endif - ssl_config_service_manager_.reset( - ssl_config::SSLConfigServiceManager::CreateDefaultManager( - local_state, - BrowserThread::GetTaskRunnerForThread(BrowserThread::IO))); local_state->SetDefaultPrefValue( prefs::kBuiltInDnsClientEnabled, @@ -119,17 +109,6 @@ IOThread::IOThread( base::Unretained(this))); dns_client_enabled_.MoveToThread(io_thread_proxy); - quick_check_enabled_.Init(prefs::kQuickCheckEnabled, - local_state); - quick_check_enabled_.MoveToThread(io_thread_proxy); - - pac_https_url_stripping_enabled_.Init(prefs::kPacHttpsUrlStrippingEnabled, - local_state); - pac_https_url_stripping_enabled_.MoveToThread(io_thread_proxy); - - chrome_browser_net::SetGlobalSTHDistributor( - std::make_unique()); - BrowserThread::SetIOThreadDelegate(this); system_network_context_manager->SetUp(&network_context_request_, @@ -141,10 +120,6 @@ IOThread::~IOThread() { BrowserThread::SetIOThreadDelegate(nullptr); DCHECK(!globals_); - - // Destroy the old distributor to check that the observers list it holds is - // empty. - chrome_browser_net::SetGlobalSTHDistributor(nullptr); } IOThread::Globals* IOThread::globals() { @@ -222,33 +197,11 @@ void IOThread::Init() { UpdateDnsClientEnabled(); - std::vector> ct_logs( - net::ct::CreateLogVerifiersForKnownLogs()); - - globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); - - ct_tree_tracker_ = - std::make_unique( - globals_->ct_logs, globals_->system_request_context->host_resolver(), - net_log_); - // Register the ct_tree_tracker_ as observer for new STHs. - RegisterSTHObserver(ct_tree_tracker_.get()); - // Register the ct_tree_tracker_ as observer for verified SCTs. - globals_->system_request_context->cert_transparency_verifier()->SetObserver( - ct_tree_tracker_.get()); } void IOThread::CleanUp() { system_url_request_context_getter_ = nullptr; - // Unlink the ct_tree_tracker_ from the global cert_transparency_verifier - // and unregister it from new STH notifications so it will take no actions - // on anything observed during CleanUp process. - globals()->system_request_context->cert_transparency_verifier()->SetObserver( - nullptr); - UnregisterSTHObserver(ct_tree_tracker_.get()); - ct_tree_tracker_.reset(); - globals_->system_request_context->proxy_resolution_service()->OnShutdown(); #if defined(USE_NSS_CERTS) @@ -298,10 +251,6 @@ void IOThread::DisableQuic() { globals_->quic_disabled = true; } -net::SSLConfigService* IOThread::GetSSLConfigService() { - return ssl_config_service_manager_->Get(); -} - void IOThread::ChangedToOnTheRecordOnIOThread() { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -326,8 +275,6 @@ void IOThread::RegisterPrefs(PrefRegistrySimple* registry) { std::string()); registry->RegisterBooleanPref(prefs::kEnableReferrers, true); registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, true); - registry->RegisterBooleanPref(prefs::kQuickCheckEnabled, true); - registry->RegisterBooleanPref(prefs::kPacHttpsUrlStrippingEnabled, true); } void IOThread::UpdateServerWhitelist() { @@ -355,24 +302,6 @@ void IOThread::UpdateDnsClientEnabled() { *dns_client_enabled_); } -void IOThread::RegisterSTHObserver( - certificate_transparency::STHObserver* observer) { - chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer); -} - -void IOThread::UnregisterSTHObserver( - certificate_transparency::STHObserver* observer) { - chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer); -} - -bool IOThread::WpadQuickCheckEnabled() const { - return quick_check_enabled_.GetValue(); -} - -bool IOThread::PacHttpsUrlStrippingEnabled() const { - return pac_https_url_stripping_enabled_.GetValue(); -} - std::unique_ptr CreateGlobalHostResolver( net::NetLog* net_log) { TRACE_EVENT0("startup", "IOThread::CreateGlobalHostResolver"); @@ -417,13 +346,7 @@ IOThread::CreateDefaultAuthHandlerFactory(net::HostResolver* host_resolver) { } void IOThread::SetUpProxyService( - network::URLRequestContextBuilderMojo* builder) const { - builder->set_pac_quick_check_enabled(WpadQuickCheckEnabled()); - builder->set_pac_sanitize_url_policy( - PacHttpsUrlStrippingEnabled() - ? net::ProxyResolutionService::SanitizeUrlPolicy::SAFE - : net::ProxyResolutionService::SanitizeUrlPolicy::UNSAFE); -} + network::URLRequestContextBuilderMojo* builder) const {} void IOThread::ConstructSystemRequestContext() { std::unique_ptr builder = @@ -437,7 +360,6 @@ void IOThread::ConstructSystemRequestContext() { std::unique_ptr host_resolver( CreateGlobalHostResolver(net_log_)); - builder->set_ssl_config_service(GetSSLConfigService()); builder->SetHttpAuthHandlerFactory( CreateDefaultAuthHandlerFactory(host_resolver.get())); @@ -452,13 +374,6 @@ void IOThread::ConstructSystemRequestContext() { network::IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( command_line, switches::kUserDataDir, std::move(cert_verifier))); - std::unique_ptr ct_verifier = - std::make_unique(); - // Add built-in logs - ct_verifier->AddLogs(globals_->ct_logs); - - builder->set_ct_verifier(std::move(ct_verifier)); - SetUpProxyService(builder.get()); globals_->quic_disabled = true; @@ -473,8 +388,7 @@ void IOThread::ConstructSystemRequestContext() { std::move(network_context_params_).get(), !is_quic_allowed_on_init_, net_log_, globals_->deprecated_network_quality_estimator.get()); globals_->system_request_context = - globals_->system_request_context_owner.url_request_context_getter - ->GetURLRequestContext(); + globals_->system_request_context_owner.url_request_context.get(); } else { globals_->system_network_context = content::GetNetworkServiceImpl()->CreateNetworkContextWithBuilder( From 158265c4203ab9c587edf06b180678618b6930cc Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 12:31:56 +0200 Subject: [PATCH 18/75] Use PacFileFetcherImpl::Create instead of constructor https://crrev.com/ab9fc65b771f --- vendor/brightray/browser/url_request_context_getter.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vendor/brightray/browser/url_request_context_getter.cc b/vendor/brightray/browser/url_request_context_getter.cc index cd25f8b46..f71e442c9 100644 --- a/vendor/brightray/browser/url_request_context_getter.cc +++ b/vendor/brightray/browser/url_request_context_getter.cc @@ -251,8 +251,7 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { proxy_service = network::CreateProxyResolutionServiceUsingMojoFactory( ChromeMojoProxyResolverFactory::CreateWithStrongBinding(), std::move(proxy_config_service_), - std::make_unique( - url_request_context_.get()), + net::PacFileFetcherImpl::Create(url_request_context_.get()), std::move(dhcp_pac_file_fetcher), host_resolver.get(), net_log_, url_request_context_->network_delegate()); } else { From 7d0cef84762d1f1bb13dfacbe8ec83cdd9e800a3 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 12:36:49 +0200 Subject: [PATCH 19/75] Use DefaultCTPolicyEnforcer instead of virtual CTPolicyEnforcer https://crrev.com/8a9c9c1ec686 --- vendor/brightray/browser/url_request_context_getter.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vendor/brightray/browser/url_request_context_getter.cc b/vendor/brightray/browser/url_request_context_getter.cc index f71e442c9..f7124ac23 100644 --- a/vendor/brightray/browser/url_request_context_getter.cc +++ b/vendor/brightray/browser/url_request_context_getter.cc @@ -307,7 +307,8 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { storage_->set_cert_transparency_verifier( std::make_unique()); - storage_->set_ct_policy_enforcer(std::make_unique()); + storage_->set_ct_policy_enforcer( + std::make_unique()); net::HttpNetworkSession::Params network_session_params; network_session_params.ignore_certificate_errors = false; From 6e65b4abb1ef9b3af4f490b7ccd84b3b43ce9e6a Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 12:55:31 +0200 Subject: [PATCH 20/75] Do not use deprecated MessageLoop::QuitWhenIdleClosure() https://crrev.com/5110d6ba3954 --- atom/browser/browser.cc | 2 +- vendor/brightray/browser/browser_main_parts.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/atom/browser/browser.cc b/atom/browser/browser.cc index 4420bd0ac..e06c2672f 100644 --- a/atom/browser/browser.cc +++ b/atom/browser/browser.cc @@ -92,7 +92,7 @@ void Browser::Shutdown() { if (base::ThreadTaskRunnerHandle::Get()) { base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, - base::MessageLoop::QuitWhenIdleClosure()); + base::RunLoop::QuitCurrentWhenIdleClosureDeprecated()); } else { // There is no message loop available so we are in early stage. exit(0); diff --git a/vendor/brightray/browser/browser_main_parts.cc b/vendor/brightray/browser/browser_main_parts.cc index 4b4f282aa..d4d4b3962 100644 --- a/vendor/brightray/browser/browser_main_parts.cc +++ b/vendor/brightray/browser/browser_main_parts.cc @@ -11,6 +11,7 @@ #include "base/command_line.h" #include "base/feature_list.h" +#include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "content/browser/devtools/devtools_http_handler.h" @@ -115,7 +116,7 @@ int BrowserX11IOErrorHandler(Display* d) { g_in_x11_io_error_handler = true; LOG(ERROR) << "X IO error received (X server probably went away)"; base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); + FROM_HERE, base::RunLoop::QuitCurrentWhenIdleClosureDeprecated()); return 0; } From 59ed79a6597d2849a7259436fbf88bfe829284a5 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:10:12 +0200 Subject: [PATCH 21/75] Migrate origin trials from content to blink https://crrev.com/6c24cdae1e15 --- atom/app/atom_content_client.cc | 2 +- atom/app/atom_content_client.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 314bf8e4d..0ff7ef9de 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -123,7 +123,7 @@ bool AtomContentClient::AllowScriptExtensionForServiceWorker( #endif } -content::OriginTrialPolicy* AtomContentClient::GetOriginTrialPolicy() { +blink::OriginTrialPolicy* AtomContentClient::GetOriginTrialPolicy() { if (!origin_trial_policy_) { origin_trial_policy_ = base::WrapUnique(new ChromeOriginTrialPolicy()); } diff --git a/atom/app/atom_content_client.h b/atom/app/atom_content_client.h index 59eedb90e..d05b46b58 100644 --- a/atom/app/atom_content_client.h +++ b/atom/app/atom_content_client.h @@ -30,7 +30,7 @@ class AtomContentClient : public brightray::ContentClient { void AddPepperPlugins( std::vector* plugins) override; bool AllowScriptExtensionForServiceWorker(const GURL& script_url) override; - content::OriginTrialPolicy* GetOriginTrialPolicy() override; + blink::OriginTrialPolicy* GetOriginTrialPolicy() override; void AddContentDecryptionModules( std::vector* cdms, From e6bc9a1657692ce6e2810b3df21d17e2ec55bbff Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 31 May 2018 13:59:49 +0200 Subject: [PATCH 22/75] Mark many methods as `override` to omit warnings --- atom/app/atom_content_client.h | 2 +- .../api/atom_extensions_api_client.cc | 7 ++-- .../api/atom_extensions_api_client.h | 4 +-- atom/browser/native_window.h | 34 +++++++++---------- atom/browser/native_window_views.h | 2 +- brave/browser/brave_content_browser_client.h | 6 ++-- brave/browser/renderer_preferences_helper.h | 4 +-- .../webui/chrome_web_ui_controller_factory.cc | 2 +- .../browser/inspectable_web_contents_impl.h | 2 +- .../browser/platform_notification_service.h | 2 +- 10 files changed, 31 insertions(+), 34 deletions(-) diff --git a/atom/app/atom_content_client.h b/atom/app/atom_content_client.h index d05b46b58..805111e7f 100644 --- a/atom/app/atom_content_client.h +++ b/atom/app/atom_content_client.h @@ -25,7 +25,7 @@ class AtomContentClient : public brightray::ContentClient { void SetActiveURL(const GURL& url, std::string top_origin) override; std::string GetProduct() const override; std::string GetUserAgent() const override; - void SetGpuInfo(const gpu::GPUInfo& gpu_info); + void SetGpuInfo(const gpu::GPUInfo& gpu_info) override; void AddAdditionalSchemes(Schemes* schemes) override; void AddPepperPlugins( std::vector* plugins) override; diff --git a/atom/browser/extensions/api/atom_extensions_api_client.cc b/atom/browser/extensions/api/atom_extensions_api_client.cc index 3203e378a..99651b89e 100644 --- a/atom/browser/extensions/api/atom_extensions_api_client.cc +++ b/atom/browser/extensions/api/atom_extensions_api_client.cc @@ -30,10 +30,9 @@ class AtomExtensionWebRequestEventRouterDelegate : public: AtomExtensionWebRequestEventRouterDelegate() {} ~AtomExtensionWebRequestEventRouterDelegate() override {} - void NotifyWebRequestWithheld( - int render_process_id, - int render_frame_id, - const std::string& extension_id) { + void NotifyWebRequestWithheld(int render_process_id, + int render_frame_id, + const std::string& extension_id) override { // TODO(bridiver) - will this ever be called? } private: diff --git a/atom/browser/extensions/api/atom_extensions_api_client.h b/atom/browser/extensions/api/atom_extensions_api_client.h index a3578713d..2455b4956 100644 --- a/atom/browser/extensions/api/atom_extensions_api_client.h +++ b/atom/browser/extensions/api/atom_extensions_api_client.h @@ -29,8 +29,8 @@ class AtomExtensionsAPIClient : public ExtensionsAPIClient { void AttachWebContentsHelpers(content::WebContents* web_contents) const override; std::unique_ptr - CreateGuestViewManagerDelegate( - content::BrowserContext* context) const; + CreateGuestViewManagerDelegate( + content::BrowserContext* context) const override; std::unique_ptr CreateWebRequestEventRouterDelegate() const override; ManagementAPIDelegate* CreateManagementAPIDelegate() const override; diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index b024f98b5..0199216ac 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -77,26 +77,26 @@ class NativeWindow : public base::SupportsUserData, ::Browser* browser() const { return browser_.get(); } - virtual void Close() = 0; + void Close() override = 0; virtual void CloseImmediately() = 0; virtual bool IsClosed() const { return is_closed_; } virtual void Focus(bool focus) = 0; virtual bool IsFocused() = 0; - virtual void Show() = 0; - virtual void ShowInactive() = 0; - virtual void Hide() = 0; - virtual bool IsVisible() const = 0; + void Show() override = 0; + void ShowInactive() override = 0; + void Hide() override = 0; + bool IsVisible() const override = 0; virtual bool IsEnabled() = 0; - virtual void Maximize() = 0; + void Maximize() override = 0; virtual void Unmaximize() = 0; - virtual bool IsMaximized() const = 0; - virtual void Minimize() = 0; - virtual void Restore() = 0; - virtual bool IsMinimized() const = 0; + bool IsMaximized() const override = 0; + void Minimize() override = 0; + void Restore() override = 0; + bool IsMinimized() const override = 0; virtual void SetFullScreen(bool fullscreen) = 0; - virtual bool IsFullscreen() const = 0; + bool IsFullscreen() const override = 0; virtual void SetBounds(const gfx::Rect& bounds, bool animate = false) = 0; - virtual gfx::Rect GetBounds() const = 0; + gfx::Rect GetBounds() const override = 0; virtual void SetSize(const gfx::Size& size, bool animate = false); virtual gfx::Size GetSize(); virtual void SetPosition(const gfx::Point& position, bool animate = false); @@ -130,12 +130,12 @@ class NativeWindow : public base::SupportsUserData, virtual bool IsFullScreenable() = 0; virtual void SetClosable(bool closable) = 0; virtual bool IsClosable() = 0; - virtual void SetAlwaysOnTop(bool top) = 0; - virtual bool IsAlwaysOnTop() const = 0; + void SetAlwaysOnTop(bool top) override = 0; + bool IsAlwaysOnTop() const override = 0; virtual void Center() = 0; virtual void SetTitle(const std::string& title) = 0; virtual std::string GetTitle() = 0; - virtual void FlashFrame(bool flash) = 0; + void FlashFrame(bool flash) override = 0; virtual void SetSkipTaskbar(bool skip) = 0; virtual void SetKiosk(bool kiosk) = 0; virtual bool IsKiosk() const = 0; @@ -151,7 +151,7 @@ class NativeWindow : public base::SupportsUserData, virtual void SetFocusable(bool focusable); virtual void SetMenu(AtomMenuModel* menu); virtual void SetParentWindow(NativeWindow* parent); - virtual gfx::NativeWindow GetNativeWindow() const = 0; + gfx::NativeWindow GetNativeWindow() const override = 0; virtual gfx::AcceleratedWidget GetAcceleratedWidget() = 0; // Taskbar/Dock APIs. @@ -170,7 +170,7 @@ class NativeWindow : public base::SupportsUserData, // Workspace APIs. virtual void SetVisibleOnAllWorkspaces(bool visible) = 0; - virtual bool IsVisibleOnAllWorkspaces() = 0; + bool IsVisibleOnAllWorkspaces() override = 0; // Webview APIs. virtual void FocusOnWebView(); diff --git a/atom/browser/native_window_views.h b/atom/browser/native_window_views.h index 793636339..989422201 100644 --- a/atom/browser/native_window_views.h +++ b/atom/browser/native_window_views.h @@ -189,7 +189,7 @@ class NativeWindowViews : public NativeWindow, gfx::Rect GetRestoredBounds() const override; // Returns the restore state for the window. - ui::WindowShowState GetRestoredState() const; + ui::WindowShowState GetRestoredState() const override; std::unique_ptr window_; views::View* web_view_; // Managed by inspectable_web_contents_. diff --git a/brave/browser/brave_content_browser_client.h b/brave/browser/brave_content_browser_client.h index c9a3de475..6640c4b5a 100644 --- a/brave/browser/brave_content_browser_client.h +++ b/brave/browser/brave_content_browser_client.h @@ -171,10 +171,8 @@ class BraveContentBrowserClient : public atom::AtomBrowserClient { const content::MainFunctionParams&) override; protected: - bool IsValidStoragePartitionId( - content::BrowserContext* browser_context, - const std::string& partition_id); - + bool IsValidStoragePartitionId(content::BrowserContext* browser_context, + const std::string& partition_id) override; private: // Populate |frame_interfaces_|. diff --git a/brave/browser/renderer_preferences_helper.h b/brave/browser/renderer_preferences_helper.h index d56e00ecb..4bc2d6920 100644 --- a/brave/browser/renderer_preferences_helper.h +++ b/brave/browser/renderer_preferences_helper.h @@ -26,8 +26,8 @@ class RendererPreferencesHelper : friend class content::WebContentsUserData; // WebContentsObserver implementation - virtual void RenderViewHostChanged(content::RenderViewHost* old_host, - content::RenderViewHost* new_host); + void RenderViewHostChanged(content::RenderViewHost* old_host, + content::RenderViewHost* new_host) override; // Update the WebContents's RendererPreferences. void UpdateRendererPreferences(); diff --git a/chromium_src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chromium_src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index b434c9a05..09370f2cc 100644 --- a/chromium_src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chromium_src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -61,7 +61,7 @@ class BraveDataSource : public content::URLDataSource, fetcher->Start(); } - void OnURLFetchComplete(const net::URLFetcher* source) { + void OnURLFetchComplete(const net::URLFetcher* source) override { DCHECK(source); PendingRequestsMap::iterator it = pending_.find(source); DCHECK(it != pending_.end()); diff --git a/vendor/brightray/browser/inspectable_web_contents_impl.h b/vendor/brightray/browser/inspectable_web_contents_impl.h index 78c2bb852..0200b75db 100644 --- a/vendor/brightray/browser/inspectable_web_contents_impl.h +++ b/vendor/brightray/browser/inspectable_web_contents_impl.h @@ -141,7 +141,7 @@ class InspectableWebContentsImpl : const std::string& value) override; void RemovePreference(const std::string& name) override; void ClearPreferences() override; - void ShowCertificateViewer(const std::string& cert_chain); + void ShowCertificateViewer(const std::string& cert_chain) override; // content::DevToolsFrontendHostDelegate: void HandleMessageFromDevToolsFrontend(const std::string& message); diff --git a/vendor/brightray/browser/platform_notification_service.h b/vendor/brightray/browser/platform_notification_service.h index f83e1b386..e50c241dd 100644 --- a/vendor/brightray/browser/platform_notification_service.h +++ b/vendor/brightray/browser/platform_notification_service.h @@ -45,7 +45,7 @@ class PlatformNotificationService const content::PlatformNotificationData& notification_data, const content::NotificationResources& notification_resources) override; void CloseNotification(content::BrowserContext* browser_context, - const std::string& notification_id); + const std::string& notification_id) override; void ClosePersistentNotification( content::BrowserContext* browser_context, const std::string& notification_id) override; From 3e61d3893876ee2cf0d6c1847c7304a6b5f9b5dd Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:22:38 +0200 Subject: [PATCH 23/75] C68 updates to AutofillClient https://crrev.com/5f6a7ca2a314 --- atom/browser/autofill/atom_autofill_client.cc | 6 ------ atom/browser/autofill/atom_autofill_client.h | 2 -- 2 files changed, 8 deletions(-) diff --git a/atom/browser/autofill/atom_autofill_client.cc b/atom/browser/autofill/atom_autofill_client.cc index 7ab64745b..fb7cd475c 100644 --- a/atom/browser/autofill/atom_autofill_client.cc +++ b/atom/browser/autofill/atom_autofill_client.cc @@ -71,11 +71,6 @@ PersonalDataManager* AtomAutofillClient::GetPersonalDataManager() { return PersonalDataManagerFactory::GetForBrowserContext(context); } -autofill::SaveCardBubbleController* -AtomAutofillClient::GetSaveCardBubbleController() { - return nullptr; -} - scoped_refptr AtomAutofillClient::GetDatabase() { content::BrowserContext* context = web_contents()->GetBrowserContext(); return static_cast(context) @@ -126,7 +121,6 @@ void AtomAutofillClient::ConfirmSaveCreditCardLocally( void AtomAutofillClient::ConfirmSaveCreditCardToCloud( const CreditCard& card, std::unique_ptr legal_message, - bool should_cvc_be_requested, const base::Closure& callback) { } diff --git a/atom/browser/autofill/atom_autofill_client.h b/atom/browser/autofill/atom_autofill_client.h index 7e95e554e..b701c113c 100644 --- a/atom/browser/autofill/atom_autofill_client.h +++ b/atom/browser/autofill/atom_autofill_client.h @@ -48,7 +48,6 @@ class AtomAutofillClient int index); // AutofillClient: - SaveCardBubbleController* GetSaveCardBubbleController() override; PersonalDataManager* GetPersonalDataManager() override; scoped_refptr GetDatabase() override; PrefService* GetPrefs() override; @@ -66,7 +65,6 @@ class AtomAutofillClient void ConfirmSaveCreditCardToCloud( const CreditCard& card, std::unique_ptr legal_message, - bool should_cvc_be_requested, const base::Closure& callback) override; void LoadRiskData( const base::Callback& callback) override; From 219d8338badcf386cccd9a955c0b7c35b2b5a286 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:32:50 +0200 Subject: [PATCH 24/75] C68 changes to PasswordManagerClient https://crrev.com/86986391812c --- .../brave_password_manager_client.cc | 39 ++++++++++--------- .../brave_password_manager_client.h | 10 ++--- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/brave/browser/password_manager/brave_password_manager_client.cc b/brave/browser/password_manager/brave_password_manager_client.cc index 3f10ea12c..d1f1dd289 100644 --- a/brave/browser/password_manager/brave_password_manager_client.cc +++ b/brave/browser/password_manager/brave_password_manager_client.cc @@ -151,7 +151,7 @@ void BravePasswordManagerClient::DidClickNever() { void BravePasswordManagerClient::DidClickUpdate() { if (form_to_save_) { - form_to_save_->Update(form_to_save_->pending_credentials()); + form_to_save_->Update(form_to_save_->GetPendingCredentials()); } } @@ -222,33 +222,34 @@ bool BravePasswordManagerClient::OnCredentialManagerUsed() { } bool BravePasswordManagerClient::PromptUserToSaveOrUpdatePassword( - std::unique_ptr form_to_save, + std::unique_ptr form_to_save, bool update_password) { // Save password infobar and the password bubble prompts in case of // "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://). if (!CanShowBubbleOnURL(web_contents()->GetLastCommittedURL())) return false; - const autofill::PasswordForm *form = form_to_save->submitted_form(); - // Don't save password for confirmation page (ex. Trezor passphrase) - if (IsPossibleConfirmPasswordForm(*form)) - return false; + // FIXME(hferreiro) + // const autofill::PasswordForm *form = form_to_save->submitted_form(); + // // Don't save password for confirmation page (ex. Trezor passphrase) + // if (IsPossibleConfirmPasswordForm(*form)) + // return false; form_to_save_ = std::move(form_to_save); - if (update_password) { - api_web_contents_->Emit("update-password", form->username_value, - form->signon_realm); - } else { - if (form_to_save_->IsBlacklisted()) - return false; - if (api_web_contents_) { - api_web_contents_->Emit("save-password", form->username_value, - form->signon_realm); - } - } + // if (update_password) { + // api_web_contents_->Emit("update-password", form->username_value, + // form->signon_realm); + // } else { + // if (form_to_save_->IsBlacklisted()) + // return false; + // if (api_web_contents_) { + // api_web_contents_->Emit("save-password", form->username_value, + // form->signon_realm); + // } + // } return true; } void BravePasswordManagerClient::ShowManualFallbackForSaving( - std::unique_ptr form_to_save, + std::unique_ptr form_to_save, bool has_generated_password, bool is_update) {} @@ -325,7 +326,7 @@ void BravePasswordManagerClient::NotifyStorePasswordCalled() { } void BravePasswordManagerClient::AutomaticPasswordSave( - std::unique_ptr saved_form) { + std::unique_ptr saved_form) { } void BravePasswordManagerClient::PasswordWasAutofilled( diff --git a/brave/browser/password_manager/brave_password_manager_client.h b/brave/browser/password_manager/brave_password_manager_client.h index 911389258..b3994a719 100644 --- a/brave/browser/password_manager/brave_password_manager_client.h +++ b/brave/browser/password_manager/brave_password_manager_client.h @@ -74,10 +74,10 @@ class BravePasswordManagerClient const HSTSCallback& callback) const override; bool OnCredentialManagerUsed() override; bool PromptUserToSaveOrUpdatePassword( - std::unique_ptr form_to_save, + std::unique_ptr form_to_save, bool update_password) override; void ShowManualFallbackForSaving( - std::unique_ptr form_to_save, + std::unique_ptr form_to_save, bool has_generated_password, bool is_update) override; void HideManualFallbackForSaving() override; @@ -96,8 +96,8 @@ class BravePasswordManagerClient const autofill::PasswordForm& form) override; void NotifyStorePasswordCalled() override; void AutomaticPasswordSave( - std::unique_ptr saved_form_manager) - override; + std::unique_ptr + saved_form_manager) override; void PasswordWasAutofilled( const std::map& best_matches, @@ -234,7 +234,7 @@ class BravePasswordManagerClient // form for potential use during 'NotifySuccessfulLoginWithExistingPassword'. std::unique_ptr possible_auto_sign_in_; - std::unique_ptr form_to_save_; + std::unique_ptr form_to_save_; atom::api::WebContents* api_web_contents_; From 4c30742cec6319afddb53f60ed4af180db563555 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:38:57 +0200 Subject: [PATCH 25/75] Implement missing BraveCredentialsFilter::ShouldSavePasswordHash() https://crrev.com/f470d5329889 --- brave/browser/password_manager/brave_credentials_filter.cc | 5 +++++ brave/browser/password_manager/brave_credentials_filter.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/brave/browser/password_manager/brave_credentials_filter.cc b/brave/browser/password_manager/brave_credentials_filter.cc index d84c20f5b..d40b1b07a 100644 --- a/brave/browser/password_manager/brave_credentials_filter.cc +++ b/brave/browser/password_manager/brave_credentials_filter.cc @@ -22,6 +22,11 @@ bool BraveCredentialsFilter::ShouldSave( return true; } +bool BraveCredentialsFilter::ShouldSavePasswordHash( + const autofill::PasswordForm& form) const { + return true; +} + void BraveCredentialsFilter::ReportFormLoginSuccess( const PasswordFormManager& form_manager) const {} diff --git a/brave/browser/password_manager/brave_credentials_filter.h b/brave/browser/password_manager/brave_credentials_filter.h index 45e4a1a27..67f3a311a 100644 --- a/brave/browser/password_manager/brave_credentials_filter.h +++ b/brave/browser/password_manager/brave_credentials_filter.h @@ -24,6 +24,8 @@ class BraveCredentialsFilter : public CredentialsFilter { std::vector> results) const override; bool ShouldSave(const autofill::PasswordForm& form) const override; + bool ShouldSavePasswordHash( + const autofill::PasswordForm& form) const override; void ReportFormLoginSuccess( const PasswordFormManager& form_manager) const override; From d79795eb34136932d93a854f9db6793c84a259b1 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:50:17 +0200 Subject: [PATCH 26/75] Update RegisterInProcessServices() parameters https://crrev.com/b7f4df2eb038 --- brave/browser/brave_content_browser_client.cc | 3 ++- brave/browser/brave_content_browser_client.h | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 1848528af..88dc750f0 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -401,7 +401,8 @@ void BraveContentBrowserClient::ExposeInterfacesToRenderer( } void BraveContentBrowserClient::RegisterInProcessServices( - StaticServiceMap* services) { + StaticServiceMap* services, + content::ServiceManagerConnection* connection) { { service_manager::EmbeddedServiceInfo info; info.factory = ChromeService::GetInstance()->CreateChromeServiceFactory(); diff --git a/brave/browser/brave_content_browser_client.h b/brave/browser/brave_content_browser_client.h index 6640c4b5a..3d647d3a5 100644 --- a/brave/browser/brave_content_browser_client.h +++ b/brave/browser/brave_content_browser_client.h @@ -61,7 +61,9 @@ class BraveContentBrowserClient : public atom::AtomBrowserClient { service_manager::BinderRegistry* registry, blink::AssociatedInterfaceRegistry* associated_registry, content::RenderProcessHost* render_process_host) override; - void RegisterInProcessServices(StaticServiceMap* services) override; + void RegisterInProcessServices( + StaticServiceMap* services, + content::ServiceManagerConnection* connection) override; void RegisterOutOfProcessServices(OutOfProcessServiceMap* services) override; void BindInterfaceRequestFromFrame( content::RenderFrameHost* render_frame_host, From 79a285c1a48a04c41d958918099643db0c1b6c57 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 1 Jun 2018 13:52:58 +0200 Subject: [PATCH 27/75] Update CreateLoginDelegate() parameters https://crrev.com/8e165d23e87e --- atom/browser/login_handler.cc | 17 +++++++++-------- atom/browser/login_handler.h | 11 ++++++----- brave/browser/brave_content_browser_client.cc | 10 +++++----- brave/browser/brave_content_browser_client.h | 5 ++--- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/atom/browser/login_handler.cc b/atom/browser/login_handler.cc index 0e0cb2048..1d00799cb 100644 --- a/atom/browser/login_handler.cc +++ b/atom/browser/login_handler.cc @@ -22,21 +22,22 @@ using content::BrowserThread; namespace atom { -LoginHandler::LoginHandler(net::AuthChallengeInfo* auth_info, - content::ResourceRequestInfo::WebContentsGetter web_contents_getter, - bool is_main_frame, - const GURL& url, - const base::Callback&)>& - auth_required_callback) +LoginHandler::LoginHandler( + net::AuthChallengeInfo* auth_info, + content::ResourceRequestInfo::WebContentsGetter web_contents_getter, + bool is_request_for_main_frame, + const GURL& url, + LoginAuthRequiredCallback auth_required_callback) : handled_auth_(false), auth_info_(auth_info), web_contents_getter_(web_contents_getter), - auth_required_callback_(auth_required_callback) { + auth_required_callback_(std::move(auth_required_callback)) { // Fill request details on IO thread. std::unique_ptr request_details( new base::DictionaryValue); request_details->SetKey("url", base::Value(url.spec())); - request_details->SetKey("isMainFrame", base::Value(is_main_frame)); + request_details->SetKey("isMainFrame", + base::Value(is_request_for_main_frame)); BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, diff --git a/atom/browser/login_handler.h b/atom/browser/login_handler.h index 1a479930e..0d2f4a908 100644 --- a/atom/browser/login_handler.h +++ b/atom/browser/login_handler.h @@ -11,6 +11,9 @@ #include "content/public/browser/resource_request_info.h" #include "net/base/auth.h" +using LoginAuthRequiredCallback = + base::OnceCallback&)>; + namespace content { class WebContents; } @@ -26,10 +29,9 @@ class LoginHandler : public content::LoginDelegate { public: LoginHandler(net::AuthChallengeInfo* auth_info, content::ResourceRequestInfo::WebContentsGetter web_contents_getter, - bool is_main_frame, + bool is_request_for_main_frame, const GURL& url, - const base::Callback&)>& - auth_required_callback); + LoginAuthRequiredCallback auth_required_callback); // Returns the WebContents associated with the request, must be called on UI // thread. @@ -67,8 +69,7 @@ class LoginHandler : public content::LoginDelegate { content::ResourceRequestInfo::WebContentsGetter web_contents_getter_; - base::Callback&)> - auth_required_callback_; + LoginAuthRequiredCallback auth_required_callback_; DISALLOW_COPY_AND_ASSIGN(LoginHandler); }; diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 88dc750f0..83b953045 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -893,13 +893,13 @@ scoped_refptr BraveContentBrowserClient::CreateLoginDelegate( net::AuthChallengeInfo* auth_info, content::ResourceRequestInfo::WebContentsGetter web_contents_getter, - bool is_main_frame, + bool is_request_for_main_frame, const GURL& url, bool first_auth_attempt, - const base::Callback&)>& - auth_required_callback) { - return base::MakeRefCounted(auth_info, - web_contents_getter, is_main_frame, url, auth_required_callback); + LoginAuthRequiredCallback auth_required_callback) { + return base::MakeRefCounted( + auth_info, web_contents_getter, is_request_for_main_frame, url, + std::move(auth_required_callback)); } std::unique_ptr diff --git a/brave/browser/brave_content_browser_client.h b/brave/browser/brave_content_browser_client.h index 3d647d3a5..845275d4c 100644 --- a/brave/browser/brave_content_browser_client.h +++ b/brave/browser/brave_content_browser_client.h @@ -150,11 +150,10 @@ class BraveContentBrowserClient : public atom::AtomBrowserClient { scoped_refptr CreateLoginDelegate( net::AuthChallengeInfo* auth_info, content::ResourceRequestInfo::WebContentsGetter web_contents_getter, - bool is_main_frame, + bool is_request_for_main_frame, const GURL& url, bool first_auth_attempt, - const base::Callback&)>& - auth_required_callback) override; + LoginAuthRequiredCallback auth_required_callback) override; std::vector> CreateThrottlesForNavigation( From 729cf644c45f8d92626c5538a3659b2667cb289f Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 12:14:25 +0200 Subject: [PATCH 28/75] C68 updates to browser_process_impl.cc --- chromium_src/BUILD.gn | 2 ++ .../chrome/browser/browser_process_impl.cc | 27 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 6a4a2a1de..d71727888 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -261,6 +261,8 @@ source_set("browser") { "//chrome/browser/renderer_preferences_util.cc", "//chrome/browser/renderer_preferences_util.h", + "//chrome/browser/ssl/ssl_config_service_manager.h", + "//chrome/browser/ssl/ssl_config_service_manager_pref.cc", "//chrome/browser/site_details.cc", "//chrome/browser/site_details.h", "//chrome/browser/ui/browser_finder.cc", diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index b45c7093e..9b7dd6dc2 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -27,6 +27,7 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h" #include "chrome/browser/shell_integration.h" +#include "chrome/browser/ssl/ssl_config_service_manager.h" #include "chrome/browser/status_icons/status_tray.h" #include "chrome/browser/ui/user_manager.h" #include "chrome/common/chrome_features.h" @@ -47,6 +48,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/common/content_switches.h" #include "content/public/common/network_connection_tracker.h" +#include "content/public/common/service_manager_connection.h" #include "ppapi/buildflags/buildflags.h" #include "ui/base/idle/idle.h" #include "ui/base/l10n/l10n_util.h" @@ -70,7 +72,6 @@ #include "components/gcm_driver/gcm_driver.h" #include "components/network_time/network_time_tracker.h" #include "components/net_log/chrome_net_log.h" -#include "components/physical_web/data_source/physical_web_data_source.h" #include "components/subresource_filter/content/browser/content_ruleset_service.h" #include "services/preferences/public/cpp/in_process_service_factory.h" #include "chrome/browser/component_updater/supervised_user_whitelist_installer.h" @@ -180,9 +181,6 @@ BrowserProcessImpl::~BrowserProcessImpl() { void BrowserProcessImpl::PostDestroyThreads() { - // This observes |local_state_|, so should be destroyed before it. - system_network_context_manager_.reset(); - // Reset associated state right after actual thread is stopped, // as io_thread_.global_ cleanup happens in CleanUp on the IO // thread, i.e. as the thread exits its message loop. @@ -245,6 +243,9 @@ void BrowserProcessImpl::StartTearDown() { if (local_state()) { local_state()->CommitPendingWrite(); } + + // This expects to be destroyed before the task scheduler is torn down. + system_network_context_manager_.reset(); } safe_browsing::SafeBrowsingService* @@ -312,7 +313,7 @@ void BrowserProcessImpl::CreateLocalState() { // but that pulls in way too many unneeded stuff. IOThread::RegisterPrefs(pref_registry.get()); PrefProxyConfigTrackerImpl::RegisterPrefs(pref_registry.get()); - ssl_config::SSLConfigServiceManager::RegisterPrefs(pref_registry.get()); + SSLConfigServiceManager::RegisterPrefs(pref_registry.get()); GpuModeManager::RegisterPrefs(pref_registry.get()); pref_change_registrar_.Init(local_state_.get()); @@ -373,7 +374,10 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { #endif // BUILDFLAG(ENABLE_PLUGINS) #if BUILDFLAG(ENABLE_EXTENSIONS) - storage_monitor::StorageMonitor::Create(); + storage_monitor::StorageMonitor::Create( + content::ServiceManagerConnection::GetForProcess() + ->GetConnector() + ->Clone()); #endif // Start the tab manager here so that we give the most amount of time for the @@ -578,8 +582,9 @@ IOThread* BrowserProcessImpl::io_thread() { SystemNetworkContextManager* BrowserProcessImpl::system_network_context_manager() { - NOTIMPLEMENTED(); - return nullptr; + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(system_network_context_manager_.get()); + return system_network_context_manager_.get(); } content::NetworkConnectionTracker* @@ -731,12 +736,6 @@ BrowserProcessImpl::CachedDefaultWebClientState() { return shell_integration::UNKNOWN_DEFAULT; } -physical_web::PhysicalWebDataSource* -BrowserProcessImpl::GetPhysicalWebDataSource() { - NOTIMPLEMENTED(); - return nullptr; -} - component_updater::ComponentUpdateService* BrowserProcessImpl::component_updater() { return nullptr; } void BrowserProcessImpl::OnKeepAliveStateChanged(bool is_keeping_alive) {} From bf35cbaa55818b0a36675160a98ab65db799ae45 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 13:35:31 +0200 Subject: [PATCH 29/75] TabStripModelDelegate::CreateNewStripWithContents() parameters https://crrev.com/07316673b145 --- brave/browser/ui/brave_tab_strip_model_delegate.cc | 2 +- brave/browser/ui/brave_tab_strip_model_delegate.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/brave/browser/ui/brave_tab_strip_model_delegate.cc b/brave/browser/ui/brave_tab_strip_model_delegate.cc index ee6eb656d..4e1657ec1 100644 --- a/brave/browser/ui/brave_tab_strip_model_delegate.cc +++ b/brave/browser/ui/brave_tab_strip_model_delegate.cc @@ -25,7 +25,7 @@ void BraveTabStripModelDelegate::AddTabAt(const GURL& url, } Browser* BraveTabStripModelDelegate::CreateNewStripWithContents( - const std::vector& contentses, + std::vector contentses, const gfx::Rect& window_bounds, bool maximize) { // TODO(bbondy) diff --git a/brave/browser/ui/brave_tab_strip_model_delegate.h b/brave/browser/ui/brave_tab_strip_model_delegate.h index 00d6190e9..a3b848097 100644 --- a/brave/browser/ui/brave_tab_strip_model_delegate.h +++ b/brave/browser/ui/brave_tab_strip_model_delegate.h @@ -23,7 +23,7 @@ class BraveTabStripModelDelegate : public TabStripModelDelegate { // Overridden from TabStripModelDelegate: void AddTabAt(const GURL& url, int index, bool foreground) override; Browser* CreateNewStripWithContents( - const std::vector& contentses, + std::vector contentses, const gfx::Rect& window_bounds, bool maximize) override; void WillAddWebContents(content::WebContents* contents) override; From 38e2629cab9423cbd2dd4d8fc5275f2a541afb6e Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 13:41:44 +0200 Subject: [PATCH 30/75] DROP fix Chromium compilation error --- patches/master_patch.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/patches/master_patch.patch b/patches/master_patch.patch index 042236589..40c9d6ab3 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -991,6 +991,21 @@ index d63e90b6c5079ab3237c4bad3d5e63ce2f99c657..a11bccc62f9ed847013903a48c826bd8 return nullptr; } +diff --git a/chrome/renderer/worker_content_settings_client.cc b/chrome/renderer/worker_content_settings_client.cc +index 29993973814ea5ffd6bc2d6767a0dc74d79ded58..4a76ff3ad63cfa2489fbcd49dc6e9531f454a807 100644 +--- a/chrome/renderer/worker_content_settings_client.cc ++++ b/chrome/renderer/worker_content_settings_client.cc +@@ -29,8 +29,8 @@ WorkerContentSettingsClient::WorkerContentSettingsClient( + url::Origin(frame->Top()->GetSecurityOrigin()).GetURL(); + allow_running_insecure_content_ = ContentSettingsObserver::Get(render_frame) + ->allow_running_insecure_content(); +- content_setting_rules_ = +- ContentSettingsObserver::Get(render_frame)->GetContentSettingRules(); ++ //content_setting_rules_ = ++ // ContentSettingsObserver::Get(render_frame)->GetContentSettingRules(); + } + + WorkerContentSettingsClient::WorkerContentSettingsClient( diff --git a/chrome/utility/importer/external_process_importer_bridge.h b/chrome/utility/importer/external_process_importer_bridge.h index 47109f604cf982e74511749890c6fb1ec9ca98f2..4d25f3ae2ca8704046a787e0fb35cdf83c1f9e8f 100644 --- a/chrome/utility/importer/external_process_importer_bridge.h From e800238924096e2e7af16f566b1df25d9ece24ab Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 14:15:42 +0200 Subject: [PATCH 31/75] RenderWidgetHost::WasResized() => SynchronizeVisualProperties() https://crrev.com/0b91182640b1 --- atom/browser/common_web_contents_delegate.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/browser/common_web_contents_delegate.cc b/atom/browser/common_web_contents_delegate.cc index d5390b1c8..e7e4a3001 100644 --- a/atom/browser/common_web_contents_delegate.cc +++ b/atom/browser/common_web_contents_delegate.cc @@ -283,7 +283,7 @@ void CommonWebContentsDelegate::EnterFullscreenModeForTab( return; SetHtmlApiFullscreen(true); owner_window_->NotifyWindowEnterHtmlFullScreen(); - source->GetRenderViewHost()->GetWidget()->WasResized(); + source->GetRenderViewHost()->GetWidget()->SynchronizeVisualProperties(); } void CommonWebContentsDelegate::ExitFullscreenModeForTab( @@ -293,7 +293,7 @@ void CommonWebContentsDelegate::ExitFullscreenModeForTab( SetHtmlApiFullscreen(false); owner_window_->NotifyWindowLeaveHtmlFullScreen(); if (source) - source->GetRenderViewHost()->GetWidget()->WasResized(); + source->GetRenderViewHost()->GetWidget()->SynchronizeVisualProperties(); } bool CommonWebContentsDelegate::IsFullscreenForTabOrPending( From 912fb3818581f50d2f07eb01220541df2207a70d Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 14:26:18 +0200 Subject: [PATCH 32/75] Change blink::WebInputEvent timestamp from double to base::TimeTicks https://crrev.com/224569ee2424 --- atom/common/native_mate_converters/blink_converter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/native_mate_converters/blink_converter.cc b/atom/common/native_mate_converters/blink_converter.cc index 64704d1bd..ba90a731e 100644 --- a/atom/common/native_mate_converters/blink_converter.cc +++ b/atom/common/native_mate_converters/blink_converter.cc @@ -165,7 +165,7 @@ bool Converter::FromV8( std::vector modifiers; if (dict.Get("modifiers", &modifiers)) out->SetModifiers(VectorToBitArray(modifiers)); - out->SetTimeStampSeconds(base::Time::Now().ToDoubleT()); + out->SetTimeStamp(base::TimeTicks::Now()); return true; } From 9e9d94e12b09f37167607efb20da36440088c976 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 14:36:04 +0200 Subject: [PATCH 33/75] base::SetFdLimit() => IncreaseFdLimitTo() https://crrev.com/6f2ff42cfc22 --- atom/common/api/atom_bindings.cc | 2 +- docs-translations/es/api/process.md | 10 +++++++--- docs-translations/jp/api/process.md | 6 ++++-- docs-translations/ko-KR/api/process.md | 7 ++++--- docs-translations/pt-BR/api/process.md | 6 +++--- docs-translations/zh-CN/api/process.md | 6 ++++-- docs-translations/zh-TW/api/process.md | 7 ++++--- docs/api/process.md | 7 ++++--- 8 files changed, 31 insertions(+), 20 deletions(-) diff --git a/atom/common/api/atom_bindings.cc b/atom/common/api/atom_bindings.cc index 6e591df58..61a726918 100644 --- a/atom/common/api/atom_bindings.cc +++ b/atom/common/api/atom_bindings.cc @@ -91,7 +91,7 @@ void AtomBindings::BindTo(v8::Isolate* isolate, dict.SetMethod("log", &Log); dict.SetMethod("getSystemMemoryInfo", &GetSystemMemoryInfo); #if defined(OS_POSIX) - dict.SetMethod("setFdLimit", &base::SetFdLimit); + dict.SetMethod("increaseFdLimitTo", &base::IncreaseFdLimitTo); #endif dict.SetMethod("activateUvLoop", base::Bind(&AtomBindings::ActivateUVLoop, base::Unretained(this))); diff --git a/docs-translations/es/api/process.md b/docs-translations/es/api/process.md index 1a905125d..4eac9bd70 100644 --- a/docs-translations/es/api/process.md +++ b/docs-translations/es/api/process.md @@ -38,10 +38,14 @@ El objeto `process` tiene los siguientes métodos: Interrumpe el hilo principal del proceso actual. -### process.setFdLimit(maxDescriptors) _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. + Establece el límite dinámico del descriptor del archivo en `maxDescriptors` -o en el límite estricto del Sistema Operativo, el que sea menor para el -proceso actual. +o en el límite estricto del Sistema Operativo, el que sea menor. Si el límite +ya es mayor que `maxDescriptor`, entonces no ocurre nada. diff --git a/docs-translations/jp/api/process.md b/docs-translations/jp/api/process.md index 6bded869d..b9ffc1aae 100644 --- a/docs-translations/jp/api/process.md +++ b/docs-translations/jp/api/process.md @@ -72,11 +72,13 @@ Windows Store App (appx)として動作中の場合は、値は`true`になり このプロセスのメインスレッドをハングさせます。 -### `process.setFdLimit(maxDescriptors)` _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -ファイルデスクリプタの最大数のソフトリミットを、`maxDescriptors`かOSのハードリミットの、どちらか低い方に設定します。 +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. ### `process.getSystemMemoryInfo()` diff --git a/docs-translations/ko-KR/api/process.md b/docs-translations/ko-KR/api/process.md index b52ac7cdc..86bd37b7e 100644 --- a/docs-translations/ko-KR/api/process.md +++ b/docs-translations/ko-KR/api/process.md @@ -74,12 +74,13 @@ Causes the main thread of the current process crash. Causes the main thread of the current process hang. -### `process.setFdLimit(maxDescriptors)` _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -Sets the file descriptor soft limit to `maxDescriptors` or the OS hard -limit, whichever is lower for the current process. +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. ### `process.getSystemMemoryInfo()` diff --git a/docs-translations/pt-BR/api/process.md b/docs-translations/pt-BR/api/process.md index 814c4c15e..ac2c037ad 100644 --- a/docs-translations/pt-BR/api/process.md +++ b/docs-translations/pt-BR/api/process.md @@ -40,9 +40,9 @@ O objeto `process` tem os seguintes métodos: Faz com que o *thread* principal do processo congele. -### `process.setFdLimit(maxDescriptors)` _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -Define o limite do arquivo descritor para `maxDescriptors` ou para o limite do OS, -o que for menor para o processo atual. +Acrecenta o limite do arquivo descritor para `maxDescriptors` ou para o limite do OS, +o que for menor. Se o limite ja é maior que `maxDescriptors`, não faz nada. diff --git a/docs-translations/zh-CN/api/process.md b/docs-translations/zh-CN/api/process.md index c52591c54..4a4c370c9 100644 --- a/docs-translations/zh-CN/api/process.md +++ b/docs-translations/zh-CN/api/process.md @@ -41,8 +41,10 @@ process.once('loaded', function() { 使当前进程的主线程挂起. -### `process.setFdLimit(maxDescriptors)` _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -设置文件描述符软限制于 `maxDescriptors` 或硬限制与os, 无论它是否低于当前进程. +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. diff --git a/docs-translations/zh-TW/api/process.md b/docs-translations/zh-TW/api/process.md index bb83f42b1..295d29b22 100644 --- a/docs-translations/zh-TW/api/process.md +++ b/docs-translations/zh-TW/api/process.md @@ -15,9 +15,10 @@ 會導致目前行程的主執行緒停住 -## process.setFdLimit(maxDescriptors) _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -設置文件描述符 (file descriptor) soft limit `maxDescriptors` 或 OS hard -limit ,以較低者為準當目前的行程。 +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. diff --git a/docs/api/process.md b/docs/api/process.md index 4b796b9e4..b0e373958 100644 --- a/docs/api/process.md +++ b/docs/api/process.md @@ -74,12 +74,13 @@ Causes the main thread of the current process crash. Causes the main thread of the current process hang. -### `process.setFdLimit(maxDescriptors)` _macOS_ _Linux_ +### `process.increaseFdLimitTo(maxDescriptors)` _macOS_ _Linux_ * `maxDescriptors` Integer -Sets the file descriptor soft limit to `maxDescriptors` or the OS hard -limit, whichever is lower for the current process. +Increases the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower. If the limit is already higher than +`maxDescriptors`, then nothing happens. ### `process.getSystemMemoryInfo()` From b7c2964e0016d9c2d6c5f2ac98236c807330dd7f Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 14:39:50 +0200 Subject: [PATCH 34/75] Add FALLTHROUGH to avoid `-Wimplicit-fallthrough` warnings --- atom/common/keyboard_util.cc | 42 +++++++++---------- .../content_converter.cc | 2 + 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/atom/common/keyboard_util.cc b/atom/common/keyboard_util.cc index c8e9628f3..b756d6340 100644 --- a/atom/common/keyboard_util.cc +++ b/atom/common/keyboard_util.cc @@ -52,28 +52,28 @@ ui::KeyboardCode KeyboardCodeFromCharCode(base::char16 c, bool* shifted) { case 'y': return ui::VKEY_Y; case 'z': return ui::VKEY_Z; - case ')': *shifted = true; case '0': return ui::VKEY_0; - case '!': *shifted = true; case '1': return ui::VKEY_1; - case '@': *shifted = true; case '2': return ui::VKEY_2; - case '#': *shifted = true; case '3': return ui::VKEY_3; - case '$': *shifted = true; case '4': return ui::VKEY_4; - case '%': *shifted = true; case '5': return ui::VKEY_5; - case '^': *shifted = true; case '6': return ui::VKEY_6; - case '&': *shifted = true; case '7': return ui::VKEY_7; - case '*': *shifted = true; case '8': return ui::VKEY_8; - case '(': *shifted = true; case '9': return ui::VKEY_9; + case ')': *shifted = true; FALLTHROUGH; case '0': return ui::VKEY_0; + case '!': *shifted = true; FALLTHROUGH; case '1': return ui::VKEY_1; + case '@': *shifted = true; FALLTHROUGH; case '2': return ui::VKEY_2; + case '#': *shifted = true; FALLTHROUGH; case '3': return ui::VKEY_3; + case '$': *shifted = true; FALLTHROUGH; case '4': return ui::VKEY_4; + case '%': *shifted = true; FALLTHROUGH; case '5': return ui::VKEY_5; + case '^': *shifted = true; FALLTHROUGH; case '6': return ui::VKEY_6; + case '&': *shifted = true; FALLTHROUGH; case '7': return ui::VKEY_7; + case '*': *shifted = true; FALLTHROUGH; case '8': return ui::VKEY_8; + case '(': *shifted = true; FALLTHROUGH; case '9': return ui::VKEY_9; - case ':': *shifted = true; case ';': return ui::VKEY_OEM_1; - case '+': *shifted = true; case '=': return ui::VKEY_OEM_PLUS; - case '<': *shifted = true; case ',': return ui::VKEY_OEM_COMMA; - case '_': *shifted = true; case '-': return ui::VKEY_OEM_MINUS; - case '>': *shifted = true; case '.': return ui::VKEY_OEM_PERIOD; - case '?': *shifted = true; case '/': return ui::VKEY_OEM_2; - case '~': *shifted = true; case '`': return ui::VKEY_OEM_3; - case '{': *shifted = true; case '[': return ui::VKEY_OEM_4; - case '|': *shifted = true; case '\\': return ui::VKEY_OEM_5; - case '}': *shifted = true; case ']': return ui::VKEY_OEM_6; - case '"': *shifted = true; case '\'': return ui::VKEY_OEM_7; + case ':': *shifted = true; FALLTHROUGH; case ';': return ui::VKEY_OEM_1; + case '+': *shifted = true; FALLTHROUGH; case '=': return ui::VKEY_OEM_PLUS; + case '<': *shifted = true; FALLTHROUGH; case ',': return ui::VKEY_OEM_COMMA; + case '_': *shifted = true; FALLTHROUGH; case '-': return ui::VKEY_OEM_MINUS; + case '>': *shifted = true; FALLTHROUGH; case '.': return ui::VKEY_OEM_PERIOD; + case '?': *shifted = true; FALLTHROUGH; case '/': return ui::VKEY_OEM_2; + case '~': *shifted = true; FALLTHROUGH; case '`': return ui::VKEY_OEM_3; + case '{': *shifted = true; FALLTHROUGH; case '[': return ui::VKEY_OEM_4; + case '|': *shifted = true; FALLTHROUGH; case '\\': return ui::VKEY_OEM_5; + case '}': *shifted = true; FALLTHROUGH; case ']': return ui::VKEY_OEM_6; + case '"': *shifted = true; FALLTHROUGH; case '\'': return ui::VKEY_OEM_7; default: return ui::VKEY_UNKNOWN; } diff --git a/atom/common/native_mate_converters/content_converter.cc b/atom/common/native_mate_converters/content_converter.cc index 53c00fa8d..ac5f6edd1 100644 --- a/atom/common/native_mate_converters/content_converter.cc +++ b/atom/common/native_mate_converters/content_converter.cc @@ -47,10 +47,12 @@ v8::Local MenuItemToV8( case content::MenuItem::CHECKABLE_OPTION: case content::MenuItem::GROUP: v8_item.Set("checked", item.checked); + FALLTHROUGH; case content::MenuItem::OPTION: case content::MenuItem::SUBMENU: v8_item.Set("label", item.label); v8_item.Set("enabled", item.enabled); + FALLTHROUGH; default: v8_item.Set("type", item.type); } From d4b7150073c2a6b11c8d3e4857fee8ab53b5e57d Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 4 Jun 2018 14:42:51 +0200 Subject: [PATCH 35/75] Update BraveConfigurator constructor parameters https://crrev.com/55afbe42e393 --- .../component_updater/brave_component_updater_configurator.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/brave/browser/component_updater/brave_component_updater_configurator.cc b/brave/browser/component_updater/brave_component_updater_configurator.cc index 49db4d8b9..542529866 100644 --- a/brave/browser/component_updater/brave_component_updater_configurator.cc +++ b/brave/browser/component_updater/brave_component_updater_configurator.cc @@ -17,6 +17,7 @@ #include "base/win/win_util.h" #endif #include "chrome/browser/browser_process.h" +#include "components/component_updater/component_updater_command_line_config_policy.h" #include "components/component_updater/configurator_impl.h" #include "components/prefs/pref_service.h" #include "components/update_client/component_patcher_operation.h" @@ -78,7 +79,8 @@ BraveConfigurator::BraveConfigurator( const base::CommandLine* cmdline, net::URLRequestContextGetter* url_request_getter, bool use_brave_server) - : configurator_impl_(cmdline, false), + : configurator_impl_(ComponentUpdaterCommandLineConfigPolicy(cmdline), + false), use_brave_server_(use_brave_server) {} int BraveConfigurator::InitialDelay() const { From 56bad5c6e1e17d2eb70ffb743b2defcdd78dbf34 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 4 Jun 2018 18:58:02 +0200 Subject: [PATCH 36/75] Use map instead of DictionaryValue at profile_import https://crrev.com/1dac2b0cc2db/ --- .../importer/brave_external_process_importer_bridge.cc | 2 +- .../importer/brave_external_process_importer_bridge.h | 3 ++- brave/utility/importer/brave_profile_import_impl.cc | 4 ++-- brave/utility/importer/brave_profile_import_impl.h | 10 ++++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/brave/utility/importer/brave_external_process_importer_bridge.cc b/brave/utility/importer/brave_external_process_importer_bridge.cc index ca34f1237..dc1ebcaa3 100644 --- a/brave/utility/importer/brave_external_process_importer_bridge.cc +++ b/brave/utility/importer/brave_external_process_importer_bridge.cc @@ -41,7 +41,7 @@ void BraveExternalProcessImporterBridge::SetCookies( } BraveExternalProcessImporterBridge::BraveExternalProcessImporterBridge( - base::Value localized_strings, + const base::flat_map& localized_strings, scoped_refptr observer) : ExternalProcessImporterBridge(std::move(localized_strings), observer) {} diff --git a/brave/utility/importer/brave_external_process_importer_bridge.h b/brave/utility/importer/brave_external_process_importer_bridge.h index b09a50496..daae09d0f 100644 --- a/brave/utility/importer/brave_external_process_importer_bridge.h +++ b/brave/utility/importer/brave_external_process_importer_bridge.h @@ -5,6 +5,7 @@ #ifndef BRAVE_UTILITY_IMPORTER_BRAVE_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ #define BRAVE_UTILITY_IMPORTER_BRAVE_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ +#include #include #include "chrome/utility/importer/external_process_importer_bridge.h" @@ -16,7 +17,7 @@ class BraveExternalProcessImporterBridge : public: // |observer| must outlive this object. BraveExternalProcessImporterBridge( - base::Value localized_strings, + const base::flat_map& localized_strings, scoped_refptr observer); diff --git a/brave/utility/importer/brave_profile_import_impl.cc b/brave/utility/importer/brave_profile_import_impl.cc index 85bc7809a..f7da5caa4 100644 --- a/brave/utility/importer/brave_profile_import_impl.cc +++ b/brave/utility/importer/brave_profile_import_impl.cc @@ -34,7 +34,7 @@ BraveProfileImportImpl::~BraveProfileImportImpl() {} void BraveProfileImportImpl::StartImport( const importer::SourceProfile& source_profile, uint16_t items, - base::Value localized_strings, + const base::flat_map& localized_strings, chrome::mojom::ProfileImportObserverPtr observer) { content::UtilityThread::Get()->EnsureBlinkInitialized(); importer_ = @@ -62,7 +62,7 @@ void BraveProfileImportImpl::StartImport( ImporterCleanup(); } bridge_ = new BraveExternalProcessImporterBridge( - std::move(localized_strings), + localized_strings, ThreadSafeProfileImportObserverPtr::Create(std::move(observer))); import_thread_->task_runner()->PostTask( FROM_HERE, base::BindOnce(&Importer::StartImport, importer_, diff --git a/brave/utility/importer/brave_profile_import_impl.h b/brave/utility/importer/brave_profile_import_impl.h index 7b4a3b36d..7619f973b 100644 --- a/brave/utility/importer/brave_profile_import_impl.h +++ b/brave/utility/importer/brave_profile_import_impl.h @@ -5,6 +5,7 @@ #ifndef BRAVE_UTILITY_IMPORTER_BRAVE_PROFILE_IMPORT_IMPL_H_ #define BRAVE_UTILITY_IMPORTER_BRAVE_PROFILE_IMPORT_IMPL_H_ +#include #include #include "chrome/utility/importer/profile_import_impl.h" @@ -17,10 +18,11 @@ class BraveProfileImportImpl : public ProfileImportImpl { private: // chrome::mojom::ProfileImport: - void StartImport(const importer::SourceProfile& source_profile, - uint16_t items, - base::Value localized_strings, - chrome::mojom::ProfileImportObserverPtr observer) override; + void StartImport( + const importer::SourceProfile& source_profile, + uint16_t items, + const base::flat_map& localized_strings, + chrome::mojom::ProfileImportObserverPtr observer) override; DISALLOW_COPY_AND_ASSIGN(BraveProfileImportImpl); }; From c250a7b11beb8586efb967908029cbdfe870e15f Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 4 Jun 2018 21:22:37 +0200 Subject: [PATCH 37/75] Renamed websocket_handshake_throttle.h https://crrev.com/960f44a9cf83 --- brave/renderer/brave_content_renderer_client.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brave/renderer/brave_content_renderer_client.cc b/brave/renderer/brave_content_renderer_client.cc index b35af5a95..787c0088e 100644 --- a/brave/renderer/brave_content_renderer_client.cc +++ b/brave/renderer/brave_content_renderer_client.cc @@ -36,7 +36,7 @@ #include "services/service_manager/public/cpp/service_context.h" #include "third_party/blink/public/platform/url_conversion.h" #include "third_party/blink/public/platform/web_security_origin.h" -#include "third_party/blink/public/platform/web_socket_handshake_throttle.h" +#include "third_party/blink/public/platform/websocket_handshake_throttle.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_plugin.h" #include "third_party/blink/public/web/web_plugin_params.h" From ab3ad686ae0a2ca0e7dbf4c7d2567bad0c6b2658 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Mon, 4 Jun 2018 21:28:46 +0200 Subject: [PATCH 38/75] Removed SPOOFING_AND_CONTROL_CHARS https://crrev.com/efde028cbcde --- brave/common/extensions/url_bindings.cc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/brave/common/extensions/url_bindings.cc b/brave/common/extensions/url_bindings.cc index e94daa254..c06d7f9bd 100644 --- a/brave/common/extensions/url_bindings.cc +++ b/brave/common/extensions/url_bindings.cc @@ -328,12 +328,6 @@ v8::Local URLBindings::API(extensions::ScriptContext* context) { isolate, net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS)); - SetReadOnlyProperty(v8_context, unescape_rules, - v8::String::NewFromUtf8(isolate, "SPOOFING_AND_CONTROL_CHARS", - v8::NewStringType::kNormal).ToLocalChecked(), - gin::Converter::ToV8( - isolate, net::UnescapeRule::SPOOFING_AND_CONTROL_CHARS)); - SetReadOnlyProperty(v8_context, unescape_rules, v8::String::NewFromUtf8(isolate, "REPLACE_PLUS_WITH_SPACE", v8::NewStringType::kNormal).ToLocalChecked(), From 2faca55e98e23a03b8f60aa84a3e8bef112a5619 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Tue, 5 Jun 2018 09:44:18 +0200 Subject: [PATCH 39/75] Enabled by default feature api kEnableSingleClickAutofill https://crrev.com/3a9c440dae87 --- brave/browser/brave_content_browser_client.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 83b953045..02071e4d9 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -654,7 +654,6 @@ void BraveContentBrowserClient::AppendExtraCommandLineSwitches( static const char* const kSwitchNames[] = { autofill::switches::kDisablePasswordGeneration, autofill::switches::kEnablePasswordGeneration, - autofill::switches::kEnableSingleClickAutofill, autofill::switches::kEnableSuggestionsWithSubstringMatch, autofill::switches::kIgnoreAutocompleteOffForAutofill, autofill::switches::kLocalHeuristicsOnlyForPasswordGeneration, From 9c9deb86027820a2a914ac1c7ac6e5838293d897 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 08:25:43 +0200 Subject: [PATCH 40/75] TODO: Block/Resume request APIs where removed from content/public https://crrev.com/0fe9d9a3db33 --- atom/browser/api/atom_api_window.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 47ce15733..91368304b 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -157,7 +157,8 @@ void Window::SuspendRenderFrameHost(content::RenderFrameHost* rfh) { if (is_window_ready_) return; is_blocking_requests_ = true; - rfh->BlockRequestsForFrame(); + // FIXME(hferreiro) + // rfh->BlockRequestsForFrame(); } void Window::WillCloseWindow(bool* prevent_default) { @@ -235,8 +236,9 @@ void Window::OnWindowReady() { is_window_ready_ = true; if (is_blocking_requests_) { is_blocking_requests_ = false; - api_web_contents_->GetWebContents()->GetMainFrame()-> - ResumeBlockedRequestsForFrame(); + // FIXME(hferreiro) + // api_web_contents_->GetWebContents()->GetMainFrame()-> + // ResumeBlockedRequestsForFrame(); } } From 066a101c5921a6458ca19cd689e906b7dd67d154 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 08:31:59 +0200 Subject: [PATCH 41/75] ManagermentAPIDelegate::DisableExtension() parameters https://crrev.com/4a55dc2f10c6 --- atom/browser/extensions/api/atom_extensions_api_client.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/atom/browser/extensions/api/atom_extensions_api_client.cc b/atom/browser/extensions/api/atom_extensions_api_client.cc index 99651b89e..dc9b1735c 100644 --- a/atom/browser/extensions/api/atom_extensions_api_client.cc +++ b/atom/browser/extensions/api/atom_extensions_api_client.cc @@ -81,6 +81,7 @@ class AtomManagementAPIDelegate : public ManagementAPIDelegate { // Disables the extension identified by |extension_id|. void DisableExtension( content::BrowserContext* context, + const Extension* source_extension, const std::string& extension_id, disable_reason::DisableReason disable_reason) const override { NOTIMPLEMENTED(); From b0fdbeeadc4aa70fffb61dce11e452b609aeb499 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 11:09:54 +0200 Subject: [PATCH 42/75] TODO: boringssl Revert "Remove legacy SSL_CTX_sess_set_get_cb overload." This reverts commit 5ad94767ab123125cdd18ad2202832dc9ff8ae8d. --- .../third_party/boringssl/src/boringssl.patch | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/patches/third_party/boringssl/src/boringssl.patch b/patches/third_party/boringssl/src/boringssl.patch index b60591575..946690f31 100644 --- a/patches/third_party/boringssl/src/boringssl.patch +++ b/patches/third_party/boringssl/src/boringssl.patch @@ -173,6 +173,77 @@ index afeb2dea4e0464082fa72fd1404f9321eb656dec..2c3c842cb4a21e937993132f7a7cfbae #define SN_ripemd160WithRSA "RSA-RIPEMD160" #define LN_ripemd160WithRSA "ripemd160WithRSA" #define NID_ripemd160WithRSA 119 +diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h +index 9544bbebe846abb1efe9bea4aaabd4d301b38bea..e3d9133f6dfb5ad3236284f7edfcefafde1a7ee8 100644 +--- a/include/openssl/ssl.h ++++ b/include/openssl/ssl.h +@@ -4266,6 +4266,15 @@ OPENSSL_EXPORT int SSL_CTX_set_tlsext_status_cb(SSL_CTX *ctx, + // |SSL_CTX_set_tlsext_status_cb|'s callback and returns one. + OPENSSL_EXPORT int SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg); + ++#if !defined(BORINGSSL_NO_CXX) ++// SSL_CTX_sess_set_get_cb is a legacy C++ overload of |SSL_CTX_sess_set_get_cb| ++// which supports the old callback signature. ++// ++// TODO(davidben): Remove this once Node is compatible with OpenSSL 1.1.0. ++extern "C++" OPENSSL_EXPORT void SSL_CTX_sess_set_get_cb( ++ SSL_CTX *ctx, SSL_SESSION *(*get_session_cb)(SSL *ssl, uint8_t *id, ++ int id_len, int *out_copy)); ++#endif + + // Private structures. + // +diff --git a/ssl/internal.h b/ssl/internal.h +index 28ea87b7261ce8d679b84520678d39f7b47c29b4..a84926a7f62e2e22cc76f18c83ddccaa9840c5eb 100644 +--- a/ssl/internal.h ++++ b/ssl/internal.h +@@ -2049,6 +2049,8 @@ struct SSLContext { + void (*remove_session_cb)(SSL_CTX *ctx, SSL_SESSION *sess); + SSL_SESSION *(*get_session_cb)(SSL *ssl, const uint8_t *data, int len, + int *copy); ++ SSL_SESSION *(*get_session_cb_legacy)(SSL *ssl, uint8_t *data, int len, ++ int *copy); + + CRYPTO_refcount_t references; + +diff --git a/ssl/ssl_session.cc b/ssl/ssl_session.cc +index e31df68869c313770fb56a5e15fafd4b5839117d..332107d2b878d3df04350699383a7493baba3f36 100644 +--- a/ssl/ssl_session.cc ++++ b/ssl/ssl_session.cc +@@ -686,10 +686,17 @@ static enum ssl_hs_wait_t ssl_lookup_session( + } + + // Fall back to the external cache, if it exists. +- if (!session && ssl->session_ctx->get_session_cb != nullptr) { ++ if (!session && (ssl->session_ctx->get_session_cb != nullptr || ++ ssl->session_ctx->get_session_cb_legacy != nullptr)) { + int copy = 1; +- session.reset(ssl->session_ctx->get_session_cb(ssl, session_id, +- session_id_len, ©)); ++ if (ssl->session_ctx->get_session_cb != nullptr) { ++ session.reset(ssl->session_ctx->get_session_cb(ssl, session_id, ++ session_id_len, ©)); ++ } else { ++ session.reset(ssl->session_ctx->get_session_cb_legacy( ++ ssl, const_cast(session_id), session_id_len, ©)); ++ } ++ + if (!session) { + return ssl_hs_ok; + } +@@ -1244,6 +1251,12 @@ void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, + ctx->get_session_cb = cb; + } + ++void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, ++ SSL_SESSION *(*cb)(SSL *ssl, uint8_t *id, ++ int id_len, int *out_copy)) { ++ ctx->get_session_cb_legacy = cb; ++} ++ + SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(SSL *ssl, + const uint8_t *id, + int id_len, diff --git a/util/BUILD.toplevel b/util/BUILD.toplevel index 6e569ec82db970ba8f1004f811ff08cc59794005..905a293ad046e5653352ec59a278df3aa1cf2355 100644 --- a/util/BUILD.toplevel From 0e762f31dfae66eb3189030713d19a03b08ff905 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 12:10:08 +0200 Subject: [PATCH 43/75] TabManager::SetTabAutoDiscardableState() was removed https://crrev.com/6959fecc9375 --- atom/browser/extensions/tab_helper.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/atom/browser/extensions/tab_helper.cc b/atom/browser/extensions/tab_helper.cc index d8ef13169..5e1973cb2 100644 --- a/atom/browser/extensions/tab_helper.cc +++ b/atom/browser/extensions/tab_helper.cc @@ -464,7 +464,9 @@ void TabHelper::TabInsertedAt(TabStripModel* tab_strip_model, return; if (discarded_) { - GetTabManager()->SetTabAutoDiscardableState(web_contents(), false); + resource_coordinator::TabLifecycleUnitExternal::FromWebContents( + web_contents()) + ->SetAutoDiscardable(false); } guest()->Load(); @@ -484,10 +486,11 @@ int32_t TabHelper::window_id() const { void TabHelper::SetAutoDiscardable(bool auto_discardable) { auto_discardable_ = auto_discardable; - if (resource_coordinator::TabLifecycleUnitExternal::FromWebContents( - web_contents())) { - GetTabManager()->SetTabAutoDiscardableState( - web_contents(), auto_discardable); + auto* tab_lifecycle_unit_external = + resource_coordinator::TabLifecycleUnitExternal::FromWebContents( + web_contents()); + if (tab_lifecycle_unit_external) { + tab_lifecycle_unit_external->SetAutoDiscardable(auto_discardable); } } From 95b0470cdd7cf1b3596cf4ef0bc4875152bae008 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 15:11:09 +0200 Subject: [PATCH 44/75] RenderProcessHost::GetHandle() was removed https://crrev.com/eb95666dc912 --- atom/browser/api/atom_api_web_contents.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 72ac5a6f7..d3f6ae5c4 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -2349,7 +2349,7 @@ bool WebContents::SendIPCSharedMemory(int render_process_id, if (!memory_handle.IsValid() || !rfh) return false; - base::ProcessHandle handle = rfh->GetProcess()->GetHandle(); + base::ProcessHandle handle = rfh->GetProcess()->GetProcess().Handle(); if (!handle) { return false; } From 2073593e9985d4a62ac83131c43b71a5988d1a66 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 15:13:29 +0200 Subject: [PATCH 45/75] ScopedNestableTaskAllower constructor https://crrev.com/bfad9ffe79b1 https://crrev.com/d258c5155b1b --- atom/browser/api/atom_api_menu_mac.mm | 3 +-- atom/browser/api/atom_api_web_contents.cc | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/atom/browser/api/atom_api_menu_mac.mm b/atom/browser/api/atom_api_menu_mac.mm index 62f452afe..83f317518 100644 --- a/atom/browser/api/atom_api_menu_mac.mm +++ b/atom/browser/api/atom_api_menu_mac.mm @@ -92,8 +92,7 @@ [popup_controllers_[window_id] setCloseCallback:close_callback]; // Make sure events can be pumped while the menu is up. - base::MessageLoop::ScopedNestableTaskAllower allow( - base::MessageLoop::current()); + base::MessageLoopCurrent::ScopedNestableTaskAllower allow; // One of the events that could be pumped is |window.close()|. // User-initiated event-tracking loops protect against this by diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index d3f6ae5c4..3a2451b48 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -2438,8 +2438,7 @@ void WebContents::StartDrag(const mate::Dictionary& item, // Start dragging. if (!files.empty()) { - base::MessageLoop::ScopedNestableTaskAllower allow( - base::MessageLoop::current()); + base::MessageLoopCurrent::ScopedNestableTaskAllower allow; DragFileItems(files, icon->image(), web_contents()->GetNativeView()); } else { args->ThrowError("There is nothing to drag"); From 2f5cf55a386224e228a7cba0c5ddcae1592adb8e Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 5 Jun 2018 15:18:10 +0200 Subject: [PATCH 46/75] Add hostname pattern support to secure context whitelist https://crrev.com/fcadaceb4717 --- brave/renderer/brave_content_renderer_client.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/brave/renderer/brave_content_renderer_client.cc b/brave/renderer/brave_content_renderer_client.cc index 787c0088e..476badb81 100644 --- a/brave/renderer/brave_content_renderer_client.cc +++ b/brave/renderer/brave_content_renderer_client.cc @@ -105,8 +105,10 @@ void BraveContentRendererClient::RenderThreadStarted() { prescient_networking_dispatcher_.reset( new network_hints::PrescientNetworkingDispatcher()); - for (auto& origin : secure_origin_whitelist::GetWhitelist()) { - WebSecurityPolicy::AddOriginTrustworthyWhiteList(WebSecurityOrigin(origin)); + for (auto& origin_or_hostname_pattern : + secure_origin_whitelist::GetWhitelist()) { + WebSecurityPolicy::AddOriginTrustworthyWhiteList( + WebString::FromUTF8(origin_or_hostname_pattern)); } for (auto& scheme : From 7fb7b0f68bcfa48bf9829fcd894231dfd1c06f79 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Wed, 6 Jun 2018 10:28:08 +0200 Subject: [PATCH 47/75] Drop EVP_get_cipherbyname() patch It was added upstream at https://boringssl.googlesource.com/boringssl/+/2f5100e62911c --- patches/third_party/boringssl/src/boringssl.patch | 9 --------- 1 file changed, 9 deletions(-) diff --git a/patches/third_party/boringssl/src/boringssl.patch b/patches/third_party/boringssl/src/boringssl.patch index 946690f31..cbc9347bf 100644 --- a/patches/third_party/boringssl/src/boringssl.patch +++ b/patches/third_party/boringssl/src/boringssl.patch @@ -11,15 +11,6 @@ index e770489e947ecbf3154bb680cf043c9b8dc6159d..04c2c57d412eda4cfa82db8323c188d3 default: return NULL; } -@@ -108,6 +110,8 @@ const EVP_CIPHER *EVP_get_cipherbyname(const char *name) { - return EVP_aes_128_ecb(); - } else if (OPENSSL_strcasecmp(name, "aes-256-ecb") == 0) { - return EVP_aes_256_ecb(); -+ } else if (OPENSSL_strcasecmp(name, "aes-256-gcm") == 0) { -+ return EVP_aes_256_gcm(); - } - - return NULL; diff --git a/crypto/digest_extra/digest_extra.c b/crypto/digest_extra/digest_extra.c index 4b4bb38135e6089eaf6f47afda0199567a2397ef..d17d1dc5e6e01fc190267ffc5cf4fca4f42de3cd 100644 --- a/crypto/digest_extra/digest_extra.c From f71240d2b965409446778697f4b1bdc138023faa Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Wed, 6 Jun 2018 11:47:30 +0200 Subject: [PATCH 48/75] C68 linking issues --- BUILD.gn | 1 + chromium_src/BUILD.gn | 18 +++++++++++++ .../chrome/browser/interstitials/BUILD.gn | 2 ++ .../chrome/browser/safe_browsing/BUILD.gn | 26 +++++++++++++++++++ chromium_src/chrome/browser/ui/browser.h | 6 ++--- 5 files changed, 50 insertions(+), 3 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 1d200201d..867b9a2b7 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -261,6 +261,7 @@ mojom("mojo_bindings") { public_deps = [ "//mojo/public/mojom/base", + "//services/service_manager/public/mojom", ] } diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index d71727888..0e598b988 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -120,6 +120,7 @@ source_set("renderer") { "//chrome/renderer", "//components/content_settings/core/common", "//components/spellcheck:buildflags", + "//electron:brave_resources", "//third_party/blink/public:blink_headers", ] @@ -446,6 +447,8 @@ source_set("browser") { "//chrome/browser/ui/certificate_viewer_mac.h", "//chrome/browser/ui/certificate_viewer_mac.mm", "chrome/browser/ui/certificate_viewer_mac_views.mm", + "//chrome/browser/ui/views_mode_controller.cc", + "//chrome/browser/ui/views_mode_controller.h", ] libs = [ "SecurityInterface.framework", @@ -958,6 +961,12 @@ source_set("downloads") { "//net", "//url", ] + + if (is_posix) { + sources += [ + "//chrome/browser/download/trusted_sources_manager_posix.cc", + ] + } } source_set("favicon") { @@ -1139,6 +1148,8 @@ source_set("tab_manager") { "//chrome/browser/resource_coordinator/lifecycle_unit_source_base.h", "//chrome/browser/resource_coordinator/page_signal_receiver.cc", "//chrome/browser/resource_coordinator/page_signal_receiver.h", + "//chrome/browser/resource_coordinator/tab_activity_watcher.cc", + "//chrome/browser/resource_coordinator/tab_activity_watcher.h", "//chrome/browser/resource_coordinator/tab_helper.cc", "//chrome/browser/resource_coordinator/tab_helper.h", "//chrome/browser/resource_coordinator/tab_lifecycle_observer.h", @@ -1160,6 +1171,8 @@ source_set("tab_manager") { "//chrome/browser/resource_coordinator/tab_manager_stats_collector.h", "//chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc", "//chrome/browser/resource_coordinator/tab_manager_web_contents_data.h", + "//chrome/browser/resource_coordinator/tab_metrics_logger.cc", + "//chrome/browser/resource_coordinator/tab_metrics_logger.h", "//chrome/browser/resource_coordinator/time.cc", "//chrome/browser/resource_coordinator/time.h", "//chrome/browser/memory_details.cc", @@ -1175,6 +1188,7 @@ source_set("tab_manager") { "//chrome/browser/ui/tab_contents/core_tab_helper.h", "//chrome/browser/ui/tabs/tab_strip_model.cc", "//chrome/browser/ui/tabs/tab_strip_model.h", + "//chrome/browser/ui/tabs/tab_strip_model_delegate.cc", "//chrome/browser/ui/tabs/tab_strip_model_delegate.h", "//chrome/browser/ui/tabs/tab_strip_model_observer.cc", "//chrome/browser/ui/tabs/tab_strip_model_observer.h", @@ -1182,6 +1196,8 @@ source_set("tab_manager") { "//chrome/browser/ui/tabs/tab_strip_model_order_controller.h", "chrome/browser/ui/tabs/tab_utils.cc", "//chrome/browser/ui/tabs/tab_utils.h", + "//chrome/browser/ui/tabs/window_activity_watcher.cc", + "//chrome/browser/ui/tabs/window_activity_watcher.h", "//chrome/browser/ui/tab_contents/tab_contents_iterator.cc", "//chrome/browser/ui/tab_contents/tab_contents_iterator.h", "//chrome/browser/ui/tab_ui_helper.cc", @@ -1190,6 +1206,8 @@ source_set("tab_manager") { deps = [ ":lifetime", + "//chrome/browser/resource_coordinator:tab_metrics_event_proto", + "//chrome/browser/resource_coordinator/tab_ranker", "//components/feature_engagement:buildflags", "//services/metrics", ] diff --git a/chromium_src/chrome/browser/interstitials/BUILD.gn b/chromium_src/chrome/browser/interstitials/BUILD.gn index 9d0bfd74b..3a4e18f90 100644 --- a/chromium_src/chrome/browser/interstitials/BUILD.gn +++ b/chromium_src/chrome/browser/interstitials/BUILD.gn @@ -5,6 +5,8 @@ source_set("interstitials") { sources = [ "chrome_metrics_helper.cc", "//chrome/browser/interstitials/chrome_metrics_helper.h", + "//chrome/browser/interstitials/enterprise_util.cc", + "//chrome/browser/interstitials/enterprise_util.h", ] deps = [ diff --git a/chromium_src/chrome/browser/safe_browsing/BUILD.gn b/chromium_src/chrome/browser/safe_browsing/BUILD.gn index 21859678c..00c0a1a60 100644 --- a/chromium_src/chrome/browser/safe_browsing/BUILD.gn +++ b/chromium_src/chrome/browser/safe_browsing/BUILD.gn @@ -1,3 +1,5 @@ +import("//extensions/buildflags/buildflags.gni") + source_set("install_verification") { configs += [ "//electron/build:electron_config" ] configs += [ "//electron/chromium_src:chromium_src_config" ] @@ -17,6 +19,24 @@ source_set("install_verification") { ] } +source_set("extensions") { + configs += [ "//electron/build:electron_config" ] + configs += [ "//electron/chromium_src:chromium_src_config" ] + + sources = [ + "//chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc", + "//chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.h", + "//chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router_factory.cc", + "//chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router_factory.h", + ] + + deps = [ + "//services/network/public/mojom", + "//third_party/boringssl", + "//third_party/protobuf:protobuf_lite", + ] +} + source_set("ui_extensions") { configs += [ "//electron/build:electron_config" ] configs += [ "//electron/chromium_src:chromium_src_config" ] @@ -63,4 +83,10 @@ source_set("safe_browsing") { "//electron/chromium_src/chrome/browser/prerender", "//electron/chromium_src/chrome/browser/signin", ] + + if (enable_extensions) { + deps += [ + ":extensions", + ] + } } diff --git a/chromium_src/chrome/browser/ui/browser.h b/chromium_src/chrome/browser/ui/browser.h index dd962a0fd..08ba2585e 100644 --- a/chromium_src/chrome/browser/ui/browser.h +++ b/chromium_src/chrome/browser/ui/browser.h @@ -19,6 +19,7 @@ #include "base/scoped_observer.h" #include "base/strings/string16.h" #include "build/build_config.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "components/sessions/core/session_id.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" @@ -29,7 +30,6 @@ class BrowserWindow; class Profile; class ScopedKeepAlive; -class TabStripModel; class TabStripModelDelegate; namespace content { @@ -126,14 +126,14 @@ class Browser : public content::WebContentsDelegate { // Accessors //////////////////////////////////////////////////////////////// - // Type type() const { return type_; } + Type type() const { return type_; } // const std::string& app_name() const { return app_name_; } // bool is_trusted_source() const { return is_trusted_source_; } Profile* profile() const { return profile_; } BrowserWindow* window() const { return window_; } TabStripModel* tab_strip_model() const { return tab_strip_model_.get(); } - SessionID& session_id() { return session_id_; } + const SessionID& session_id() const { return session_id_; } void set_session_id(const SessionID& session_id) { session_id_ = session_id; } // OnBeforeUnload handling ////////////////////////////////////////////////// From b22530d629690aedcab9b0c991ba1fed6d9bffb5 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Wed, 6 Jun 2018 13:10:02 +0200 Subject: [PATCH 49/75] C68: Fix many -Wswitch warnings --- atom/browser/api/atom_api_web_contents.cc | 3 ++ .../renderer/content_settings_observer.cc | 39 +++++++++++++++++++ patches/master_patch.patch | 27 +++++++++++++ 3 files changed, 69 insertions(+) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 3a2451b48..f2567cbd3 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -326,6 +326,9 @@ struct Converter { case security_state::DANGEROUS: dict.Set("securityLevel", "dangerous"); break; + case security_state::SECURITY_LEVEL_COUNT: + NOTREACHED(); + break; } if (val.certificate) diff --git a/chromium_src/chrome/renderer/content_settings_observer.cc b/chromium_src/chrome/renderer/content_settings_observer.cc index f5d07eb00..6923eefd3 100644 --- a/chromium_src/chrome/renderer/content_settings_observer.cc +++ b/chromium_src/chrome/renderer/content_settings_observer.cc @@ -178,6 +178,45 @@ void ContentSettingsObserver::DidBlockContentType( case CONTENT_SETTINGS_TYPE_AUTOPLAY: settings_type_string = "autoplay"; break; + // do nothing + case CONTENT_SETTINGS_TYPE_DEFAULT: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_APP_BANNER: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_IMPORTANT_SITE_INFO: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_ADS: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_ADS_DATA: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_MIDI: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_PASSWORD_PROTECTION: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_MEDIA_ENGAGEMENT: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_SOUND: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_CLIENT_HINTS: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_SENSORS: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_ACCESSIBILITY_EVENTS: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_CLIPBOARD_READ: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_CLIPBOARD_WRITE: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_PLUGINS_DATA: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_PAYMENT_HANDLER: + FALLTHROUGH; + case CONTENT_SETTINGS_TYPE_USB_GUARD: + FALLTHROUGH; + case CONTENT_SETTINGS_NUM_TYPES: + break; } DidBlockContentType(settings_type_string, base::UTF16ToUTF8(details)); } diff --git a/patches/master_patch.patch b/patches/master_patch.patch index 40c9d6ab3..f58783937 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -191,6 +191,33 @@ index 08c6f28746cc5f345114a942834db18f5c7a1d41..3a43ae76f054ba449e3b892ea752c62f // Launches the utility process that starts the import task, unless bookmark // or template model are not yet loaded. If load is not detected, this method +diff --git a/chrome/browser/importer/importer_uma.cc b/chrome/browser/importer/importer_uma.cc +index da87e84ffe7c2193ea16d24f1ee1174c51c9503f..b297c97bfde88f7610ec19b007eaa231b64cf1c2 100644 +--- a/chrome/browser/importer/importer_uma.cc ++++ b/chrome/browser/importer/importer_uma.cc +@@ -59,6 +59,9 @@ void LogImporterUseToMetrics(const std::string& metric_postfix, + case TYPE_BOOKMARKS_FILE: + metrics_type = IMPORTER_METRICS_BOOKMARKS_FILE; + break; ++ case TYPE_CHROME: ++ NOTREACHED(); ++ break; + } + + // Note: This leaks memory, which is the expected behavior as the factory +diff --git a/chrome/browser/importer/in_process_importer_bridge.cc b/chrome/browser/importer/in_process_importer_bridge.cc +index 5832fa66c715fe82a3e865c7bde490ef6f6b14b6..2ff87fd3fd81f803c327aba2160f2d6851f612e5 100644 +--- a/chrome/browser/importer/in_process_importer_bridge.cc ++++ b/chrome/browser/importer/in_process_importer_bridge.cc +@@ -59,6 +59,8 @@ history::VisitSource ConvertImporterVisitSourceToHistoryVisitSource( + return history::SOURCE_IE_IMPORTED; + case importer::VISIT_SOURCE_SAFARI_IMPORTED: + return history::SOURCE_SAFARI_IMPORTED; ++ case importer::VISIT_SOURCE_CHROME_IMPORTED: ++ break; + } + NOTREACHED(); + return history::SOURCE_SYNCED; diff --git a/chrome/browser/importer/in_process_importer_bridge.h b/chrome/browser/importer/in_process_importer_bridge.h index 247d24220beb7d176b890d7c2d45bdd2dfd8db99..c270bba0fabb557e8d3d1df8ac166bbb00ed6e8b 100644 --- a/chrome/browser/importer/in_process_importer_bridge.h From 185143c91aad49e14ae5746ace483a71d46e2d75 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Thu, 7 Jun 2018 00:28:03 +0200 Subject: [PATCH 50/75] Add missing include to fix win build FAILED: obj/mojo/public/cpp/platform/platform/named_platform_channel_win.obj ../../mojo/public/cpp/platform/named_platform_channel_win.cc(58,8): error: no member named 'unique_ptr' in namespace 'std' std::unique_ptr p(security_desc, ::LocalFree); ~~~~~^ ../../mojo/public/cpp/platform/named_platform_channel_win.cc(58,23): error: expected '(' for function-style cast or type construction std::unique_ptr p(security_desc, ::LocalFree); ~~~~^ 2 errors generated. --- patches/master_patch.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/patches/master_patch.patch b/patches/master_patch.patch index f58783937..f17553bae 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -2120,6 +2120,18 @@ index 8fda8274d5dfe61e8d7e6bec9eb24719adb69e3a..a17609ac5f5dcc175d0abb758ac9729a return switches::autoplay::kUserGestureRequiredPolicy; #else return switches::autoplay::kNoUserGestureRequiredPolicy; +diff --git a/mojo/public/cpp/platform/named_platform_channel_win.cc b/mojo/public/cpp/platform/named_platform_channel_win.cc +index 0507efe5abb5193f653a7631b5025cb9358c23f0..9c329bd6d81baa962f16f32e226f0221f712e7c1 100644 +--- a/mojo/public/cpp/platform/named_platform_channel_win.cc ++++ b/mojo/public/cpp/platform/named_platform_channel_win.cc +@@ -5,6 +5,7 @@ + #include "mojo/public/cpp/platform/named_platform_channel.h" + + #include ++#include + + // NOTE: This needs to be included *after* windows.h. + #include diff --git a/net/BUILD.gn b/net/BUILD.gn index 9d59189d80aea8f99b73020f36a578a96667af37..30b01577e5f01ba1d6f33a14c811363d3b0eea2c 100644 --- a/net/BUILD.gn From 2c94200139ddb95c155c2367d55831eabbbf0af2 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 8 Jun 2018 13:49:35 +0200 Subject: [PATCH 51/75] C68: fix debug build --- atom/browser/BUILD.gn | 1 + build/node/BUILD.gn | 12 ------------ chromium_src/BUILD.gn | 33 +++++++++++++++++++++++++++++---- patches/master_patch.patch | 14 ++++++++++++++ 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/atom/browser/BUILD.gn b/atom/browser/BUILD.gn index c95727bf0..9b6ae0660 100644 --- a/atom/browser/BUILD.gn +++ b/atom/browser/BUILD.gn @@ -294,6 +294,7 @@ source_set("browser") { "//electron/chromium_src:menu_bar", "//chrome/browser/ui/libgtkui:libgtkui", "//electron/build:gtk3", + "//ui/events/platform/x11", ] } diff --git a/build/node/BUILD.gn b/build/node/BUILD.gn index 2064e178e..e2e507633 100644 --- a/build/node/BUILD.gn +++ b/build/node/BUILD.gn @@ -49,18 +49,6 @@ source_set("node") { ] } - # hack for unresolved symbols - not sure why this is needed - if (is_linux) { - lib_dirs += [ - "$root_out_dir/obj/third_party/boringssl", - "$root_out_dir/obj/third_party/icu", - ] - libs += [ - "boringssl", - "icui18n", - ] - } - public_configs = [ ":build_config", ] diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index 0e598b988..c47b77231 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -158,16 +158,19 @@ source_set("browser") { "//components/crash/content/app", "//components/crash/core/browser", "//components/data_usage/core", + "//components/filename_generation", "//components/keep_alive_registry", "//components/net_log", "//components/offline_items_collection/core", "//components/optimization_guide/proto:optimization_guide_proto", "//components/policy/core/common", "//components/prefs", + "//components/proxy_config", "//components/spellcheck:buildflags", "//components/safe_browsing:csd_proto", "//components/safe_browsing:features", "//components/storage_monitor", + "//components/tracing:startup_tracing", "//content/public/browser", "//electron/atom/browser", "//ui/message_center", @@ -295,7 +298,6 @@ source_set("browser") { "//chrome/browser/platform_util_win.cc", "//chrome/browser/process_singleton_mac.mm", - "//chrome/browser/process_singleton_posix.cc", "//chrome/browser/process_singleton_win.cc", "//chrome/browser/process_singleton.h", "//chrome/browser/renderer_host/chrome_extension_message_filter.cc", @@ -407,6 +409,10 @@ source_set("browser") { } if (is_linux) { + deps += [ + "//services/service_manager/zygote", + ] + sources += [ "//chrome/browser/extensions/global_shortcut_listener_x11.cc", "//chrome/browser/extensions/global_shortcut_listener_x11.h", @@ -414,6 +420,12 @@ source_set("browser") { ] } + if (is_posix) { + sources += [ + "//chrome/browser/process_singleton_posix.cc", + ] + } + if (toolkit_views) { sources += [ "//chrome/browser/ui/views/harmony/chrome_layout_provider.cc", @@ -573,7 +585,6 @@ source_set("browser") { "//chrome/browser/extensions/api/messaging/native_message_process_host.h", "//chrome/browser/extensions/api/messaging/native_process_launcher.cc", "//chrome/browser/extensions/api/messaging/native_process_launcher.h", - "//chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc", "//chrome/browser/extensions/api/messaging/native_process_launcher_win.cc", "//chrome/browser/extensions/api/proxy/proxy_api.cc", "//chrome/browser/extensions/api/proxy/proxy_api.h", @@ -597,6 +608,12 @@ source_set("browser") { "//extensions/browser", "//rlz/buildflags", ] + + if (is_posix) { + sources += [ + "//chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc" + ] + } } if (use_aura) { sources += [ @@ -733,7 +750,6 @@ source_set("importer") { "//chrome/browser/importer/external_process_importer_host.h", "//chrome/browser/importer/firefox_profile_lock.cc", "//chrome/browser/importer/firefox_profile_lock.h", - "//chrome/browser/importer/firefox_profile_lock_posix.cc", "//chrome/browser/importer/firefox_profile_lock_win.cc", "chrome/browser/importer/importer_list.cc", "//chrome/browser/importer/importer_list.h", @@ -752,6 +768,12 @@ source_set("importer") { "//chrome/utility", ":search_engines", ] + + if (is_posix) { + sources += [ + "//chrome/browser/importer/firefox_profile_lock_posix.cc", + ] + } } source_set("bookmarks") { @@ -1011,9 +1033,12 @@ source_set("metrics") { "//chrome/browser/metrics/thread_watcher_report_hang.h", "//chrome/installer/util/google_update_settings.h", - "//chrome/browser/google/google_update_settings_posix.cc", ] + if (is_posix) { + sources += [ "//chrome/browser/google/google_update_settings_posix.cc", ] + } + if (is_win) { sources += [ "chrome/installer/util/muon_distribution.cc", diff --git a/patches/master_patch.patch b/patches/master_patch.patch index f17553bae..5f76c0ab2 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -555,6 +555,20 @@ index de9e4280f1984afd3198b5c8132774cc26ff7e95..54be9a23739ddb16322c0067c7e4da51 config->rev_checking_required_local_anchors = rev_checking_required_local_anchors_.GetValue(); config->sha1_local_anchors_enabled = sha1_local_anchors_enabled_.GetValue(); +diff --git a/chrome/browser/ui/libgtkui/BUILD.gn b/chrome/browser/ui/libgtkui/BUILD.gn +index ccbed52a0a3fca220eab8becadd3b68163418694..0b70ef9b3dd00ad99cb88e2e7ed00c2d9bf8d3e8 100644 +--- a/chrome/browser/ui/libgtkui/BUILD.gn ++++ b/chrome/browser/ui/libgtkui/BUILD.gn +@@ -65,6 +65,9 @@ template("libgtkui") { + "x11_input_method_context_impl_gtk.h", + ] + ++ configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] ++ configs += [ "//build/config/gcc:symbol_visibility_default" ] ++ + configs += [ + "//build/config/linux/pangocairo", + "//build/config/linux:x11", diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn index b45794f858d4f8eabceab39166f2103dbdf87361..69d2674f11800d3b906b60f840c9b4e5351d8ab6 100644 --- a/chrome/common/BUILD.gn From 03a812dcf3ce7760d7c4cd2275b4934f9ccb077c Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 12 Jun 2018 13:25:43 +0200 Subject: [PATCH 52/75] Dedupe the sandbox related switches https://crrev.com/3ae893eff562 --- atom/app/atom_main.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/atom/app/atom_main.cc b/atom/app/atom_main.cc index b9d32aaa4..4e38bb077 100644 --- a/atom/app/atom_main.cc +++ b/atom/app/atom_main.cc @@ -22,6 +22,7 @@ #include "chrome/common/chrome_switches.h" #include "content/public/app/content_main.h" #include "content/public/common/content_switches.h" +#include "services/service_manager/sandbox/switches.h" #if defined(OS_MACOSX) #include "chrome/common/chrome_paths_internal.h" @@ -183,7 +184,8 @@ int main(int argc, const char* argv[]) { // Initialize the sandbox services. sandbox::SandboxInterfaceInfo sandbox_info = {0}; const bool is_browser = process_type.empty(); - const bool is_sandboxed = !command_line->HasSwitch(switches::kNoSandbox); + const bool is_sandboxed = + !command_line->HasSwitch(service_manager::switches::kNoSandbox); if (is_browser || is_sandboxed) { // For child processes that are running as --no-sandbox, don't initialize // the sandbox info, otherwise they'll be treated as brokers (as if they From 87dcb19c80dbbad1a966be120fe879ee4cf5932a Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Fri, 15 Jun 2018 10:33:59 +0200 Subject: [PATCH 53/75] Fix TabMemoryMetricsReporter linking issues https://crrev.com/73efcb115563 --- chromium_src/BUILD.gn | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/chromium_src/BUILD.gn b/chromium_src/BUILD.gn index c47b77231..d06145394 100644 --- a/chromium_src/BUILD.gn +++ b/chromium_src/BUILD.gn @@ -1186,6 +1186,10 @@ source_set("tab_manager") { "//chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h", "//chrome/browser/resource_coordinator/tab_load_tracker.cc", "//chrome/browser/resource_coordinator/tab_load_tracker.h", + "//chrome/browser/resource_coordinator/tab_memory_metrics_reporter.cc", + "//chrome/browser/resource_coordinator/tab_memory_metrics_reporter.h", + "//chrome/browser/resource_coordinator/time.cc", + "//chrome/browser/resource_coordinator/time.h", "//chrome/browser/resource_coordinator/tab_manager.cc", "//chrome/browser/resource_coordinator/tab_manager.h", "//chrome/browser/resource_coordinator/tab_manager_features.cc", @@ -1198,13 +1202,12 @@ source_set("tab_manager") { "//chrome/browser/resource_coordinator/tab_manager_web_contents_data.h", "//chrome/browser/resource_coordinator/tab_metrics_logger.cc", "//chrome/browser/resource_coordinator/tab_metrics_logger.h", - "//chrome/browser/resource_coordinator/time.cc", - "//chrome/browser/resource_coordinator/time.h", "//chrome/browser/memory_details.cc", "//chrome/browser/memory_details.h", "//chrome/browser/memory_details_linux.cc", "//chrome/browser/memory_details_mac.cc", "//chrome/browser/memory_details_win.cc", + "//chrome/browser/metrics/process_memory_metrics_emitter.cc", "//chrome/browser/ui/browser_tab_strip_tracker.cc", "//chrome/browser/ui/browser_tab_strip_tracker.h", "chrome/browser/ui/page_info/page_info_ui.cc", From 462d5ce75a263f8e0dd4d201fa4789988598b1a3 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Wed, 20 Jun 2018 12:04:36 +0200 Subject: [PATCH 54/75] Register safe_browsing prefs https://crrev.com/63784cd276a8 --- chromium_src/chrome/browser/browser_process_impl.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/chromium_src/chrome/browser/browser_process_impl.cc b/chromium_src/chrome/browser/browser_process_impl.cc index 9b7dd6dc2..e8d512926 100644 --- a/chromium_src/chrome/browser/browser_process_impl.cc +++ b/chromium_src/chrome/browser/browser_process_impl.cc @@ -315,6 +315,7 @@ void BrowserProcessImpl::CreateLocalState() { PrefProxyConfigTrackerImpl::RegisterPrefs(pref_registry.get()); SSLConfigServiceManager::RegisterPrefs(pref_registry.get()); GpuModeManager::RegisterPrefs(pref_registry.get()); + safe_browsing::RegisterLocalStatePrefs(pref_registry.get()); pref_change_registrar_.Init(local_state_.get()); pref_change_registrar_.Add( From c777552f3cef3164189e283f586e513c09c1f7cd Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 21 Jun 2018 12:04:43 +0200 Subject: [PATCH 55/75] safe_browsing: Handle WHITELISTED_BY_POLICY downloads https://crrev.com/93850e098cf8 --- atom/browser/atom_download_manager_delegate.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/atom/browser/atom_download_manager_delegate.cc b/atom/browser/atom_download_manager_delegate.cc index ed9d777e6..fa2735660 100644 --- a/atom/browser/atom_download_manager_delegate.cc +++ b/atom/browser/atom_download_manager_delegate.cc @@ -217,6 +217,8 @@ void AtomDownloadManagerDelegate::CheckClientDownloadDone( } break; case safe_browsing::DownloadCheckResult::SAFE: + FALLTHROUGH; + case safe_browsing::DownloadCheckResult::WHITELISTED_BY_POLICY: if (DownloadItemModel(item).GetDangerLevel() == DownloadFileType::DANGEROUS) { danger_type = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE; From 81b5c1fb730c587f68eb11cdb46474b8605551fc Mon Sep 17 00:00:00 2001 From: bridiver Date: Wed, 11 Jul 2018 16:24:27 -0700 Subject: [PATCH 56/75] release the unique_ptr when the tab strip gives it to us so it doesn't get destroyed prematurely --- atom/browser/extensions/tab_helper.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/atom/browser/extensions/tab_helper.cc b/atom/browser/extensions/tab_helper.cc index 5e1973cb2..5457094da 100644 --- a/atom/browser/extensions/tab_helper.cc +++ b/atom/browser/extensions/tab_helper.cc @@ -179,7 +179,7 @@ bool TabHelper::AttachGuest(int window_id, int index) { index_ = index; browser->tab_strip_model()->ReplaceWebContentsAt( GetTabStripIndex(window_id, index_), - base::WrapUnique(web_contents())); + base::WrapUnique(web_contents())).release(); return true; } } @@ -208,7 +208,7 @@ content::WebContents* TabHelper::DetachGuest() { // Replace the detached tab with the null placeholder browser_->tab_strip_model()->ReplaceWebContentsAt( - get_index(), std::move(null_contents)); + get_index(), std::move(null_contents)).release(); return null_contents.get(); } @@ -427,7 +427,7 @@ void TabHelper::SetBrowser(Browser* browser) { if (browser_) { if (get_index() != TabStripModel::kNoTab) // TODO(hferreiro) - // browser_->tab_strip_model()->DetachWebContentsAt(get_index()); + browser_->tab_strip_model()->DetachWebContentsAt(get_index()).release(); OnBrowserRemoved(browser_); } @@ -546,7 +546,7 @@ bool TabHelper::MoveTo(int index, int window_id, bool foreground) { for (auto* b : *BrowserList::GetInstance()) { if (b->session_id().id() == window_id) { if (get_index() != TabStripModel::kNoTab) - browser()->tab_strip_model()->DetachWebContentsAt(get_index()); + browser()->tab_strip_model()->DetachWebContentsAt(get_index()).release(); UpdateBrowser(b); From 241c58574ae8588f5b4ecc437eb4791dc3fd4023 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Thu, 12 Jul 2018 10:44:26 +0200 Subject: [PATCH 57/75] Update patches to Chromium 68.0.3440.59 --- patches/master_patch.patch | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/patches/master_patch.patch b/patches/master_patch.patch index 5f76c0ab2..33ff1c917 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -479,10 +479,10 @@ index 01d3ee8917c2d05943e42556a4221161606c451d..f801248b1017abaf706533ff0889295c LifecycleState previous_state = GetState(); SetState(LifecycleState::DISCARDED); diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc -index 7d5a446cf9fa1c63a71d2bc11c3a7684a3dd992c..8c02dd39d4d509849061a7ad09f6de3758d38f18 100644 +index e111e54ebef9951556284671ca43b468e8c767d6..7525ca235ec9a3f2209be4d2aff5bd80206c4d22 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc -@@ -487,6 +487,19 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { +@@ -488,6 +488,19 @@ void TabManager::PurgeBackgroundedTabsIfNeeded() { } } @@ -503,10 +503,10 @@ index 7d5a446cf9fa1c63a71d2bc11c3a7684a3dd992c..8c02dd39d4d509849061a7ad09f6de37 TRACE_EVENT_INSTANT0("navigation", "TabManager::PauseBackgroundTabOpeningIfNeeded", diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h -index 926a13003dd9ff8578d188790c282e51168f7f3e..8f37a9e1d3cb2dd7941aeef526c77904bf4be348 100644 +index 3aacb7cde1e7b1bf5d97ccbab5d94f5bb25f1ec2..8d2e998578735187290f708e3d6dc60f34a396ce 100644 --- a/chrome/browser/resource_coordinator/tab_manager.h +++ b/chrome/browser/resource_coordinator/tab_manager.h -@@ -32,6 +32,7 @@ +@@ -31,6 +31,7 @@ #include "chrome/browser/ui/browser_tab_strip_tracker.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" #include "content/public/browser/navigation_throttle.h" @@ -514,7 +514,7 @@ index 926a13003dd9ff8578d188790c282e51168f7f3e..8f37a9e1d3cb2dd7941aeef526c77904 #include "ui/gfx/native_widget_types.h" class GURL; -@@ -92,6 +93,13 @@ class TabManager : public LifecycleUnitObserver, +@@ -91,6 +92,13 @@ class TabManager : public LifecycleUnitObserver, TabManager(); ~TabManager() override; @@ -528,7 +528,7 @@ index 926a13003dd9ff8578d188790c282e51168f7f3e..8f37a9e1d3cb2dd7941aeef526c77904 // Start/Stop the Tab Manager. void Start(); void Stop(); -@@ -181,6 +189,7 @@ class TabManager : public LifecycleUnitObserver, +@@ -180,6 +188,7 @@ class TabManager : public LifecycleUnitObserver, int restored_tab_count() const; private: @@ -1762,10 +1762,10 @@ index 39b89cd36c327f27da7f687c3179ace964fc6d63..9140ff961245e4e4e222986e48297906 process_->Launch(std::make_unique( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 093e585d7e9812fca1b5266d809e6a5ff4379de3..a797e6694e204af68f66f17815aa83321ee0a87f 100644 +index ec663126dca2247cd9c04a13b06ba530febe52d2..6da03ddce2930dc0a06bbd310b01dc79ab80e147 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -1774,8 +1774,9 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { +@@ -1780,8 +1780,9 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { // This is set before initializing the render manager since // RenderFrameHostManager::Init calls back into us via its delegate to ask if // it should be hidden. @@ -1777,7 +1777,7 @@ index 093e585d7e9812fca1b5266d809e6a5ff4379de3..a797e6694e204af68f66f17815aa8332 // The routing ids must either all be set or all be unset. DCHECK((params.routing_id == MSG_ROUTING_NONE && -@@ -2381,7 +2382,8 @@ void WebContentsImpl::CreateNewWindow( +@@ -2387,7 +2388,8 @@ void WebContentsImpl::CreateNewWindow( DCHECK(!params.opener_suppressed || render_view_route_id == MSG_ROUTING_NONE); scoped_refptr site_instance = From c10b47a8158b3e9c0ea51e9cb5d6bf9f569ae336 Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 12 Jul 2018 13:34:58 -0700 Subject: [PATCH 58/75] Bump v8.0.0+68.0.3440.59 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f1814316d..e66e08041 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "7.0.6+67.0.3396.71", + "version": "7.1.6+67.0.3396.103", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b9356297a..90d5f7c12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "7.0.7+67.0.3396.87", + "version": "8.0.0+68.0.3440.59", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From 525cd3d8cab7bdec7ef68ecbe0949ee33d66c905 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Fri, 13 Jul 2018 12:30:00 +0200 Subject: [PATCH 59/75] fixup! EnterFullscreenModeForTab() parameters --- atom/browser/api/atom_api_web_contents.cc | 13 +++++++------ atom/browser/api/atom_api_web_contents.h | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index f2567cbd3..d334d8eaf 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -1052,17 +1052,18 @@ void WebContents::EnterFullscreenModeForTab( auto permission_helper = WebContentsPermissionHelper::FromWebContents(source); auto callback = base::Bind(&WebContents::OnEnterFullscreenModeForTab, - base::Unretained(this), source, origin); + base::Unretained(this), source, origin, options); permission_helper->RequestFullscreenPermission(callback); } -void WebContents::OnEnterFullscreenModeForTab(content::WebContents* source, - const GURL& origin, - bool allowed) { +void WebContents::OnEnterFullscreenModeForTab( + content::WebContents* source, + const GURL& origin, + const blink::WebFullscreenOptions& options, + bool allowed) { if (!allowed) return; - CommonWebContentsDelegate::EnterFullscreenModeForTab( - source, origin, blink::WebFullscreenOptions()); + CommonWebContentsDelegate::EnterFullscreenModeForTab(source, origin, options); Emit("enter-html-full-screen"); } diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 095c21921..54b1fcf21 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -290,6 +290,7 @@ class WebContents : public mate::TrackableObject, // Callback triggered on permission response. void OnEnterFullscreenModeForTab(content::WebContents* source, const GURL& origin, + const blink::WebFullscreenOptions& options, bool allowed); void AutofillSelect(const std::string& value, int frontend_id, int index); From 5089be6a7df37d25823f70e1976ae6046f09ee3d Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 17 Jul 2018 14:06:49 +0200 Subject: [PATCH 60/75] fixup! C68 changes to PasswordManagerClient --- .../brave_password_manager_client.cc | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/brave/browser/password_manager/brave_password_manager_client.cc b/brave/browser/password_manager/brave_password_manager_client.cc index d1f1dd289..f7860b72b 100644 --- a/brave/browser/password_manager/brave_password_manager_client.cc +++ b/brave/browser/password_manager/brave_password_manager_client.cc @@ -228,23 +228,24 @@ bool BravePasswordManagerClient::PromptUserToSaveOrUpdatePassword( // "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://). if (!CanShowBubbleOnURL(web_contents()->GetLastCommittedURL())) return false; - // FIXME(hferreiro) - // const autofill::PasswordForm *form = form_to_save->submitted_form(); - // // Don't save password for confirmation page (ex. Trezor passphrase) - // if (IsPossibleConfirmPasswordForm(*form)) - // return false; + const autofill::PasswordForm* form = + static_cast(form_to_save.get()) + ->submitted_form(); + // Don't save password for confirmation page (ex. Trezor passphrase) + if (IsPossibleConfirmPasswordForm(*form)) + return false; form_to_save_ = std::move(form_to_save); - // if (update_password) { - // api_web_contents_->Emit("update-password", form->username_value, - // form->signon_realm); - // } else { - // if (form_to_save_->IsBlacklisted()) - // return false; - // if (api_web_contents_) { - // api_web_contents_->Emit("save-password", form->username_value, - // form->signon_realm); - // } - // } + if (update_password) { + api_web_contents_->Emit("update-password", form->username_value, + form->signon_realm); + } else { + if (form_to_save_->IsBlacklisted()) + return false; + if (api_web_contents_) { + api_web_contents_->Emit("save-password", form->username_value, + form->signon_realm); + } + } return true; } From bcaeafc2f0fc8823caa0853cc04e7fb06b2eb2a8 Mon Sep 17 00:00:00 2001 From: Anthony Tseng Date: Wed, 18 Jul 2018 13:53:14 -0700 Subject: [PATCH 61/75] Change mojo manifest interface syntax from foo::mojom::Bar to foo.mojom.Bar. https://chromium.googlesource.com/chromium/src/+/583d4851014f69958dc4c4960b5fbe6202bc4a8c --- brave/utility/tor/tor_manifest.json | 2 +- patches/master_patch.patch | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/brave/utility/tor/tor_manifest.json b/brave/utility/tor/tor_manifest.json index f3e14ca88..573a94ca6 100644 --- a/brave/utility/tor/tor_manifest.json +++ b/brave/utility/tor/tor_manifest.json @@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "tor_launcher": [ "tor::mojom::TorLauncher" ] + "tor_launcher": [ "tor.mojom.TorLauncher" ] }, "requires": { "service_manager": [ "service_manager:all_users" ] diff --git a/patches/master_patch.patch b/patches/master_patch.patch index 33ff1c917..efc808a14 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -148,6 +148,18 @@ index 3805676f7b81e20087b2cc34197733ac0e43edc4..cf11d90db95ed4d59180837d8bff2d4a "ui": [ "display_dev", "ime_registrar", +diff --git a/chrome/browser/chrome_content_utility_manifest_overlay.json b/chrome/browser/chrome_content_utility_manifest_overlay.json +index 03d7cd6b486001765096df3bfe95624fd2700c42..a5dbd36e97f36417b861c41a2bfb201a8640aba2 100644 +--- a/chrome/browser/chrome_content_utility_manifest_overlay.json ++++ b/chrome/browser/chrome_content_utility_manifest_overlay.json +@@ -10,6 +10,7 @@ + "payments.mojom.PaymentManifestParser", + "heap_profiling.mojom.ProfilingClient", + "proxy_resolver.mojom.ProxyResolverFactory", ++ "tor.mojom.TorLauncher", + "safe_json.mojom.SafeJsonParser" + ] + } diff --git a/chrome/browser/chrome_service.cc b/chrome/browser/chrome_service.cc index 7673d9f881f37abda70bfcf835402b727dd6288d..aa1a4bf8d0cd57e3bbfd5822c54304f5b8c6c46f 100644 --- a/chrome/browser/chrome_service.cc From fd125b8a8972d257ac1c5aab10cabbf87ce607b8 Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 19 Jul 2018 15:08:37 -0700 Subject: [PATCH 62/75] Bump v8.0.1+68.0.3440.59 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index e66e08041..355a1dea6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "7.1.6+67.0.3396.103", + "version": "8.0.0+68.0.3440.59", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 90d5f7c12..7f9bef64e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.0+68.0.3440.59", + "version": "8.0.1+68.0.3440.59", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From f2b60b8e9320bd2a0ab2b1de17aedf73247d13e2 Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 19 Jul 2018 20:04:21 -0700 Subject: [PATCH 63/75] bump chromedriver --- BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD.gn b/BUILD.gn index 867b9a2b7..383d18cc1 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -576,7 +576,7 @@ if (is_win) { chromedriver = "$chromedriver.exe" } -chromedriver_version = "2.37" +chromedriver_version = "2.38" copy("electron_chromedriver_dist_resources") { sources = [ From 93ab2135cc64e79667c11cab4103017d0939f587 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Tue, 17 Jul 2018 14:06:49 +0200 Subject: [PATCH 64/75] fixup! C68 changes to PasswordManagerClient --- .../brave_password_manager_client.cc | 24 ++--- .../brave_password_manager_client.h | 2 - patches/master_patch.patch | 92 +++++++++++++++++++ 3 files changed, 99 insertions(+), 19 deletions(-) diff --git a/brave/browser/password_manager/brave_password_manager_client.cc b/brave/browser/password_manager/brave_password_manager_client.cc index f7860b72b..102c67b20 100644 --- a/brave/browser/password_manager/brave_password_manager_client.cc +++ b/brave/browser/password_manager/brave_password_manager_client.cc @@ -95,15 +95,6 @@ void BravePasswordManagerClient::CreateForWebContentsWithAutofillClient( std::make_unique(contents, autofill_client)); } -// static -bool BravePasswordManagerClient::IsPossibleConfirmPasswordForm( - const autofill::PasswordForm& form) { - return form.new_password_element.empty() && - form.layout != autofill::PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP && - // https://chromium.googlesource.com/chromium/src/+/fdef64500de7e7cdfcc1a77ae7e82ad4a39d264f - form.username_element == base::UTF8ToUTF16("anonymous_username"); -} - BravePasswordManagerClient::BravePasswordManagerClient( content::WebContents* web_contents, autofill::AutofillClient* autofill_client) @@ -228,22 +219,21 @@ bool BravePasswordManagerClient::PromptUserToSaveOrUpdatePassword( // "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://). if (!CanShowBubbleOnURL(web_contents()->GetLastCommittedURL())) return false; - const autofill::PasswordForm* form = - static_cast(form_to_save.get()) - ->submitted_form(); // Don't save password for confirmation page (ex. Trezor passphrase) - if (IsPossibleConfirmPasswordForm(*form)) + if (form_to_save->IsPossibleConfirmPasswordForm()) return false; form_to_save_ = std::move(form_to_save); + const autofill::PasswordForm& credentials = + form_to_save_->GetPendingCredentials(); if (update_password) { - api_web_contents_->Emit("update-password", form->username_value, - form->signon_realm); + api_web_contents_->Emit("update-password", credentials.username_value, + credentials.signon_realm); } else { if (form_to_save_->IsBlacklisted()) return false; if (api_web_contents_) { - api_web_contents_->Emit("save-password", form->username_value, - form->signon_realm); + api_web_contents_->Emit("save-password", credentials.username_value, + credentials.signon_realm); } } return true; diff --git a/brave/browser/password_manager/brave_password_manager_client.h b/brave/browser/password_manager/brave_password_manager_client.h index b3994a719..7a2cc051c 100644 --- a/brave/browser/password_manager/brave_password_manager_client.h +++ b/brave/browser/password_manager/brave_password_manager_client.h @@ -152,8 +152,6 @@ class BravePasswordManagerClient content::WebContents* contents, autofill::AutofillClient* autofill_client); - static bool IsPossibleConfirmPasswordForm(const autofill::PasswordForm& form); - // Observer for PasswordGenerationPopup events. Used for testing. void SetTestObserver(autofill::PasswordGenerationPopupObserver* observer); diff --git a/patches/master_patch.patch b/patches/master_patch.patch index efc808a14..a9a33f33a 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -1357,6 +1357,98 @@ index 2b38db266f9aa1f4141c8649c021042ede4e5589..ea0387b11f4b00f87596d738c152aa4c OSStatus error = keychain_.FindGenericPassword( nullptr, strlen(service_name), service_name, strlen(account_name), account_name, &password_length, &password_data, NULL); +diff --git a/components/password_manager/core/browser/new_password_form_manager.cc b/components/password_manager/core/browser/new_password_form_manager.cc +index 150b7ab410b698c1622383842bb6f529ad83e1fd..264f5f6671b59875118a06010f11ebecac245ca7 100644 +--- a/components/password_manager/core/browser/new_password_form_manager.cc ++++ b/components/password_manager/core/browser/new_password_form_manager.cc +@@ -167,6 +167,12 @@ void NewPasswordFormManager::OnNeverClicked() {} + void NewPasswordFormManager::OnNoInteraction(bool is_update) {} + void NewPasswordFormManager::PermanentlyBlacklist() {} + void NewPasswordFormManager::OnPasswordsRevealed() {} ++#if !defined(MUON_CHROMIUM_BUILD) ++bool NewPasswordFormManager::IsPossibleConfirmPasswordForm() { ++ NOTREACHED(); ++ return false; ++} ++#endif + + void NewPasswordFormManager::ProcessMatches( + const std::vector& non_federated, +diff --git a/components/password_manager/core/browser/new_password_form_manager.h b/components/password_manager/core/browser/new_password_form_manager.h +index 1b935cc28ad260f3aec4ff0aa8e73b14b75703a5..b07fcb67b311dfb42ff6971ef8e2c6cb0f59ba5d 100644 +--- a/components/password_manager/core/browser/new_password_form_manager.h ++++ b/components/password_manager/core/browser/new_password_form_manager.h +@@ -75,6 +75,10 @@ class NewPasswordFormManager : public PasswordFormManagerForUI, + void PermanentlyBlacklist() override; + void OnPasswordsRevealed() override; + ++#if !defined(MUON_CHROMIUM_BUILD) ++ bool IsPossibleConfirmPasswordForm() override; ++#endif ++ + protected: + // FormFetcher::Consumer: + void ProcessMatches( +diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc +index 663cba455fc7c0187798eb7a0912fe43d2118efb..88a7bbc1c93e4f25325360ebe90f5cb29012df91 100644 +--- a/components/password_manager/core/browser/password_form_manager.cc ++++ b/components/password_manager/core/browser/password_form_manager.cc +@@ -19,6 +19,7 @@ + #include "base/rand_util.h" + #include "base/stl_util.h" + #include "base/strings/string16.h" ++#include "base/strings/utf_string_conversions.h" + #include "base/strings/string_split.h" + #include "base/strings/string_util.h" + #include "base/time/time.h" +@@ -1270,6 +1271,17 @@ void PasswordFormManager::OnPasswordsRevealed() { + has_passwords_revealed_vote_ = true; + } + ++#if !defined(MUON_CHROMIUM_BUILD) ++bool PasswordFormManager::IsPossibleConfirmPasswordForm() { ++ return submitted_form_->new_password_element.empty() && ++ submitted_form_->layout != ++ autofill::PasswordForm::Layout::LAYOUT_LOGIN_AND_SIGNUP && ++ // https://chromium.googlesource.com/chromium/src/+/fdef64500de7e7cdfcc1a77ae7e82ad4a39d264f ++ submitted_form_->username_element == ++ base::UTF8ToUTF16("anonymous_username"); ++} ++#endif ++ + void PasswordFormManager::SetHasGeneratedPassword(bool generated_password) { + has_generated_password_ = generated_password; + metrics_recorder_->SetHasGeneratedPassword(generated_password); +diff --git a/components/password_manager/core/browser/password_form_manager.h b/components/password_manager/core/browser/password_form_manager.h +index e5076b9c1a35248ffa4088cfd0653275e4be34f4..61912419e3fc67be5af3781747b284de9885914f 100644 +--- a/components/password_manager/core/browser/password_form_manager.h ++++ b/components/password_manager/core/browser/password_form_manager.h +@@ -261,6 +261,10 @@ class PasswordFormManager : public PasswordFormManagerForUI, + void PermanentlyBlacklist() override; + void OnPasswordsRevealed() override; + ++#if !defined(MUON_CHROMIUM_BUILD) ++ bool IsPossibleConfirmPasswordForm() override; ++#endif ++ + protected: + // FormFetcher::Consumer: + void ProcessMatches( +diff --git a/components/password_manager/core/browser/password_form_manager_for_ui.h b/components/password_manager/core/browser/password_form_manager_for_ui.h +index ac7a6eb8c3298bbf6a25bf3eb623a8875383bc1e..e5383acaae9965d602ce3a46671026eae5904f8b 100644 +--- a/components/password_manager/core/browser/password_form_manager_for_ui.h ++++ b/components/password_manager/core/browser/password_form_manager_for_ui.h +@@ -99,6 +99,10 @@ class PasswordFormManagerForUI { + + // Called when the passwords were shown on on the bubble without obfuscation. + virtual void OnPasswordsRevealed() = 0; ++ ++#if !defined(MUON_CHROMIUM_BUILD) ++ virtual bool IsPossibleConfirmPasswordForm() = 0; ++#endif + }; + + } // namespace password_manager diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc index 83e8990edf17e2cd26687eeec13ef99e25dd4f44..5b3d06b71bab28c001e82828c91ab8ae16909cf0 100644 --- a/content/app/content_main_runner_impl.cc From 62f92614278168d36c3e0c4923d6ae6360489170 Mon Sep 17 00:00:00 2001 From: Anthony Tseng Date: Tue, 24 Jul 2018 20:19:28 -0700 Subject: [PATCH 65/75] set_site_for_service_worker for isolated storage so that `ServiceWorkerProcessManager::AllocateWorkerProcess` can have correct site instance set by `use_url_from_storage_partition` fix https://github.com/brave/browser-laptop/issues/14806 Auditor: @bridiver --- patches/master_patch.patch | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/patches/master_patch.patch b/patches/master_patch.patch index a9a33f33a..fe864a0f8 100644 --- a/patches/master_patch.patch +++ b/patches/master_patch.patch @@ -1571,6 +1571,33 @@ index 08d8639f6fd230eaf5fae1e0a94de504b5c76f2f..c1986c9647249d97f3c5dccf48fe90f6 @property(readonly) NSTimeInterval timestamp; @end +diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc +index 5ccfa4398c7180ff9268d6a909668a2d54f8a89c..35f0bff7bd52db74cb421abd4edbec6035fae63f 100644 +--- a/content/browser/renderer_host/render_process_host_impl.cc ++++ b/content/browser/renderer_host/render_process_host_impl.cc +@@ -269,6 +269,9 @@ + #include "content/browser/net/reporting_service_proxy.h" + #endif // BUILDFLAG(ENABLE_REPORTING) + ++#if !defined(MUON_CHROMIUM_BUILD) ++#include "brave/browser/brave_browser_context.h" ++#endif + namespace content { + + using CheckOriginLockResult = +@@ -1357,7 +1360,12 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost( + // "https://example.com/sw.js" but need to use the site URL + // "chrome-guest://blahblah" to get a process in the guest's + // StoragePartition.) ++#if !defined(MUON_CHROMIUM_BUILD) ++ auto brave_browser_context = brave::BraveBrowserContext::FromBrowserContext(browser_context); ++ if ((brave_browser_context->IsIsolatedStorage() || is_for_guests_only) && site_instance && ++#else + if (is_for_guests_only && site_instance && ++#endif + storage_partition_impl->site_for_service_worker().is_empty()) { + storage_partition_impl->set_site_for_service_worker( + site_instance->GetSiteURL()); diff --git a/content/browser/renderer_host/render_widget_host_ns_view_bridge.h b/content/browser/renderer_host/render_widget_host_ns_view_bridge.h index 3761be5f730dd73662acdd016ee098d64556b09c..e3066953627059ec96ebd6b159db7251c4bd38cf 100644 --- a/content/browser/renderer_host/render_widget_host_ns_view_bridge.h From ce65cd2f8d5b72d783607aa54ec50cf23158eaaf Mon Sep 17 00:00:00 2001 From: bridiver Date: Tue, 24 Jul 2018 20:37:25 -0700 Subject: [PATCH 66/75] Bump v8.0.2+68.0.3440.75 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 355a1dea6..f8108e78e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.0+68.0.3440.59", + "version": "8.0.2+68.0.3440.59", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7f9bef64e..baf7b1f7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.1+68.0.3440.59", + "version": "8.0.2+68.0.3440.75", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From a2f7fb4acba2ad394b8b16677ea0dd96857b5ede Mon Sep 17 00:00:00 2001 From: Brian Clifton Date: Mon, 30 Jul 2018 15:43:19 -0700 Subject: [PATCH 67/75] Get native window reference manually if it's not found in user data (as a result of losing a race condition) Fixes https://github.com/brave/browser-laptop/issues/14409 Auditors: @bridiver --- atom/browser/atom_download_manager_delegate.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/atom/browser/atom_download_manager_delegate.cc b/atom/browser/atom_download_manager_delegate.cc index fa2735660..d5e069262 100644 --- a/atom/browser/atom_download_manager_delegate.cc +++ b/atom/browser/atom_download_manager_delegate.cc @@ -8,6 +8,7 @@ #include #include +#include "atom/browser/extensions/tab_helper.h" #include "atom/browser/native_window.h" #include "base/bind.h" #include "base/files/file_util.h" @@ -19,6 +20,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" +#include "chrome/browser/ui/browser.h" #include "chrome/common/pref_names.h" #include "chrome/common/safe_browsing/file_type_policies.h" #include "components/prefs/pref_service.h" @@ -63,7 +65,19 @@ NativeWindow* GetNativeWindowFromWebContents( content::WebContents* web_contents) { DCHECK(web_contents); auto relay = NativeWindowRelay::FromWebContents(web_contents); - return relay ? relay->window.get() : nullptr; + if (relay) + return relay->window.get(); + + auto helper = + extensions::TabHelper::FromWebContents(web_contents); + if (!helper) + return nullptr; + + auto browser = helper->browser(); + if (!browser) + return nullptr; + + return static_cast(browser->window()); } // Blank newtab on download should be closed after starting download. From 3fd75f7bd98fd115d46a38d5dcfdad50241fac94 Mon Sep 17 00:00:00 2001 From: bridiver Date: Wed, 1 Aug 2018 12:23:10 -0700 Subject: [PATCH 68/75] Bump v8.0.4+68.0.3440.84 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index baf7b1f7b..2d34da02c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.2+68.0.3440.75", + "version": "8.0.4+68.0.3440.84", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From f58697fe3e2c4ecf4cee3c787a831803863bfbbb Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 2 Aug 2018 15:25:16 -0700 Subject: [PATCH 69/75] release new_contents in all cases so we can continue to manage its lifetime without any other changes for now fixes https://github.com/brave/browser-laptop/issues/14893 auditors @darkdh --- atom/browser/api/atom_api_web_contents.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index d334d8eaf..05d26d6a9 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -767,11 +767,13 @@ void WebContents::WebContentsCreated( void WebContents::AddNewContents( content::WebContents* source, - std::unique_ptr new_contents, + std::unique_ptr new_contents_unique, WindowOpenDisposition disposition, const gfx::Rect& initial_rect, bool user_gesture, bool* was_blocked) { + // continue to manage the lifetime of the webcontents without uniqueptr for now + auto new_contents = new_contents_unique.release(); if (brave::api::Extension::IsBackgroundPageWebContents(source)) { user_gesture = true; } @@ -779,7 +781,7 @@ void WebContents::AddNewContents( bool active = disposition != WindowOpenDisposition::NEW_BACKGROUND_TAB; ::Browser* browser = nullptr; - auto tab_helper = extensions::TabHelper::FromWebContents(new_contents.get()); + auto tab_helper = extensions::TabHelper::FromWebContents(new_contents); if (tab_helper) { tab_helper->SetActive(active); @@ -814,7 +816,7 @@ void WebContents::AddNewContents( "add-new-contents", event, source, - new_contents.get(), + new_contents, disposition, initial_rect, user_gesture); @@ -828,14 +830,13 @@ void WebContents::AddNewContents( } if (blocked) { - auto guest = brave::TabViewGuest::FromWebContents(new_contents.get()); + auto guest = brave::TabViewGuest::FromWebContents(new_contents); if (guest) { guest->Destroy(true); } else { - new_contents.reset(); + delete new_contents; } } else { - new_contents.release(); if (browser) { tab_helper->SetBrowser(browser); } From 8fe25b61c8a0cb0b3050a472640c94a4e66cce82 Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 2 Aug 2018 15:42:58 -0700 Subject: [PATCH 70/75] Bump v8.0.5+68.0.3440.84 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d34da02c..1223967a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.4+68.0.3440.84", + "version": "8.0.5+68.0.3440.84", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From 05fc0fa5a200054de913bc16fc0aa0506d3a8d1e Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 2 Aug 2018 21:32:14 -0700 Subject: [PATCH 71/75] `brave` should be treated as a local scheme auditors @darkdh @diracdeltas --- atom/app/atom_content_client.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 0ff7ef9de..c0de6fe7c 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -112,6 +112,7 @@ void AtomContentClient::AddAdditionalSchemes(Schemes* schemes) { // TODO(kalman): See what happens with a service worker. schemes->cors_enabled_schemes.push_back(extensions::kExtensionScheme); #endif + schemes->local_schemes.push_back("brave"); } bool AtomContentClient::AllowScriptExtensionForServiceWorker( From aeeeec4e97fce28ab0c41ba9f20856c02ae03d19 Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 2 Aug 2018 21:33:03 -0700 Subject: [PATCH 72/75] Bump v8.0.6+68.0.3440.84 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1223967a5..a5f50389f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.5+68.0.3440.84", + "version": "8.0.6+68.0.3440.84", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4", From 9f580dd4232e1ece022789d2f11512af3982c7ac Mon Sep 17 00:00:00 2001 From: bridiver Date: Thu, 2 Aug 2018 22:21:14 -0700 Subject: [PATCH 73/75] do not allow any loading of brave:// urls from anywhere auditors @darkdh @diracdeltas --- brave/browser/brave_content_browser_client.cc | 9 +++++++++ brave/browser/brave_content_browser_client.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/brave/browser/brave_content_browser_client.cc b/brave/browser/brave_content_browser_client.cc index 02071e4d9..a21a39eb8 100644 --- a/brave/browser/brave_content_browser_client.cc +++ b/brave/browser/brave_content_browser_client.cc @@ -845,9 +845,18 @@ void BraveContentBrowserClient::GetAdditionalWebUISchemes( additional_schemes->push_back(content::kChromeDevToolsScheme); } +bool BraveContentBrowserClient::CanCommitURL( + content::RenderProcessHost* process_host, const GURL& url) { + if (url.SchemeIs("brave")) + return false; + return true; +} + bool BraveContentBrowserClient::ShouldAllowOpenURL( content::SiteInstance* site_instance, const GURL& url) { GURL from_url = site_instance->GetSiteURL(); + if (url.SchemeIs("brave")) + return false; #if BUILDFLAG(ENABLE_EXTENSIONS) bool result; if (AtomBrowserClientExtensionsPart::ShouldAllowOpenURL( diff --git a/brave/browser/brave_content_browser_client.h b/brave/browser/brave_content_browser_client.h index 845275d4c..64f491cfd 100644 --- a/brave/browser/brave_content_browser_client.h +++ b/brave/browser/brave_content_browser_client.h @@ -118,6 +118,8 @@ class BraveContentBrowserClient : public atom::AtomBrowserClient { std::vector* additional_allowed_schemes) override; void GetAdditionalWebUISchemes( std::vector* additional_schemes) override; + bool CanCommitURL( + content::RenderProcessHost* process_host, const GURL& url) override; bool ShouldAllowOpenURL(content::SiteInstance* site_instance, const GURL& url) override; bool IsURLAcceptableForWebUI(content::BrowserContext* browser_context, From 8aee883b12f18c772e5f31a7ba5b07ab05088b0b Mon Sep 17 00:00:00 2001 From: bridiver Date: Wed, 8 Aug 2018 16:11:09 -0700 Subject: [PATCH 74/75] release unique_ptr to avoid double delete auditors @darkdh @hferreiro --- brave/browser/resource_coordinator/guest_tab_manager.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/brave/browser/resource_coordinator/guest_tab_manager.cc b/brave/browser/resource_coordinator/guest_tab_manager.cc index ebe9da566..c148b97fb 100644 --- a/brave/browser/resource_coordinator/guest_tab_manager.cc +++ b/brave/browser/resource_coordinator/guest_tab_manager.cc @@ -55,10 +55,11 @@ std::unique_ptr GuestTabManager::CreateNullContents( } void GuestTabManager::DestroyOldContents( - std::unique_ptr old_contents) { + std::unique_ptr old_contents_deleter) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - auto tab_helper = extensions::TabHelper::FromWebContents(old_contents.get()); + auto old_contents = old_contents_deleter.release(); + auto tab_helper = extensions::TabHelper::FromWebContents(old_contents); DCHECK(tab_helper && tab_helper->guest()); // Let the guest destroy itself after the detach message has been received tab_helper->guest()->SetCanRunInDetachedState(false); From 2b7e67d9803edbc30bb2fdde3d5050c7a22c6f39 Mon Sep 17 00:00:00 2001 From: bridiver Date: Wed, 8 Aug 2018 16:13:47 -0700 Subject: [PATCH 75/75] Bump v8.0.7+68.0.3440.84 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a5f50389f..f8ceba59a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron", - "version": "8.0.6+68.0.3440.84", + "version": "8.0.7+68.0.3440.84", "devDependencies": { "asar": "^0.11.0", "electabul": "~0.0.4",