diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt index b28e52879..5986ca4ab 100644 --- a/CHROMIUM_BUILD_COMPATIBILITY.txt +++ b/CHROMIUM_BUILD_COMPATIBILITY.txt @@ -7,6 +7,6 @@ # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding { - 'chromium_checkout': 'refs/tags/99.0.4844.9', + 'chromium_checkout': 'refs/tags/99.0.4844.27', 'depot_tools_checkout': '289dedd36b' } diff --git a/libcef/browser/net_service/proxy_url_loader_factory.cc b/libcef/browser/net_service/proxy_url_loader_factory.cc index 5c83edc1e..3f7d8a862 100644 --- a/libcef/browser/net_service/proxy_url_loader_factory.cc +++ b/libcef/browser/net_service/proxy_url_loader_factory.cc @@ -227,7 +227,8 @@ class InterceptedRequest : public network::mojom::URLLoader, // mojom::URLLoaderClient methods: void OnReceiveEarlyHints(network::mojom::EarlyHintsPtr early_hints) override; - void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override; + void OnReceiveResponse(network::mojom::URLResponseHeadPtr head, + mojo::ScopedDataPipeConsumerHandle body) override; void OnReceiveRedirect(const net::RedirectInfo& redirect_info, network::mojom::URLResponseHeadPtr head) override; void OnUploadProgress(int64_t current_position, @@ -333,6 +334,7 @@ class InterceptedRequest : public network::mojom::URLLoader, network::ResourceRequest request_; network::mojom::URLResponseHeadPtr current_response_; + mojo::ScopedDataPipeConsumerHandle current_body_; scoped_refptr current_headers_; scoped_refptr override_headers_; GURL original_url_; @@ -556,8 +558,10 @@ void InterceptedRequest::OnReceiveEarlyHints( } void InterceptedRequest::OnReceiveResponse( - network::mojom::URLResponseHeadPtr head) { + network::mojom::URLResponseHeadPtr head, + mojo::ScopedDataPipeConsumerHandle body) { current_response_ = std::move(head); + current_body_ = std::move(body); if (current_request_uses_header_client_) { // Use the headers we got from OnHeadersReceived as that'll contain @@ -580,6 +584,7 @@ void InterceptedRequest::OnReceiveRedirect( bool needs_callback = false; current_response_ = std::move(head); + current_body_.reset(); if (current_request_uses_header_client_) { // Use the headers we got from OnHeadersReceived as that'll contain @@ -743,6 +748,7 @@ void InterceptedRequest::InterceptResponseReceived( current_response_ = network::mojom::URLResponseHead::New(); current_response_->request_start = base::TimeTicks::Now(); current_response_->response_start = base::TimeTicks::Now(); + current_body_.reset(); auto headers = MakeResponseHeaders( net::HTTP_TEMPORARY_REDIRECT, std::string(), std::string(), @@ -1041,7 +1047,8 @@ void InterceptedRequest::ContinueToResponseStarted(int error_code) { if (proxied_client_receiver_.is_bound()) proxied_client_receiver_.Resume(); - target_client_->OnReceiveResponse(std::move(current_response_)); + target_client_->OnReceiveResponse(std::move(current_response_), + std::move(current_body_)); } if (stream_loader_) diff --git a/libcef/browser/net_service/stream_reader_url_loader.cc b/libcef/browser/net_service/stream_reader_url_loader.cc index 9f6833d2f..6bbac0425 100644 --- a/libcef/browser/net_service/stream_reader_url_loader.cc +++ b/libcef/browser/net_service/stream_reader_url_loader.cc @@ -697,7 +697,8 @@ void StreamReaderURLLoader::ContinueWithResponseHeaders( // |this| will be deleted. CleanUp(); } else { - client_->OnReceiveResponse(std::move(pending_response)); + client_->OnReceiveResponse(std::move(pending_response), + mojo::ScopedDataPipeConsumerHandle()); } } diff --git a/patch/patches/chrome_browser_context_menus.patch b/patch/patches/chrome_browser_context_menus.patch index ad690e572..6d9c4e67a 100644 --- a/patch/patches/chrome_browser_context_menus.patch +++ b/patch/patches/chrome_browser_context_menus.patch @@ -1,8 +1,8 @@ diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc -index 0c42ba3e13fe9..2bb347fe9cd50 100644 +index a041fceb8e425..05cd500de13aa 100644 --- chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc -@@ -293,6 +293,13 @@ base::OnceCallback* GetMenuShownCallback() { +@@ -294,6 +294,13 @@ base::OnceCallback* GetMenuShownCallback() { return callback.get(); } @@ -16,7 +16,7 @@ index 0c42ba3e13fe9..2bb347fe9cd50 100644 enum class UmaEnumIdLookupType { GeneralEnumId, ContextSpecificEnumId, -@@ -506,6 +513,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) { +@@ -504,6 +511,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) { if (ContextMenuMatcher::IsExtensionsCustomCommandId(id)) return 1; @@ -27,7 +27,7 @@ index 0c42ba3e13fe9..2bb347fe9cd50 100644 id = CollapseCommandsForUMA(id); const auto& map = GetIdcToUmaMap(type); auto it = map.find(id); -@@ -697,6 +708,14 @@ RenderViewContextMenu::RenderViewContextMenu( +@@ -695,6 +706,14 @@ RenderViewContextMenu::RenderViewContextMenu( system_app_ = GetBrowser() && GetBrowser()->app_controller() ? GetBrowser()->app_controller()->system_app() : nullptr; @@ -42,7 +42,7 @@ index 0c42ba3e13fe9..2bb347fe9cd50 100644 } RenderViewContextMenu::~RenderViewContextMenu() = default; -@@ -1064,6 +1083,12 @@ void RenderViewContextMenu::InitMenu() { +@@ -1062,6 +1081,12 @@ void RenderViewContextMenu::InitMenu() { // menu, meaning that each menu item added/removed in this function will cause // it to visibly jump on the screen (see b/173569669). AppendQuickAnswersItems(); @@ -55,7 +55,7 @@ index 0c42ba3e13fe9..2bb347fe9cd50 100644 } Profile* RenderViewContextMenu::GetProfile() const { -@@ -2893,6 +2918,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( +@@ -2822,6 +2847,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( execute_plugin_action_callback_ = std::move(cb); } diff --git a/patch/patches/chrome_browser_net_export.patch b/patch/patches/chrome_browser_net_export.patch index 5ba24e27b..7af98c965 100644 --- a/patch/patches/chrome_browser_net_export.patch +++ b/patch/patches/chrome_browser_net_export.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn -index df174d7d1ec4d..8bb63dcc89f20 100644 +index c1f030ecb40ec..1ce574eac188f 100644 --- chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn @@ -10,6 +10,7 @@ import("//build/config/features.gni") @@ -29,7 +29,7 @@ index df174d7d1ec4d..8bb63dcc89f20 100644 "//chrome:extra_resources", "//chrome:resources", "//chrome:strings", -@@ -5209,6 +5215,7 @@ static_library("ui") { +@@ -5210,6 +5216,7 @@ static_library("ui") { if (enable_basic_printing) { deps += [ "//components/printing/browser", diff --git a/patch/patches/chrome_runtime.patch b/patch/patches/chrome_runtime.patch index aa7343f0a..8d7e05870 100644 --- a/patch/patches/chrome_runtime.patch +++ b/patch/patches/chrome_runtime.patch @@ -156,7 +156,7 @@ index dbd8f7ebe071d..b0f8d3d7bcff9 100644 +#endif } diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc -index 70df7bef3a7b1..97d130a0a1be6 100644 +index db9c606e0ebc3..e08f55ee85c61 100644 --- chrome/browser/chrome_content_browser_client.cc +++ chrome/browser/chrome_content_browser_client.cc @@ -28,6 +28,7 @@ @@ -167,7 +167,7 @@ index 70df7bef3a7b1..97d130a0a1be6 100644 #include "chrome/browser/accessibility/accessibility_labels_service.h" #include "chrome/browser/accessibility/accessibility_labels_service_factory.h" #include "chrome/browser/after_startup_task_utils.h" -@@ -3682,9 +3683,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( +@@ -3684,9 +3685,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( &search::HandleNewTabURLReverseRewrite); #endif // BUILDFLAG(IS_ANDROID) @@ -179,7 +179,7 @@ index 70df7bef3a7b1..97d130a0a1be6 100644 } base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() { -@@ -5333,7 +5336,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( +@@ -5338,7 +5341,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( network_service); } @@ -188,7 +188,7 @@ index 70df7bef3a7b1..97d130a0a1be6 100644 content::BrowserContext* context, bool in_memory, const base::FilePath& relative_partition_path, -@@ -5351,6 +5354,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( +@@ -5356,6 +5359,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( network_context_params->user_agent = GetUserAgentBasedOnPolicy(context); network_context_params->accept_language = GetApplicationLocale(); } @@ -198,10 +198,10 @@ index 70df7bef3a7b1..97d130a0a1be6 100644 std::vector diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h -index 71dfd396b405e..879210ff7c8fd 100644 +index 87f0af8fb00cf..87332d3120c1a 100644 --- chrome/browser/chrome_content_browser_client.h +++ chrome/browser/chrome_content_browser_client.h -@@ -549,7 +549,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -550,7 +550,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { override; void OnNetworkServiceCreated( network::mojom::NetworkService* network_service) override; diff --git a/patch/patches/content_2015.patch b/patch/patches/content_2015.patch index 8a81848cb..6cac6455c 100644 --- a/patch/patches/content_2015.patch +++ b/patch/patches/content_2015.patch @@ -12,7 +12,7 @@ index ec6be2ff24d23..159ed7776c0aa 100644 GetContentClient()->browser()->GetUserAgent()); version.SetString("V8-Version", V8_VERSION_STRING); diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc -index c1235f9658b88..040d9afb0d9ff 100644 +index b5c2dc992fb19..868661c86c39a 100644 --- content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc @@ -665,6 +665,14 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest( @@ -136,10 +136,10 @@ index b914cb91a2b49..2f84201ba4d1e 100644 // started. virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc -index 03f9fac832072..1f45e54e32da9 100644 +index f6574e15fc0d3..380b80337da71 100644 --- content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc -@@ -640,6 +640,8 @@ void RenderThreadImpl::Init() { +@@ -656,6 +656,8 @@ void RenderThreadImpl::Init() { GetContentClient()->renderer()->CreateURLLoaderThrottleProvider( blink::URLLoaderThrottleProviderType::kFrame); diff --git a/patch/patches/embedder_product_override.patch b/patch/patches/embedder_product_override.patch index 4d68c2beb..30c739742 100644 --- a/patch/patches/embedder_product_override.patch +++ b/patch/patches/embedder_product_override.patch @@ -1,5 +1,5 @@ diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc -index a001f60b279ed..b0ee6283be54f 100644 +index 4c38233047000..4601ad9df744d 100644 --- components/embedder_support/user_agent_utils.cc +++ components/embedder_support/user_agent_utils.cc @@ -15,6 +15,7 @@ @@ -7,13 +7,13 @@ index a001f60b279ed..b0ee6283be54f 100644 #include "build/branding_buildflags.h" #include "build/build_config.h" +#include "cef/libcef/common/cef_switches.h" + #include "components/embedder_support/pref_names.h" #include "components/embedder_support/switches.h" #include "components/policy/core/common/policy_pref_names.h" - #include "components/prefs/pref_service.h" -@@ -276,6 +277,12 @@ blink::UserAgentBrandList GetBrandFullVersionList( - } // namespace +@@ -353,6 +354,12 @@ std::string GetMajorVersionForUserAgentString( - std::string GetProduct(const bool allow_version_override) { + std::string GetProduct(const bool allow_version_override, + ForceMajorVersionToMinorPosition force_major_to_minor) { + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kUserAgentProductAndVersion)) { + return command_line->GetSwitchValueASCII( diff --git a/patch/patches/rwh_background_color_1984.patch b/patch/patches/rwh_background_color_1984.patch index d23ddc473..cf23fbe02 100644 --- a/patch/patches/rwh_background_color_1984.patch +++ b/patch/patches/rwh_background_color_1984.patch @@ -1,5 +1,5 @@ diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc -index 20d613c480ce5..1753448bff5ce 100644 +index 99f3ba03249b3..47566fd1ca43b 100644 --- content/browser/renderer_host/render_widget_host_view_aura.cc +++ content/browser/renderer_host/render_widget_host_view_aura.cc @@ -5,6 +5,7 @@ diff --git a/patch/patches/webview_plugin_2020.patch b/patch/patches/webview_plugin_2020.patch index ad8bc6c2f..8b57b7a1e 100644 --- a/patch/patches/webview_plugin_2020.patch +++ b/patch/patches/webview_plugin_2020.patch @@ -1,5 +1,5 @@ diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd -index 2e9301625477b..d941840163cb1 100644 +index 9fa63decc3d89..0d9100be6b128 100644 --- chrome/app/generated_resources.grd +++ chrome/app/generated_resources.grd @@ -5424,7 +5424,7 @@ Keep your key file in a safe place. You will need it to create new versions of y