mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Update to Chromium version 105.0.5176.0 (#1023155)
This commit is contained in:
		| @@ -7,5 +7,5 @@ | ||||
| # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding | ||||
|  | ||||
| { | ||||
|   'chromium_checkout': 'refs/tags/104.0.5112.0' | ||||
|   'chromium_checkout': 'refs/tags/105.0.5176.0' | ||||
| } | ||||
|   | ||||
| @@ -43,7 +43,6 @@ | ||||
|     'content/browser/renderer_host/render_widget_host_view_base.*', | ||||
|     'content/public/browser/content_browser_client.*', | ||||
|     'content/public/browser/render_widget_host_view.h', | ||||
|     'content/public/browser/storage_partition.h', | ||||
|     'content/public/browser/web_contents_delegate.h', | ||||
|     'content/public/common/content_features.cc', | ||||
|     'content/shell/BUILD.gn', | ||||
|   | ||||
| @@ -42,13 +42,13 @@ | ||||
| // way that may cause binary incompatibility with other builds. The universal | ||||
| // hash value will change if any platform is affected whereas the platform hash | ||||
| // values will change only if that particular platform is affected. | ||||
| #define CEF_API_HASH_UNIVERSAL "39f4f2317bfe2012cbc93d007f7b66b051a40801" | ||||
| #define CEF_API_HASH_UNIVERSAL "f8cca8b07034c67a6302e505c230ffe0f050fd78" | ||||
| #if defined(OS_WIN) | ||||
| #define CEF_API_HASH_PLATFORM "69c564c61f449d5121f991027434b904f9da0487" | ||||
| #define CEF_API_HASH_PLATFORM "315cda8357a855c2db9c5cdfce405b5e575fa667" | ||||
| #elif defined(OS_MAC) | ||||
| #define CEF_API_HASH_PLATFORM "5304a0e2ad7f12306b20aa68a2393068e3d486e3" | ||||
| #define CEF_API_HASH_PLATFORM "3d59ba798ad73de75680f7b3487a2f8061a1650b" | ||||
| #elif defined(OS_LINUX) | ||||
| #define CEF_API_HASH_PLATFORM "dbce3938f92feca03bcf12a183db4e903cd3aa87" | ||||
| #define CEF_API_HASH_PLATFORM "fac4720a6d4e5a3550e421aaf043d46ab15dfa85" | ||||
| #endif | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|   | ||||
| @@ -3145,7 +3145,7 @@ typedef struct _cef_audio_parameters_t { | ||||
|  | ||||
| /// | ||||
| // Result codes for CefMediaRouter::CreateRoute. Should be kept in sync with | ||||
| // Chromium's media_router::RouteRequestResult::ResultCode type. | ||||
| // Chromium's media_router::mojom::RouteRequestResultCode type. | ||||
| /// | ||||
| typedef enum { | ||||
|   CEF_MRCR_UNKNOWN_ERROR = 0, | ||||
| @@ -3158,8 +3158,6 @@ typedef enum { | ||||
|   CEF_MRCR_CANCELLED = 8, | ||||
|   CEF_MRCR_ROUTE_ALREADY_EXISTS = 9, | ||||
|   CEF_MRCR_ROUTE_ALREADY_TERMINATED = 11, | ||||
|  | ||||
|   CEF_MRCR_TOTAL_COUNT = 12  // The total number of values. | ||||
| } cef_media_route_create_result_t; | ||||
|  | ||||
| /// | ||||
|   | ||||
| @@ -1082,7 +1082,8 @@ void AlloyBrowserHostImpl::CloseContents(content::WebContents* source) { | ||||
|  | ||||
|       if (source) { | ||||
|         // Try to fast shutdown the associated process. | ||||
|         source->GetMainFrame()->GetProcess()->FastShutdownIfPossible(1, false); | ||||
|         source->GetPrimaryMainFrame()->GetProcess()->FastShutdownIfPossible( | ||||
|             1, false); | ||||
|       } | ||||
|  | ||||
|       // No window exists. Destroy the browser immediately. Don't call other | ||||
| @@ -1463,7 +1464,7 @@ AlloyBrowserHostImpl::AlloyBrowserHostImpl( | ||||
|   platform_delegate_->BrowserCreated(this); | ||||
|  | ||||
|   // Make sure RenderFrameCreated is called at least one time. | ||||
|   RenderFrameCreated(web_contents->GetMainFrame()); | ||||
|   RenderFrameCreated(web_contents->GetPrimaryMainFrame()); | ||||
| } | ||||
|  | ||||
| bool AlloyBrowserHostImpl::CreateHostWindow() { | ||||
|   | ||||
| @@ -153,14 +153,10 @@ void ToolkitInitializedLinux() { | ||||
|         new ui::FakeInputMethodContextFactory()); | ||||
|   } | ||||
|  | ||||
|   auto create_print_dialog_func = | ||||
|       printing::PrintingContextLinux::SetCreatePrintDialogFunction( | ||||
|           &CefPrintDialogLinux::CreatePrintDialog); | ||||
|   auto pdf_paper_size_func = | ||||
|       printing::PrintingContextLinux::SetPdfPaperSizeFunction( | ||||
|           &CefPrintDialogLinux::GetPdfPaperSize); | ||||
|   CefPrintDialogLinux::SetDefaultPrintingContextFuncs(create_print_dialog_func, | ||||
|                                                       pdf_paper_size_func); | ||||
|   auto printing_delegate = new CefPrintingContextLinuxDelegate(); | ||||
|   auto default_delegate = | ||||
|       printing::PrintingContextLinuxDelegate::SetInstance(printing_delegate); | ||||
|   printing_delegate->SetDefaultDelegate(default_delegate); | ||||
| } | ||||
|  | ||||
| #endif  // BUILDFLAG(IS_LINUX) | ||||
|   | ||||
| @@ -100,7 +100,7 @@ void CefBrowserContentsDelegate::ObserveWebContents( | ||||
|     // Make sure MaybeCreateFrame is called at least one time. | ||||
|     // Create the frame representation before OnAfterCreated is called for a new | ||||
|     // browser. | ||||
|     browser_info_->MaybeCreateFrame(new_contents->GetMainFrame(), | ||||
|     browser_info_->MaybeCreateFrame(new_contents->GetPrimaryMainFrame(), | ||||
|                                     false /* is_guest_view */); | ||||
|  | ||||
|     // Make sure RenderWidgetCreated is called at least one time. This Observer | ||||
|   | ||||
| @@ -1012,7 +1012,7 @@ bool CefBrowserHostBase::IsFocused() const { | ||||
|   auto web_contents = GetWebContents(); | ||||
|   if (web_contents) { | ||||
|     return static_cast<content::RenderFrameHostImpl*>( | ||||
|                web_contents->GetMainFrame()) | ||||
|                web_contents->GetPrimaryMainFrame()) | ||||
|         ->IsFocused(); | ||||
|   } | ||||
|   return false; | ||||
|   | ||||
| @@ -85,7 +85,7 @@ scoped_refptr<CefBrowserInfo> CefBrowserInfoManager::CreatePopupBrowserInfo( | ||||
|     CefRefPtr<CefDictionaryValue> extra_info) { | ||||
|   base::AutoLock lock_scope(browser_info_lock_); | ||||
|  | ||||
|   auto frame_host = new_contents->GetMainFrame(); | ||||
|   auto frame_host = new_contents->GetPrimaryMainFrame(); | ||||
|  | ||||
|   scoped_refptr<CefBrowserInfo> browser_info = | ||||
|       new CefBrowserInfo(++next_browser_id_, true, is_windowless, extra_info); | ||||
|   | ||||
| @@ -28,8 +28,8 @@ void ChromeMimeHandlerViewGuestDelegateCef::OnGuestAttached() { | ||||
|   DCHECK(owner_browser); | ||||
|  | ||||
|   // Associate guest state information with the owner browser. | ||||
|   owner_browser->browser_info()->MaybeCreateFrame(web_contents->GetMainFrame(), | ||||
|                                                   true /* is_guest_view */); | ||||
|   owner_browser->browser_info()->MaybeCreateFrame( | ||||
|       web_contents->GetPrimaryMainFrame(), true /* is_guest_view */); | ||||
| } | ||||
|  | ||||
| void ChromeMimeHandlerViewGuestDelegateCef::OnGuestDetached() { | ||||
| @@ -41,7 +41,8 @@ void ChromeMimeHandlerViewGuestDelegateCef::OnGuestDetached() { | ||||
|   DCHECK(owner_browser); | ||||
|  | ||||
|   // Disassociate guest state information with the owner browser. | ||||
|   owner_browser->browser_info()->RemoveFrame(web_contents->GetMainFrame()); | ||||
|   owner_browser->browser_info()->RemoveFrame( | ||||
|       web_contents->GetPrimaryMainFrame()); | ||||
| } | ||||
|  | ||||
| }  // namespace extensions | ||||
|   | ||||
| @@ -200,6 +200,6 @@ void CefDevToolsFileManager::CallClientFunction( | ||||
|     } | ||||
|   } | ||||
|   javascript.append(");"); | ||||
|   browser_impl_->web_contents()->GetMainFrame()->ExecuteJavaScript( | ||||
|   browser_impl_->web_contents()->GetPrimaryMainFrame()->ExecuteJavaScript( | ||||
|       base::UTF8ToUTF16(javascript), base::NullCallback()); | ||||
| } | ||||
|   | ||||
| @@ -369,20 +369,18 @@ void CefDevToolsFrontend::WebContentsDestroyed() { | ||||
| } | ||||
|  | ||||
| void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend( | ||||
|     base::Value message) { | ||||
|   if (!message.is_dict()) | ||||
|     return; | ||||
|   const std::string* method = message.FindStringKey("method"); | ||||
|     base::Value::Dict message) { | ||||
|   const std::string* method = message.FindString("method"); | ||||
|   if (!method) | ||||
|     return; | ||||
|  | ||||
|   int request_id = message.FindIntKey("id").value_or(0); | ||||
|   base::Value* params_value = message.FindListKey("params"); | ||||
|   int request_id = message.FindInt("id").value_or(0); | ||||
|   base::Value::List* params_value = message.FindList("params"); | ||||
|  | ||||
|   // Since we've received message by value, we can take the list. | ||||
|   base::Value::ListStorage params; | ||||
|   base::Value::List params; | ||||
|   if (params_value) { | ||||
|     params = std::move(*params_value).TakeListDeprecated(); | ||||
|     params = std::move(*params_value); | ||||
|   } | ||||
|  | ||||
|   if (*method == "dispatchProtocolMessage") { | ||||
| @@ -397,7 +395,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend( | ||||
|     agent_host_->DispatchProtocolMessage( | ||||
|         this, base::as_bytes(base::make_span(*protocol_message))); | ||||
|   } else if (*method == "loadCompleted") { | ||||
|     web_contents()->GetMainFrame()->ExecuteJavaScriptForTests( | ||||
|     web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptForTests( | ||||
|         u"DevToolsAPI.setUseSoftMenu(true);", base::NullCallback()); | ||||
|   } else if (*method == "loadNetworkResource") { | ||||
|     if (params.size() < 3) | ||||
| @@ -413,10 +411,10 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend( | ||||
|  | ||||
|     GURL gurl(*url); | ||||
|     if (!gurl.is_valid()) { | ||||
|       base::DictionaryValue response; | ||||
|       response.SetInteger("statusCode", 404); | ||||
|       response.SetBoolean("urlValid", false); | ||||
|       SendMessageAck(request_id, std::move(response)); | ||||
|       base::Value::Dict response; | ||||
|       response.Set("statusCode", 404); | ||||
|       response.Set("urlValid", false); | ||||
|       SendMessageAck(request_id, base::Value(std::move(response))); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
| @@ -471,7 +469,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend( | ||||
|       return; | ||||
|     } else { | ||||
|       auto* partition = | ||||
|           web_contents()->GetBrowserContext()->GetStoragePartitionForUrl(gurl); | ||||
|           inspected_contents_->GetPrimaryMainFrame()->GetStoragePartition(); | ||||
|       url_loader_factory = partition->GetURLLoaderFactoryForBrowserProcess(); | ||||
|     } | ||||
|  | ||||
| @@ -506,7 +504,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend( | ||||
|     DictionaryPrefUpdate update(GetPrefs(), prefs::kDevToolsPreferences); | ||||
|     update.Get()->RemoveKey(*name); | ||||
|   } else if (*method == "requestFileSystems") { | ||||
|     web_contents()->GetMainFrame()->ExecuteJavaScriptForTests( | ||||
|     web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptForTests( | ||||
|         u"DevToolsAPI.fileSystemsLoaded([]);", base::NullCallback()); | ||||
|   } else if (*method == "reattach") { | ||||
|     if (!agent_host_) | ||||
| @@ -592,7 +590,7 @@ void CefDevToolsFrontend::CallClientFunction( | ||||
|     base::OnceCallback<void(base::Value)> cb) { | ||||
|   std::string javascript; | ||||
|  | ||||
|   web_contents()->GetMainFrame()->AllowInjectingJavaScript(); | ||||
|   web_contents()->GetPrimaryMainFrame()->AllowInjectingJavaScript(); | ||||
|  | ||||
|   base::Value::List arguments; | ||||
|   if (!arg1.is_none()) { | ||||
| @@ -604,7 +602,7 @@ void CefDevToolsFrontend::CallClientFunction( | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   web_contents()->GetMainFrame()->ExecuteJavaScriptMethod( | ||||
|   web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptMethod( | ||||
|       base::ASCIIToUTF16(object_name), base::ASCIIToUTF16(method_name), | ||||
|       std::move(arguments), std::move(cb)); | ||||
| } | ||||
|   | ||||
| @@ -74,7 +74,7 @@ class CefDevToolsFrontend : public content::WebContentsObserver, | ||||
|   void AgentHostClosed(content::DevToolsAgentHost* agent_host) override; | ||||
|   void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host, | ||||
|                                base::span<const uint8_t> message) override; | ||||
|   void HandleMessageFromDevToolsFrontend(base::Value message); | ||||
|   void HandleMessageFromDevToolsFrontend(base::Value::Dict message); | ||||
|  | ||||
|  private: | ||||
|   // WebContentsObserver overrides | ||||
|   | ||||
| @@ -160,7 +160,6 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback { | ||||
|           download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | ||||
|           download::DownloadItem::MixedContentStatus::UNKNOWN, suggested_path, | ||||
|           base::FilePath(), std::string() /*mime_type*/, | ||||
|           absl::nullopt /*download_schedule*/, | ||||
|           download::DOWNLOAD_INTERRUPT_REASON_NONE); | ||||
|     } | ||||
|   } | ||||
| @@ -179,7 +178,6 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback { | ||||
|                             download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | ||||
|                             download::DownloadItem::MixedContentStatus::UNKNOWN, | ||||
|                             path, base::FilePath(), std::string() /*mime_type*/, | ||||
|                             absl::nullopt /*download_schedule*/, | ||||
|                             download::DOWNLOAD_INTERRUPT_REASON_NONE); | ||||
|   } | ||||
|  | ||||
| @@ -368,8 +366,7 @@ bool CefDownloadManagerDelegate::DetermineDownloadTarget( | ||||
|         download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | ||||
|         download::DownloadItem::MixedContentStatus::UNKNOWN, | ||||
|         item->GetForcedFilePath(), base::FilePath(), | ||||
|         std::string() /*mime_type*/, absl::nullopt /*download_schedule*/, | ||||
|         download::DOWNLOAD_INTERRUPT_REASON_NONE); | ||||
|         std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE); | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -46,8 +46,8 @@ void CefMimeHandlerViewGuestDelegate::OnGuestAttached() { | ||||
|   DCHECK(owner_browser); | ||||
|  | ||||
|   // Associate guest state information with the owner browser. | ||||
|   owner_browser->browser_info()->MaybeCreateFrame(web_contents->GetMainFrame(), | ||||
|                                                   true /* is_guest_view */); | ||||
|   owner_browser->browser_info()->MaybeCreateFrame( | ||||
|       web_contents->GetPrimaryMainFrame(), true /* is_guest_view */); | ||||
| } | ||||
|  | ||||
| void CefMimeHandlerViewGuestDelegate::OnGuestDetached() { | ||||
| @@ -59,7 +59,8 @@ void CefMimeHandlerViewGuestDelegate::OnGuestDetached() { | ||||
|   DCHECK(owner_browser); | ||||
|  | ||||
|   // Disassociate guest state information with the owner browser. | ||||
|   owner_browser->browser_info()->RemoveFrame(web_contents->GetMainFrame()); | ||||
|   owner_browser->browser_info()->RemoveFrame( | ||||
|       web_contents->GetPrimaryMainFrame()); | ||||
| } | ||||
|  | ||||
| bool CefMimeHandlerViewGuestDelegate::HandleContextMenu( | ||||
|   | ||||
| @@ -60,11 +60,11 @@ ValueStore::ReadResult CefValueStore::Get( | ||||
|   if (!status_.ok()) | ||||
|     return ReadResult(CreateStatusCopy(status_)); | ||||
|  | ||||
|   auto settings = std::make_unique<base::DictionaryValue>(); | ||||
|   base::Value::Dict settings; | ||||
|   for (const auto& key : keys) { | ||||
|     base::Value* value = storage_.FindKey(key); | ||||
|     base::Value* value = storage_.Find(key); | ||||
|     if (value) { | ||||
|       settings->SetKey(key, value->Clone()); | ||||
|       settings.Set(key, value->Clone()); | ||||
|     } | ||||
|   } | ||||
|   return ReadResult(std::move(settings), CreateStatusCopy(status_)); | ||||
| @@ -74,35 +74,33 @@ ValueStore::ReadResult CefValueStore::Get() { | ||||
|   read_count_++; | ||||
|   if (!status_.ok()) | ||||
|     return ReadResult(CreateStatusCopy(status_)); | ||||
|   return ReadResult(storage_.CreateDeepCopy(), CreateStatusCopy(status_)); | ||||
|   return ReadResult(storage_.Clone(), CreateStatusCopy(status_)); | ||||
| } | ||||
|  | ||||
| ValueStore::WriteResult CefValueStore::Set(WriteOptions options, | ||||
|                                            const std::string& key, | ||||
|                                            const base::Value& value) { | ||||
|   base::DictionaryValue settings; | ||||
|   settings.SetKey(key, value.Clone()); | ||||
|   base::Value::Dict settings; | ||||
|   settings.Set(key, value.Clone()); | ||||
|   return Set(options, settings); | ||||
| } | ||||
|  | ||||
| ValueStore::WriteResult CefValueStore::Set( | ||||
|     WriteOptions options, | ||||
|     const base::DictionaryValue& settings) { | ||||
| ValueStore::WriteResult CefValueStore::Set(WriteOptions options, | ||||
|                                            const base::Value::Dict& settings) { | ||||
|   write_count_++; | ||||
|   if (!status_.ok()) | ||||
|     return WriteResult(CreateStatusCopy(status_)); | ||||
|  | ||||
|   ValueStoreChangeList changes; | ||||
|   for (base::DictionaryValue::Iterator it(settings); !it.IsAtEnd(); | ||||
|        it.Advance()) { | ||||
|     base::Value* old_value = storage_.FindKey(it.key()); | ||||
|     if (!old_value || *old_value != it.value()) { | ||||
|       changes.emplace_back(it.key(), | ||||
|   for (const auto [key, value] : settings) { | ||||
|     base::Value* old_value = storage_.Find(key); | ||||
|     if (!old_value || *old_value != value) { | ||||
|       changes.emplace_back(key, | ||||
|                            old_value | ||||
|                                ? absl::optional<base::Value>(old_value->Clone()) | ||||
|                                : absl::nullopt, | ||||
|                            it.value().Clone()); | ||||
|       storage_.SetKey(it.key(), it.value().Clone()); | ||||
|                            value.Clone()); | ||||
|       storage_.Set(key, value.Clone()); | ||||
|     } | ||||
|   } | ||||
|   return WriteResult(std::move(changes), CreateStatusCopy(status_)); | ||||
| @@ -120,7 +118,7 @@ ValueStore::WriteResult CefValueStore::Remove( | ||||
|  | ||||
|   ValueStoreChangeList changes; | ||||
|   for (auto const& key : keys) { | ||||
|     absl::optional<base::Value> old_value = storage_.ExtractKey(key); | ||||
|     absl::optional<base::Value> old_value = storage_.Extract(key); | ||||
|     if (old_value.has_value()) { | ||||
|       changes.emplace_back(key, std::move(*old_value), absl::nullopt); | ||||
|     } | ||||
| @@ -130,9 +128,8 @@ ValueStore::WriteResult CefValueStore::Remove( | ||||
|  | ||||
| ValueStore::WriteResult CefValueStore::Clear() { | ||||
|   std::vector<std::string> keys; | ||||
|   for (base::DictionaryValue::Iterator it(storage_); !it.IsAtEnd(); | ||||
|        it.Advance()) { | ||||
|     keys.push_back(it.key()); | ||||
|   for (const auto [key, value] : storage_) { | ||||
|     keys.push_back(key); | ||||
|   } | ||||
|   return Remove(keys); | ||||
| } | ||||
|   | ||||
| @@ -48,13 +48,13 @@ class CefValueStore : public ValueStore { | ||||
|                   const std::string& key, | ||||
|                   const base::Value& value) override; | ||||
|   WriteResult Set(WriteOptions options, | ||||
|                   const base::DictionaryValue& values) override; | ||||
|                   const base::Value::Dict& values) override; | ||||
|   WriteResult Remove(const std::string& key) override; | ||||
|   WriteResult Remove(const std::vector<std::string>& keys) override; | ||||
|   WriteResult Clear() override; | ||||
|  | ||||
|  private: | ||||
|   base::DictionaryValue storage_; | ||||
|   base::Value::Dict storage_; | ||||
|   int read_count_ = 0; | ||||
|   int write_count_ = 0; | ||||
|   ValueStore::Status status_; | ||||
|   | ||||
| @@ -368,7 +368,7 @@ void CefFileDialogManager::RunFileChooser( | ||||
|   // by CefSelectFileDialogFactory, resulting in call to RunSelectFile below. | ||||
|   // See related comments on CefSelectFileDialogFactory. | ||||
|   FileSelectHelper::RunFileChooser( | ||||
|       browser_->GetWebContents()->GetMainFrame(), | ||||
|       browser_->GetWebContents()->GetPrimaryMainFrame(), | ||||
|       base::MakeRefCounted<CefFileSelectListener>(std::move(callback)), | ||||
|       new_params, /*run_from_cef=*/true); | ||||
| } | ||||
|   | ||||
| @@ -117,8 +117,8 @@ class CefUIThread : public base::PlatformThread::Delegate { | ||||
|  | ||||
|   void Start() { | ||||
|     base::AutoLock lock(thread_lock_); | ||||
|     bool success = base::PlatformThread::CreateWithPriority( | ||||
|         0, this, &thread_, base::ThreadPriority::NORMAL); | ||||
|     bool success = base::PlatformThread::CreateWithType( | ||||
|         0, this, &thread_, base::ThreadType::kDefault); | ||||
|     if (!success) { | ||||
|       LOG(FATAL) << "failed to UI create thread"; | ||||
|     } | ||||
|   | ||||
| @@ -137,13 +137,7 @@ class CefRegistrationImpl : public CefRegistration, | ||||
|   IMPLEMENT_REFCOUNTING_DELETE_ON_UIT(CefRegistrationImpl); | ||||
| }; | ||||
|  | ||||
| CefMediaRouterImpl::CefMediaRouterImpl() { | ||||
|   // Verify that our enum matches Chromium's values. | ||||
|   static_assert( | ||||
|       static_cast<int>(CEF_MRCR_TOTAL_COUNT) == | ||||
|           static_cast<int>(media_router::RouteRequestResult::TOTAL_COUNT), | ||||
|       "enum mismatch"); | ||||
| } | ||||
| CefMediaRouterImpl::CefMediaRouterImpl() = default; | ||||
|  | ||||
| void CefMediaRouterImpl::Initialize( | ||||
|     const CefBrowserContext::Getter& browser_context_getter, | ||||
| @@ -285,7 +279,7 @@ void CefMediaRouterImpl::CreateRouteCallback( | ||||
|     const media_router::RouteRequestResult& result) { | ||||
|   DCHECK(ValidContext()); | ||||
|  | ||||
|   if (result.result_code() != media_router::RouteRequestResult::OK) { | ||||
|   if (result.result_code() != media_router::mojom::RouteRequestResultCode::OK) { | ||||
|     LOG(WARNING) << "Media route creation failed: " << result.error() << " (" | ||||
|                  << result.result_code() << ")"; | ||||
|   } | ||||
| @@ -294,7 +288,7 @@ void CefMediaRouterImpl::CreateRouteCallback( | ||||
|     return; | ||||
|  | ||||
|   CefRefPtr<CefMediaRoute> route; | ||||
|   if (result.result_code() == media_router::RouteRequestResult::OK && | ||||
|   if (result.result_code() == media_router::mojom::RouteRequestResultCode::OK && | ||||
|       result.route()) { | ||||
|     route = new CefMediaRouteImpl(*result.route(), browser_context_getter_); | ||||
|   } | ||||
|   | ||||
| @@ -36,7 +36,6 @@ | ||||
| #include "chrome/browser/ui/webui/theme_source.h" | ||||
| #include "chrome/common/url_constants.h" | ||||
| #include "content/browser/renderer_host/debug_urls.h" | ||||
| #include "content/browser/webui/content_web_ui_controller_factory.h" | ||||
| #include "content/public/browser/browser_url_handler.h" | ||||
| #include "content/public/browser/content_browser_client.h" | ||||
| #include "content/public/browser/url_data_source.h" | ||||
| @@ -577,11 +576,6 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory { | ||||
|       return std::make_unique<CefWebUIController>(web_ui, url.host(), host_id); | ||||
|     } | ||||
|  | ||||
|     controller = content::ContentWebUIControllerFactory::GetInstance() | ||||
|                      ->CreateWebUIControllerForURL(web_ui, url); | ||||
|     if (controller) | ||||
|       return controller; | ||||
|  | ||||
|     controller = content::WebUIConfigMap::GetInstance() | ||||
|                      .controller_factory() | ||||
|                      ->CreateWebUIControllerForURL(web_ui, url); | ||||
| @@ -603,11 +597,6 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory { | ||||
|       return kCefWebUITypeID; | ||||
|     } | ||||
|  | ||||
|     type = content::ContentWebUIControllerFactory::GetInstance()->GetWebUIType( | ||||
|         browser_context, url); | ||||
|     if (type != content::WebUI::kNoWebUI) | ||||
|       return type; | ||||
|  | ||||
|     type = content::WebUIConfigMap::GetInstance() | ||||
|                .controller_factory() | ||||
|                ->GetWebUIType(browser_context, url); | ||||
| @@ -632,9 +621,7 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory { | ||||
|       return true; | ||||
|     } | ||||
|  | ||||
|     if (content::ContentWebUIControllerFactory::GetInstance()->UseWebUIForURL( | ||||
|             browser_context, url) || | ||||
|         content::WebUIConfigMap::GetInstance() | ||||
|     if (content::WebUIConfigMap::GetInstance() | ||||
|             .controller_factory() | ||||
|             ->UseWebUIForURL(browser_context, url) || | ||||
|         ChromeWebUIControllerFactory::GetInstance()->UseWebUIForURL( | ||||
| @@ -698,8 +685,6 @@ CefWebUIControllerFactory* CefWebUIControllerFactory::GetInstance() { | ||||
|  | ||||
| void RegisterWebUIControllerFactory() { | ||||
|   // Channel all WebUI handling through CefWebUIControllerFactory. | ||||
|   content::WebUIControllerFactory::UnregisterFactoryForTesting( | ||||
|       content::ContentWebUIControllerFactory::GetInstance()); | ||||
|   content::WebUIControllerFactory::UnregisterFactoryForTesting( | ||||
|       content::WebUIConfigMap::GetInstance().controller_factory()); | ||||
|  | ||||
|   | ||||
| @@ -43,8 +43,8 @@ bool NavigationOnUIThread(content::NavigationHandle* navigation_handle) { | ||||
|  | ||||
|   CefRefPtr<CefBrowserHostBase> browser; | ||||
|   if (!CefBrowserInfoManager::GetInstance()->MaybeAllowNavigation( | ||||
|           navigation_handle->GetWebContents()->GetMainFrame(), open_params, | ||||
|           browser)) { | ||||
|           navigation_handle->GetWebContents()->GetPrimaryMainFrame(), | ||||
|           open_params, browser)) { | ||||
|     // Cancel the navigation. | ||||
|     return true; | ||||
|   } | ||||
|   | ||||
| @@ -1342,7 +1342,7 @@ std::unique_ptr<InterceptedRequestHandler> CreateInterceptedRequestHandler( | ||||
|   if (request.is_outermost_main_frame || | ||||
|       static_cast<blink::mojom::ResourceType>(request.resource_type) == | ||||
|           blink::mojom::ResourceType::kMainFrame) { | ||||
|     frame = web_contents->GetMainFrame(); | ||||
|     frame = web_contents->GetPrimaryMainFrame(); | ||||
|     CHECK(frame); | ||||
|   } else { | ||||
|     // May return nullptr for frames in inner WebContents. | ||||
| @@ -1359,7 +1359,7 @@ std::unique_ptr<InterceptedRequestHandler> CreateInterceptedRequestHandler( | ||||
|  | ||||
|     if (!frame) { | ||||
|       // Use the main frame for the CefBrowserHost. | ||||
|       frame = web_contents->GetMainFrame(); | ||||
|       frame = web_contents->GetPrimaryMainFrame(); | ||||
|       CHECK(frame); | ||||
|     } | ||||
|   } | ||||
|   | ||||
| @@ -30,6 +30,7 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer { | ||||
|       const gfx::Rect& content_rect, | ||||
|       mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks> | ||||
|           callbacks) override; | ||||
|   void OnNewCropVersion(uint32_t crop_version) override {} | ||||
|   void OnFrameWithEmptyRegionCapture() override {} | ||||
|   void OnStopped() override {} | ||||
|   void OnLog(const std::string& message) override {} | ||||
|   | ||||
| @@ -160,7 +160,7 @@ void SetExtensionPrefs(content::WebContents* web_contents, | ||||
|   // tags as well as hosts that happen to match the id of an installed extension | ||||
|   // would get the wrong preferences. | ||||
|   const GURL& site_url = | ||||
|       web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL(); | ||||
|       web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(); | ||||
|   if (!site_url.SchemeIs(extensions::kExtensionScheme)) | ||||
|     return; | ||||
|  | ||||
| @@ -403,7 +403,8 @@ void PopulateWebPreferences(content::RenderViewHost* rvh, | ||||
|  | ||||
|   auto web_contents = content::WebContents::FromRenderViewHost(rvh); | ||||
|   UpdatePreferredColorScheme( | ||||
|       &web, web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL(), | ||||
|       &web, | ||||
|       web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(), | ||||
|       native_theme); | ||||
|  | ||||
|   // Set preferences based on the extension. | ||||
|   | ||||
| @@ -32,11 +32,6 @@ using printing::PrintSettings; | ||||
|  | ||||
| namespace { | ||||
|  | ||||
| printing::PrintingContextLinux::CreatePrintDialogFunctionPtr | ||||
|     g_default_create_print_dialog_func = nullptr; | ||||
| printing::PrintingContextLinux::PdfPaperSizeFunctionPtr | ||||
|     g_default_pdf_paper_size_func = nullptr; | ||||
|  | ||||
| CefRefPtr<CefBrowserHostBase> GetBrowserForContext( | ||||
|     printing::PrintingContextLinux* context) { | ||||
|   return extensions::GetOwnerBrowserForGlobalId( | ||||
| @@ -127,12 +122,14 @@ class CefPrintJobCallbackImpl : public CefPrintJobCallback { | ||||
|   IMPLEMENT_REFCOUNTING(CefPrintJobCallbackImpl); | ||||
| }; | ||||
|  | ||||
| // static | ||||
| printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog( | ||||
|     PrintingContextLinux* context) { | ||||
| CefPrintingContextLinuxDelegate::CefPrintingContextLinuxDelegate() = default; | ||||
|  | ||||
| printing::PrintDialogLinuxInterface* | ||||
| CefPrintingContextLinuxDelegate::CreatePrintDialog( | ||||
|     printing::PrintingContextLinux* context) { | ||||
|   CEF_REQUIRE_UIT(); | ||||
|  | ||||
|   printing::PrintDialogGtkInterface* interface = nullptr; | ||||
|   printing::PrintDialogLinuxInterface* interface = nullptr; | ||||
|  | ||||
|   auto browser = GetBrowserForContext(context); | ||||
|   if (!browser) { | ||||
| @@ -142,8 +139,8 @@ printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog( | ||||
|  | ||||
|   auto handler = GetPrintHandlerForBrowser(browser); | ||||
|   if (!handler) { | ||||
|     if (g_default_create_print_dialog_func) { | ||||
|       interface = g_default_create_print_dialog_func(context); | ||||
|     if (default_delegate_) { | ||||
|       interface = default_delegate_->CreatePrintDialog(context); | ||||
|       DCHECK(interface); | ||||
|     } | ||||
|   } else { | ||||
| @@ -157,8 +154,7 @@ printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog( | ||||
|   return interface; | ||||
| } | ||||
|  | ||||
| // static | ||||
| gfx::Size CefPrintDialogLinux::GetPdfPaperSize( | ||||
| gfx::Size CefPrintingContextLinuxDelegate::GetPdfPaperSize( | ||||
|     printing::PrintingContextLinux* context) { | ||||
|   CEF_REQUIRE_UIT(); | ||||
|  | ||||
| @@ -172,8 +168,8 @@ gfx::Size CefPrintDialogLinux::GetPdfPaperSize( | ||||
|  | ||||
|   auto handler = GetPrintHandlerForBrowser(browser); | ||||
|   if (!handler) { | ||||
|     if (g_default_pdf_paper_size_func) { | ||||
|       size = g_default_pdf_paper_size_func(context); | ||||
|     if (default_delegate_) { | ||||
|       size = default_delegate_->GetPdfPaperSize(context); | ||||
|       DCHECK(!size.IsEmpty()); | ||||
|     } | ||||
|   } else { | ||||
| @@ -190,14 +186,10 @@ gfx::Size CefPrintDialogLinux::GetPdfPaperSize( | ||||
|   return size; | ||||
| } | ||||
|  | ||||
| // static | ||||
| void CefPrintDialogLinux::SetDefaultPrintingContextFuncs( | ||||
|     printing::PrintingContextLinux::CreatePrintDialogFunctionPtr | ||||
|         create_print_dialog_func, | ||||
|     printing::PrintingContextLinux::PdfPaperSizeFunctionPtr | ||||
|         pdf_paper_size_func) { | ||||
|   g_default_create_print_dialog_func = create_print_dialog_func; | ||||
|   g_default_pdf_paper_size_func = pdf_paper_size_func; | ||||
| void CefPrintingContextLinuxDelegate::SetDefaultDelegate( | ||||
|     printing::PrintingContextLinuxDelegate* delegate) { | ||||
|   DCHECK(!default_delegate_); | ||||
|   default_delegate_ = delegate; | ||||
| } | ||||
|  | ||||
| // static | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
| #include "base/memory/ref_counted.h" | ||||
| #include "base/task/sequenced_task_runner_helpers.h" | ||||
| #include "content/public/browser/browser_thread.h" | ||||
| #include "printing/print_dialog_gtk_interface.h" | ||||
| #include "printing/print_dialog_linux_interface.h" | ||||
| #include "printing/printing_context_linux.h" | ||||
|  | ||||
| namespace printing { | ||||
| @@ -23,8 +23,28 @@ class PrintSettings; | ||||
|  | ||||
| using printing::PrintingContextLinux; | ||||
|  | ||||
| class CefPrintingContextLinuxDelegate | ||||
|     : public printing::PrintingContextLinuxDelegate { | ||||
|  public: | ||||
|   CefPrintingContextLinuxDelegate(); | ||||
|  | ||||
|   CefPrintingContextLinuxDelegate(const CefPrintingContextLinuxDelegate&) = | ||||
|       delete; | ||||
|   CefPrintingContextLinuxDelegate& operator=( | ||||
|       const CefPrintingContextLinuxDelegate&) = delete; | ||||
|  | ||||
|   printing::PrintDialogLinuxInterface* CreatePrintDialog( | ||||
|       printing::PrintingContextLinux* context) override; | ||||
|   gfx::Size GetPdfPaperSize(printing::PrintingContextLinux* context) override; | ||||
|  | ||||
|   void SetDefaultDelegate(printing::PrintingContextLinuxDelegate* delegate); | ||||
|  | ||||
|  private: | ||||
|   printing::PrintingContextLinuxDelegate* default_delegate_ = nullptr; | ||||
| }; | ||||
|  | ||||
| // Needs to be freed on the UI thread to clean up its member variables. | ||||
| class CefPrintDialogLinux : public printing::PrintDialogGtkInterface, | ||||
| class CefPrintDialogLinux : public printing::PrintDialogLinuxInterface, | ||||
|                             public base::RefCountedThreadSafe< | ||||
|                                 CefPrintDialogLinux, | ||||
|                                 content::BrowserThread::DeleteOnUIThread> { | ||||
| @@ -32,24 +52,10 @@ class CefPrintDialogLinux : public printing::PrintDialogGtkInterface, | ||||
|   CefPrintDialogLinux(const CefPrintDialogLinux&) = delete; | ||||
|   CefPrintDialogLinux& operator=(const CefPrintDialogLinux&) = delete; | ||||
|  | ||||
|   // Creates and returns a print dialog. | ||||
|   static printing::PrintDialogGtkInterface* CreatePrintDialog( | ||||
|       PrintingContextLinux* context); | ||||
|  | ||||
|   // Returns the paper size in device units. | ||||
|   static gfx::Size GetPdfPaperSize(printing::PrintingContextLinux* context); | ||||
|  | ||||
|   // Used for calling into the default GTK implementation. | ||||
|   static void SetDefaultPrintingContextFuncs( | ||||
|       printing::PrintingContextLinux::CreatePrintDialogFunctionPtr | ||||
|           create_print_dialog_func, | ||||
|       printing::PrintingContextLinux::PdfPaperSizeFunctionPtr | ||||
|           pdf_paper_size_func); | ||||
|  | ||||
|   // Notify the client when printing has started. | ||||
|   static void OnPrintStart(CefRefPtr<CefBrowserHostBase> browser); | ||||
|  | ||||
|   // PrintDialogGtkInterface implementation. | ||||
|   // PrintDialogLinuxInterface implementation. | ||||
|   void UseDefaultSettings() override; | ||||
|   void UpdateSettings( | ||||
|       std::unique_ptr<printing::PrintSettings> settings) override; | ||||
| @@ -70,6 +76,7 @@ class CefPrintDialogLinux : public printing::PrintDialogGtkInterface, | ||||
|       content::BrowserThread::UI>; | ||||
|   friend class CefPrintDialogCallbackImpl; | ||||
|   friend class CefPrintJobCallbackImpl; | ||||
|   friend class CefPrintingContextLinuxDelegate; | ||||
|  | ||||
|   CefPrintDialogLinux(PrintingContextLinux* context, | ||||
|                       CefRefPtr<CefBrowserHostBase> browser, | ||||
|   | ||||
| @@ -60,16 +60,14 @@ CefRefPtr<CefValue> CefParseJSONAndReturnError( | ||||
|   const std::string& json = json_string.ToString(); | ||||
|  | ||||
|   std::string error_msg; | ||||
|   base::JSONReader::ValueWithError value_and_error = | ||||
|       base::JSONReader::ReadAndReturnValueWithError( | ||||
|   auto result = base::JSONReader::ReadAndReturnValueWithError( | ||||
|       json, GetJSONReaderOptions(options)); | ||||
|   if (value_and_error.value) { | ||||
|   if (result.has_value()) { | ||||
|     return new CefValueImpl( | ||||
|         base::Value::ToUniquePtrValue(std::move(value_and_error.value.value())) | ||||
|             .release()); | ||||
|         base::Value::ToUniquePtrValue(std::move(*result)).release()); | ||||
|   } | ||||
|  | ||||
|   error_msg_out = value_and_error.error_message; | ||||
|   error_msg_out = result.error().message; | ||||
|   return nullptr; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -72,13 +72,13 @@ bool CefThreadImpl::Create(const CefString& display_name, | ||||
|  | ||||
|   switch (priority) { | ||||
|     case TP_BACKGROUND: | ||||
|       options.priority = base::ThreadPriority::BACKGROUND; | ||||
|       options.thread_type = base::ThreadType::kBackground; | ||||
|       break; | ||||
|     case TP_DISPLAY: | ||||
|       options.priority = base::ThreadPriority::DISPLAY; | ||||
|       options.thread_type = base::ThreadType::kDisplayCritical; | ||||
|       break; | ||||
|     case TP_REALTIME_AUDIO: | ||||
|       options.priority = base::ThreadPriority::REALTIME_AUDIO; | ||||
|       options.thread_type = base::ThreadType::kRealtimeAudio; | ||||
|       break; | ||||
|     default: | ||||
|       break; | ||||
|   | ||||
| @@ -71,8 +71,6 @@ | ||||
| #include "content/public/common/content_paths.h" | ||||
| #include "content/public/common/content_switches.h" | ||||
| #include "content/public/common/url_constants.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "content/public/renderer/render_view_visitor.h" | ||||
| #include "extensions/common/manifest_handlers/csp_info.h" | ||||
| #include "extensions/common/switches.h" | ||||
| #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h" | ||||
| @@ -290,7 +288,7 @@ void AlloyContentRendererClient::RenderFrameCreated( | ||||
|   render_manager_->RenderFrameCreated(render_frame, render_frame_observer, | ||||
|                                       browser_created, is_windowless); | ||||
|   if (browser_created) { | ||||
|     OnBrowserCreated(render_frame->GetRenderView(), is_windowless); | ||||
|     OnBrowserCreated(render_frame->GetWebView(), is_windowless); | ||||
|   } | ||||
|  | ||||
|   if (is_windowless.has_value()) { | ||||
| @@ -306,9 +304,7 @@ void AlloyContentRendererClient::WebViewCreated(blink::WebView* web_view) { | ||||
|   absl::optional<bool> is_windowless; | ||||
|   render_manager_->WebViewCreated(web_view, browser_created, is_windowless); | ||||
|   if (browser_created) { | ||||
|     auto render_view = content::RenderView::FromWebView(web_view); | ||||
|     CHECK(render_view); | ||||
|     OnBrowserCreated(render_view, is_windowless); | ||||
|     OnBrowserCreated(web_view, is_windowless); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -516,7 +512,7 @@ void AlloyContentRendererClient::WillDestroyCurrentMessageLoop() { | ||||
| } | ||||
|  | ||||
| void AlloyContentRendererClient::OnBrowserCreated( | ||||
|     content::RenderView* render_view, | ||||
|     blink::WebView* web_view, | ||||
|     absl::optional<bool> is_windowless) { | ||||
| #if BUILDFLAG(IS_MAC) | ||||
|   const bool windowless = is_windowless.has_value() && *is_windowless; | ||||
| @@ -525,7 +521,7 @@ void AlloyContentRendererClient::OnBrowserCreated( | ||||
|   // WebKit layer, or if it would be exposed as an WebView instance method; the | ||||
|   // current implementation uses a static variable, and WebKit needs to be | ||||
|   // patched in order to make it work for each WebView instance | ||||
|   render_view->GetWebView()->SetUseExternalPopupMenusThisInstance(!windowless); | ||||
|   web_view->SetUseExternalPopupMenusThisInstance(!windowless); | ||||
| #endif | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -119,7 +119,7 @@ class AlloyContentRendererClient | ||||
|   void WillDestroyCurrentMessageLoop() override; | ||||
|  | ||||
|  private: | ||||
|   void OnBrowserCreated(content::RenderView* render_view, | ||||
|   void OnBrowserCreated(blink::WebView* web_view, | ||||
|                         absl::optional<bool> is_windowless); | ||||
|  | ||||
|   // Perform cleanup work for single-process mode. | ||||
|   | ||||
| @@ -17,7 +17,6 @@ | ||||
| #include "base/strings/string_util.h" | ||||
| #include "base/strings/utf_string_conversions.h" | ||||
| #include "content/public/renderer/render_frame.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "content/renderer/document_state.h" | ||||
| #include "content/renderer/navigation_state.h" | ||||
| #include "third_party/blink/public/platform/web_string.h" | ||||
| @@ -35,7 +34,7 @@ | ||||
|  | ||||
| // static | ||||
| CefRefPtr<CefBrowserImpl> CefBrowserImpl::GetBrowserForView( | ||||
|     content::RenderView* view) { | ||||
|     blink::WebView* view) { | ||||
|   return CefRenderManager::Get()->GetBrowserForView(view); | ||||
| } | ||||
|  | ||||
| @@ -266,11 +265,11 @@ void CefBrowserImpl::GetFrameNames(std::vector<CefString>& names) { | ||||
| // CefBrowserImpl public methods. | ||||
| // ----------------------------------------------------------------------------- | ||||
|  | ||||
| CefBrowserImpl::CefBrowserImpl(content::RenderView* render_view, | ||||
| CefBrowserImpl::CefBrowserImpl(blink::WebView* web_view, | ||||
|                                int browser_id, | ||||
|                                bool is_popup, | ||||
|                                bool is_windowless) | ||||
|     : blink::WebViewObserver(render_view->GetWebView()), | ||||
|     : blink::WebViewObserver(web_view), | ||||
|       browser_id_(browser_id), | ||||
|       is_popup_(is_popup), | ||||
|       is_windowless_(is_windowless) {} | ||||
|   | ||||
| @@ -24,12 +24,9 @@ | ||||
| namespace blink { | ||||
| class WebFrame; | ||||
| class WebNode; | ||||
| class WebView; | ||||
| }  // namespace blink | ||||
|  | ||||
| namespace content { | ||||
| class RenderView; | ||||
| } | ||||
|  | ||||
| // Renderer plumbing for CEF features. There is a one-to-one relationship | ||||
| // between RenderView on the renderer side and RenderViewHost on the browser | ||||
| // side. | ||||
| @@ -38,7 +35,7 @@ class RenderView; | ||||
| class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver { | ||||
|  public: | ||||
|   // Returns the browser associated with the specified RenderView. | ||||
|   static CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view); | ||||
|   static CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view); | ||||
|   // Returns the browser associated with the specified main WebFrame. | ||||
|   static CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame( | ||||
|       blink::WebFrame* frame); | ||||
| @@ -66,7 +63,7 @@ class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver { | ||||
|   void GetFrameIdentifiers(std::vector<int64>& identifiers) override; | ||||
|   void GetFrameNames(std::vector<CefString>& names) override; | ||||
|  | ||||
|   CefBrowserImpl(content::RenderView* render_view, | ||||
|   CefBrowserImpl(blink::WebView* web_view, | ||||
|                  int browser_id, | ||||
|                  bool is_popup, | ||||
|                  bool is_windowless); | ||||
|   | ||||
| @@ -33,7 +33,6 @@ | ||||
| #include "libcef/renderer/v8_impl.h" | ||||
|  | ||||
| #include "base/strings/utf_string_conversions.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "content/renderer/render_frame_impl.h" | ||||
| #include "third_party/blink/public/mojom/frame/frame.mojom-blink.h" | ||||
| #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h" | ||||
|   | ||||
| @@ -24,7 +24,6 @@ | ||||
| #include "libcef/renderer/v8_impl.h" | ||||
|  | ||||
| #include "content/public/renderer/render_frame.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "third_party/blink/public/web/blink.h" | ||||
| #include "third_party/blink/public/web/web_document.h" | ||||
| #include "third_party/blink/public/web/web_element.h" | ||||
|   | ||||
| @@ -10,7 +10,6 @@ | ||||
|  | ||||
| #include "base/logging.h" | ||||
| #include "content/public/renderer/render_thread.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "content/renderer/render_frame_impl.h" | ||||
| #include "third_party/blink/public/web/web_local_frame.h" | ||||
|  | ||||
|   | ||||
| @@ -35,7 +35,6 @@ | ||||
| #include "content/public/common/content_switches.h" | ||||
| #include "content/public/renderer/render_frame.h" | ||||
| #include "content/public/renderer/render_thread.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "extensions/common/switches.h" | ||||
| #include "mojo/public/cpp/bindings/binder_map.h" | ||||
| #include "services/network/public/mojom/cors_origin_pattern.mojom.h" | ||||
| @@ -56,9 +55,9 @@ CefRenderManager* g_manager = nullptr; | ||||
| class CefGuestView : public blink::WebViewObserver { | ||||
|  public: | ||||
|   CefGuestView(CefRenderManager* manager, | ||||
|                content::RenderView* render_view, | ||||
|                blink::WebView* web_view, | ||||
|                bool is_windowless) | ||||
|       : blink::WebViewObserver(render_view->GetWebView()), | ||||
|       : blink::WebViewObserver(web_view), | ||||
|         manager_(manager), | ||||
|         is_windowless_(is_windowless) {} | ||||
|  | ||||
| @@ -106,7 +105,7 @@ void CefRenderManager::RenderFrameCreated( | ||||
|     CefRenderFrameObserver* render_frame_observer, | ||||
|     bool& browser_created, | ||||
|     absl::optional<bool>& is_windowless) { | ||||
|   auto browser = MaybeCreateBrowser(render_frame->GetRenderView(), render_frame, | ||||
|   auto browser = MaybeCreateBrowser(render_frame->GetWebView(), render_frame, | ||||
|                                     &browser_created, &is_windowless); | ||||
|   if (browser) { | ||||
|     // Attach the frame to the observer for message routing purposes. | ||||
| @@ -118,16 +117,13 @@ void CefRenderManager::RenderFrameCreated( | ||||
| void CefRenderManager::WebViewCreated(blink::WebView* web_view, | ||||
|                                       bool& browser_created, | ||||
|                                       absl::optional<bool>& is_windowless) { | ||||
|   auto render_view = content::RenderView::FromWebView(web_view); | ||||
|   CHECK(render_view); | ||||
|   content::RenderFrame* render_frame = nullptr; | ||||
|   if (web_view->MainFrame()->IsWebLocalFrame()) { | ||||
|     render_frame = content::RenderFrame::FromWebFrame( | ||||
|         web_view->MainFrame()->ToWebLocalFrame()); | ||||
|   } | ||||
|  | ||||
|   MaybeCreateBrowser(render_view, render_frame, &browser_created, | ||||
|                      &is_windowless); | ||||
|   MaybeCreateBrowser(web_view, render_frame, &browser_created, &is_windowless); | ||||
| } | ||||
|  | ||||
| void CefRenderManager::DevToolsAgentAttached() { | ||||
| @@ -157,7 +153,7 @@ void CefRenderManager::ExposeInterfacesToBrowser(mojo::BinderMap* binders) { | ||||
| } | ||||
|  | ||||
| CefRefPtr<CefBrowserImpl> CefRenderManager::GetBrowserForView( | ||||
|     content::RenderView* view) { | ||||
|     blink::WebView* view) { | ||||
|   BrowserMap::const_iterator it = browsers_.find(view); | ||||
|   if (it != browsers_.end()) | ||||
|     return it->second; | ||||
| @@ -282,19 +278,19 @@ void CefRenderManager::WebKitInitialized() { | ||||
| } | ||||
|  | ||||
| CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser( | ||||
|     content::RenderView* render_view, | ||||
|     blink::WebView* web_view, | ||||
|     content::RenderFrame* render_frame, | ||||
|     bool* browser_created, | ||||
|     absl::optional<bool>* is_windowless) { | ||||
|   if (browser_created) | ||||
|     *browser_created = false; | ||||
|  | ||||
|   if (!render_view || !render_frame) | ||||
|   if (!web_view || !render_frame) | ||||
|     return nullptr; | ||||
|  | ||||
|   // Don't create another browser or guest view object if one already exists for | ||||
|   // the view. | ||||
|   auto browser = GetBrowserForView(render_view); | ||||
|   auto browser = GetBrowserForView(web_view); | ||||
|   if (browser) { | ||||
|     if (is_windowless) { | ||||
|       *is_windowless = browser->is_windowless(); | ||||
| @@ -302,7 +298,7 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser( | ||||
|     return browser; | ||||
|   } | ||||
|  | ||||
|   auto guest_view = GetGuestViewForView(render_view); | ||||
|   auto guest_view = GetGuestViewForView(web_view); | ||||
|   if (guest_view) { | ||||
|     if (is_windowless) { | ||||
|       *is_windowless = guest_view->is_windowless(); | ||||
| @@ -331,14 +327,14 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser( | ||||
|     // Don't create a CefBrowser for a PDF renderer, guest view, or if the new | ||||
|     // browser info response has timed out. | ||||
|     guest_views_.insert(std::make_pair( | ||||
|         render_view, std::make_unique<CefGuestView>(this, render_view, | ||||
|                                                     params->is_windowless))); | ||||
|         web_view, | ||||
|         std::make_unique<CefGuestView>(this, web_view, params->is_windowless))); | ||||
|     return nullptr; | ||||
|   } | ||||
|  | ||||
|   browser = new CefBrowserImpl(render_view, params->browser_id, | ||||
|                                params->is_popup, params->is_windowless); | ||||
|   browsers_.insert(std::make_pair(render_view, browser)); | ||||
|   browser = new CefBrowserImpl(web_view, params->browser_id, params->is_popup, | ||||
|                                params->is_windowless); | ||||
|   browsers_.insert(std::make_pair(web_view, browser)); | ||||
|  | ||||
|   // Notify the render process handler. | ||||
|   CefRefPtr<CefApp> application = CefAppManager::Get()->GetApplication(); | ||||
| @@ -378,7 +374,7 @@ void CefRenderManager::OnBrowserDestroyed(CefBrowserImpl* browser) { | ||||
|   NOTREACHED(); | ||||
| } | ||||
|  | ||||
| CefGuestView* CefRenderManager::GetGuestViewForView(content::RenderView* view) { | ||||
| CefGuestView* CefRenderManager::GetGuestViewForView(blink::WebView* view) { | ||||
|   CEF_REQUIRE_RT_RETURN(nullptr); | ||||
|  | ||||
|   GuestViewMap::const_iterator it = guest_views_.find(view); | ||||
|   | ||||
| @@ -24,7 +24,6 @@ class WebView; | ||||
|  | ||||
| namespace content { | ||||
| class RenderFrame; | ||||
| class RenderView; | ||||
| }  // namespace content | ||||
|  | ||||
| namespace mojo { | ||||
| @@ -63,7 +62,7 @@ class CefRenderManager : public cef::mojom::RenderManager { | ||||
|   void ExposeInterfacesToBrowser(mojo::BinderMap* binders); | ||||
|  | ||||
|   // Returns the browser associated with the specified RenderView. | ||||
|   CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view); | ||||
|   CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view); | ||||
|  | ||||
|   // Returns the browser associated with the specified main WebFrame. | ||||
|   CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame(blink::WebFrame* frame); | ||||
| @@ -95,7 +94,7 @@ class CefRenderManager : public cef::mojom::RenderManager { | ||||
|   // Maybe create a new browser object, return the existing one, or return | ||||
|   // nullptr for guest views. | ||||
|   CefRefPtr<CefBrowserImpl> MaybeCreateBrowser( | ||||
|       content::RenderView* render_view, | ||||
|       blink::WebView* web_view, | ||||
|       content::RenderFrame* render_frame, | ||||
|       bool* browser_created, | ||||
|       absl::optional<bool>* is_windowless); | ||||
| @@ -104,18 +103,17 @@ class CefRenderManager : public cef::mojom::RenderManager { | ||||
|   void OnBrowserDestroyed(CefBrowserImpl* browser); | ||||
|  | ||||
|   // Returns the guest view associated with the specified RenderView if any. | ||||
|   CefGuestView* GetGuestViewForView(content::RenderView* view); | ||||
|   CefGuestView* GetGuestViewForView(blink::WebView* view); | ||||
|  | ||||
|   // Called from CefGuestView::OnDestruct(). | ||||
|   void OnGuestViewDestroyed(CefGuestView* guest_view); | ||||
|  | ||||
|   // Map of RenderView pointers to CefBrowserImpl references. | ||||
|   using BrowserMap = std::map<content::RenderView*, CefRefPtr<CefBrowserImpl>>; | ||||
|   using BrowserMap = std::map<blink::WebView*, CefRefPtr<CefBrowserImpl>>; | ||||
|   BrowserMap browsers_; | ||||
|  | ||||
|   // Map of RenderView poiners to CefGuestView implementations. | ||||
|   using GuestViewMap = | ||||
|       std::map<content::RenderView*, std::unique_ptr<CefGuestView>>; | ||||
|   using GuestViewMap = std::map<blink::WebView*, std::unique_ptr<CefGuestView>>; | ||||
|   GuestViewMap guest_views_; | ||||
|  | ||||
|   // Cross-origin white list entries that need to be registered with WebKit. | ||||
|   | ||||
| @@ -283,6 +283,11 @@ patches = [ | ||||
|     # https://bitbucket.org/chromiumembedded/cef/issues/2969 | ||||
|     'name': 'chrome_browser_profile_menu', | ||||
|   }, | ||||
|   { | ||||
|     # alloy: Don't require heap profiler for utility processes. | ||||
|     # Avoids a DCHECK added in https://crrev.com/c21e9f71d1f2e | ||||
|     'name': 'chrome_utility_client', | ||||
|   }, | ||||
|   { | ||||
|     # Support override of the User-Agent product component when NetworkService | ||||
|     # is enabled. | ||||
| @@ -582,14 +587,14 @@ patches = [ | ||||
|     'name': 'linux_bluetooth_1319006', | ||||
|   }, | ||||
|   { | ||||
|     # Wrap base::Value::{Dict,List}}:WriteIntoTrace() with correct #ifs. | ||||
|     # Fixes compile error with official cef_sandbox build on Windows. | ||||
|     # https://chromium-review.googlesource.com/c/chromium/src/+/3703780 | ||||
|     'name': 'base_values_3703780', | ||||
|     # Linux: Support chaining of PrintingContextLinux callbacks. | ||||
|     # https://bitbucket.org/chromiumembedded/cef/issues/3314 | ||||
|     'name': 'linux_printing_context', | ||||
|   }, | ||||
|   { | ||||
|     # Windows: Fix time_win.cc compile error with cef_sandbox. | ||||
|     # https://chromium-review.googlesource.com/c/chromium/src/+/3718022 | ||||
|     'name': 'base_time_3718022', | ||||
|     # Windows: Add LAZY_INSTANCE_INITIALIZER where necessary to fix official | ||||
|     # cef_sandbox build. | ||||
|     # https://chromium-review.googlesource.com/c/chromium/src/+/3773637 | ||||
|     'name': 'base_metrics_3773637', | ||||
|   } | ||||
| ] | ||||
|   | ||||
							
								
								
									
										13
									
								
								patch/patches/base_metrics_3773637.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								patch/patches/base_metrics_3773637.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| diff --git base/metrics/statistics_recorder.cc base/metrics/statistics_recorder.cc | ||||
| index 1f808cac46bc0..8ca2df9cfc5b9 100644 | ||||
| --- base/metrics/statistics_recorder.cc | ||||
| +++ base/metrics/statistics_recorder.cc | ||||
| @@ -32,7 +32,7 @@ bool HistogramNameLesser(const base::HistogramBase* a, | ||||
|  }  // namespace | ||||
|   | ||||
|  // static | ||||
| -LazyInstance<Lock>::Leaky StatisticsRecorder::lock_; | ||||
| +LazyInstance<Lock>::Leaky StatisticsRecorder::lock_ = LAZY_INSTANCE_INITIALIZER; | ||||
|   | ||||
|  // static | ||||
|  StatisticsRecorder* StatisticsRecorder::top_ = nullptr; | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git base/BUILD.gn base/BUILD.gn | ||||
| index 3d13052ffc51f..808aa7607c890 100644 | ||||
| index d6f08e8d0149c..8a9d77fee5029 100644 | ||||
| --- base/BUILD.gn | ||||
| +++ base/BUILD.gn | ||||
| @@ -37,6 +37,7 @@ import("//build/nocompile.gni") | ||||
| @@ -10,7 +10,7 @@ index 3d13052ffc51f..808aa7607c890 100644 | ||||
|  import("//testing/libfuzzer/fuzzer_test.gni") | ||||
|  import("//testing/test.gni") | ||||
|   | ||||
| @@ -1903,7 +1904,11 @@ mixed_component("base") { | ||||
| @@ -1910,7 +1911,11 @@ mixed_component("base") { | ||||
|      "hash/md5_constexpr_internal.h", | ||||
|      "hash/sha1.h", | ||||
|    ] | ||||
| @@ -23,7 +23,7 @@ index 3d13052ffc51f..808aa7607c890 100644 | ||||
|      sources += [ | ||||
|        "hash/md5_nacl.cc", | ||||
|        "hash/md5_nacl.h", | ||||
| @@ -2056,6 +2061,12 @@ mixed_component("base") { | ||||
| @@ -2063,6 +2068,12 @@ mixed_component("base") { | ||||
|        defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ] | ||||
|      } | ||||
|   | ||||
|   | ||||
| @@ -1,13 +0,0 @@ | ||||
| diff --git base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc | ||||
| index e36aeb64abdb7..7deae93b86f03 100644 | ||||
| --- base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc | ||||
| +++ base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc | ||||
| @@ -327,7 +327,7 @@ DWORD (*g_tick_function)(void) = &timeGetTimeWrapper; | ||||
|  // "rollover" counter. | ||||
|  union LastTimeAndRolloversState { | ||||
|    // The state as a single 32-bit opaque value. | ||||
| -  std::atomic<int32_t> as_opaque_32; | ||||
| +  std::atomic<int32_t> as_opaque_32{0}; | ||||
|   | ||||
|    // The state as usable values. | ||||
|    struct { | ||||
| @@ -1,34 +0,0 @@ | ||||
| diff --git base/values.cc base/values.cc | ||||
| index 62e55cd83704d..42857ccc2e01d 100644 | ||||
| --- base/values.cc | ||||
| +++ base/values.cc | ||||
| @@ -789,12 +789,14 @@ std::string Value::Dict::DebugString() const { | ||||
|    return DebugStringImpl(*this); | ||||
|  } | ||||
|   | ||||
| +#if BUILDFLAG(ENABLE_BASE_TRACING) | ||||
|  void Value::Dict::WriteIntoTrace(perfetto::TracedValue context) const { | ||||
|    perfetto::TracedDictionary dict = std::move(context).WriteDictionary(); | ||||
|    for (auto kv : *this) { | ||||
|      dict.Add(perfetto::DynamicString(kv.first), kv.second); | ||||
|    } | ||||
|  } | ||||
| +#endif  // BUILDFLAG(ENABLE_BASE_TRACING) | ||||
|   | ||||
|  Value::Dict::Dict( | ||||
|      const flat_map<std::string, std::unique_ptr<Value>>& storage) { | ||||
| @@ -999,12 +1001,14 @@ std::string Value::List::DebugString() const { | ||||
|    return DebugStringImpl(*this); | ||||
|  } | ||||
|   | ||||
| +#if BUILDFLAG(ENABLE_BASE_TRACING) | ||||
|  void Value::List::WriteIntoTrace(perfetto::TracedValue context) const { | ||||
|    perfetto::TracedArray array = std::move(context).WriteArray(); | ||||
|    for (const auto& item : *this) { | ||||
|      array.Append(item); | ||||
|    } | ||||
|  } | ||||
| +#endif  // BUILDFLAG(ENABLE_BASE_TRACING) | ||||
|   | ||||
|  Value::List::List(const std::vector<Value>& storage) { | ||||
|    storage_.reserve(storage.size()); | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc | ||||
| index 38d037f3b861f..b2af20324bd35 100644 | ||||
| index e06e26f80a5e0..2da99c8f97990 100644 | ||||
| --- content/browser/scheduler/browser_task_executor.cc | ||||
| +++ content/browser/scheduler/browser_task_executor.cc | ||||
| @@ -304,7 +304,7 @@ BrowserTaskExecutor::OnUserInputStart() { | ||||
| @@ -285,7 +285,7 @@ BrowserTaskExecutor::OnUserInputStart() { | ||||
|   | ||||
|  // static | ||||
|  void BrowserTaskExecutor::Shutdown() { | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc | ||||
| index 3a619b38da0c7..8bdf8ad9b1c18 100644 | ||||
| index d254be9911f39..76e28fe22d988 100644 | ||||
| --- content/browser/child_process_security_policy_impl.cc | ||||
| +++ content/browser/child_process_security_policy_impl.cc | ||||
| @@ -1751,6 +1751,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForMaybeOpaqueOrigin( | ||||
| @@ -20,35 +20,37 @@ index 3a619b38da0c7..8bdf8ad9b1c18 100644 | ||||
|   | ||||
|            // TODO(wjmaclean): We should update the ProcessLock comparison API | ||||
| diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc | ||||
| index e3e73a2353312..4f2d190c000b2 100644 | ||||
| index 8afc757188c41..d43e81d736fc4 100644 | ||||
| --- content/browser/renderer_host/navigation_request.cc | ||||
| +++ content/browser/renderer_host/navigation_request.cc | ||||
| @@ -6312,6 +6312,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost( | ||||
|      network::mojom::WebSandboxFlags sandbox_flags) { | ||||
|    // Calculate an approximation of the origin. The sandbox/csp are ignored. | ||||
|    url::Origin origin = GetOriginForURLLoaderFactoryUnchecked(this); | ||||
| +  if (!origin.GetURL().IsStandard()) { | ||||
| +    // Always return an opaque origin for non-standard URLs. Otherwise, the | ||||
| +    // below CanAccessDataForOrigin() check may fail for unregistered custom | ||||
| +    // scheme requests in CEF. | ||||
| +    return origin.DeriveNewOpaqueOrigin(); | ||||
| +  } | ||||
| @@ -6373,6 +6373,14 @@ std::pair<url::Origin, std::string> NavigationRequest:: | ||||
|      origin_and_debug_info.second += ", error"; | ||||
|    } | ||||
|   | ||||
|    // Apply sandbox flags. | ||||
|    // See https://html.spec.whatwg.org/#sandboxed-origin-browsing-context-flag | ||||
| @@ -6345,6 +6351,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() { | ||||
|    if (IsSameDocument() || IsPageActivation()) | ||||
|      return GetRenderFrameHost()->GetLastCommittedOrigin(); | ||||
|   | ||||
| +  // Calculate an approximation of the origin. The sandbox/csp are ignored. | ||||
| +  url::Origin unchecked_origin = GetOriginForURLLoaderFactoryUnchecked(this); | ||||
| +  if (!unchecked_origin.GetURL().IsStandard()) { | ||||
| +  if (!origin_and_debug_info.first.GetURL().IsStandard()) { | ||||
| +    // Always return an opaque origin for non-standard URLs. Otherwise, the | ||||
| +    // below CanAccessDataForOrigin() check may fail for unregistered custom | ||||
| +    // scheme requests in CEF. | ||||
| +    return unchecked_origin.DeriveNewOpaqueOrigin(); | ||||
| +    // CanAccessDataForOrigin() check may fail for unregistered custom scheme | ||||
| +    // requests in CEF. | ||||
| +    use_opaque_origin = true; | ||||
| +    origin_and_debug_info.second += ", cef_nonstandard"; | ||||
| +  } | ||||
| + | ||||
|    url::Origin origin = | ||||
|        GetOriginForURLLoaderFactoryWithoutFinalFrameHost(SandboxFlagsToCommit()); | ||||
|    if (use_opaque_origin) { | ||||
|      origin_and_debug_info = | ||||
|          std::make_pair(origin_and_debug_info.first.DeriveNewOpaqueOrigin(), | ||||
| @@ -6400,6 +6408,15 @@ std::pair<url::Origin, std::string> NavigationRequest:: | ||||
|        GetOriginForURLLoaderFactoryWithoutFinalFrameHostWithDebugInfo( | ||||
|            SandboxFlagsToCommit()); | ||||
|   | ||||
| +  if (origin_with_debug_info.first.opaque() && | ||||
| +      origin_with_debug_info.second.find("cef_nonstandard") != | ||||
| +          std::string::npos) { | ||||
| +    // Always return an opaque origin for non-standard URLs. Otherwise, the | ||||
| +    // below CanAccessDataForOrigin() check may fail for unregistered custom | ||||
| +    // scheme requests in CEF. | ||||
| +    return origin_with_debug_info; | ||||
| +  } | ||||
| + | ||||
|    // MHTML documents should commit as an opaque origin. They should not be able | ||||
|    // to make network request on behalf of the real origin. | ||||
|    DCHECK(!IsMhtmlOrSubframe() || origin_with_debug_info.first.opaque()); | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn | ||||
| index df8610696cc6e..ab37a46457abd 100644 | ||||
| index cab8b77aaa86b..7e88abd41bf1d 100644 | ||||
| --- build/config/compiler/BUILD.gn | ||||
| +++ build/config/compiler/BUILD.gn | ||||
| @@ -1841,8 +1841,6 @@ config("thin_archive") { | ||||
| @@ -1850,8 +1850,6 @@ config("thin_archive") { | ||||
|    # confuses lldb. | ||||
|    if ((is_posix && !is_nacl && !is_apple) || is_fuchsia) { | ||||
|      arflags = [ "-T" ] | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn | ||||
| index f4f1725e5a0ed..59ce489a635c3 100644 | ||||
| index 99b370a07c1df..85bec5adc723a 100644 | ||||
| --- chrome/browser/BUILD.gn | ||||
| +++ chrome/browser/BUILD.gn | ||||
| @@ -11,6 +11,7 @@ import("//build/config/compiler/pgo/pgo.gni") | ||||
| @@ -10,15 +10,15 @@ index f4f1725e5a0ed..59ce489a635c3 100644 | ||||
|  import("//chrome/browser/buildflags.gni") | ||||
|  import("//chrome/browser/downgrade/buildflags.gni") | ||||
|  import("//chrome/common/features.gni") | ||||
| @@ -1946,6 +1947,7 @@ static_library("browser") { | ||||
|      "//build:chromeos_buildflags", | ||||
| @@ -1959,6 +1960,7 @@ static_library("browser") { | ||||
|      "//build/config/chromebox_for_meetings:buildflags", | ||||
|      "//build/config/compiler:compiler_buildflags", | ||||
|      "//cc", | ||||
| +    "//cef/libcef/features", | ||||
|      "//chrome:extra_resources", | ||||
|      "//chrome:resources", | ||||
|      "//chrome:strings", | ||||
| @@ -2482,6 +2484,10 @@ static_library("browser") { | ||||
| @@ -2491,6 +2493,10 @@ static_library("browser") { | ||||
|      ] | ||||
|    } | ||||
|   | ||||
|   | ||||
| @@ -14,7 +14,7 @@ index d7b9aa164f161..a042abaecbce7 100644 | ||||
|        std::unique_ptr<BackgroundModeManager> manager) = 0; | ||||
|  #endif | ||||
| diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc | ||||
| index 0d4c13e21de4f..09168fad20462 100644 | ||||
| index 9cd8e9f4b8f4c..e6e6edc0465a1 100644 | ||||
| --- chrome/browser/browser_process_impl.cc | ||||
| +++ chrome/browser/browser_process_impl.cc | ||||
| @@ -1013,18 +1013,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() { | ||||
| @@ -38,7 +38,7 @@ index 0d4c13e21de4f..09168fad20462 100644 | ||||
|      std::unique_ptr<BackgroundModeManager> manager) { | ||||
|    background_mode_manager_ = std::move(manager); | ||||
| diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h | ||||
| index a3eabe6f0ef59..8fd3359c13945 100644 | ||||
| index e2b4d0a33d8ca..99f2d3e441002 100644 | ||||
| --- chrome/browser/browser_process_impl.h | ||||
| +++ chrome/browser/browser_process_impl.h | ||||
| @@ -174,8 +174,8 @@ class BrowserProcessImpl : public BrowserProcess, | ||||
|   | ||||
| @@ -13,10 +13,10 @@ index 3285e422f76c1..5f35b91897b75 100644 | ||||
|    return false; | ||||
|  } | ||||
| diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn | ||||
| index 66bece3638bf5..87e059da1256c 100644 | ||||
| index 6f504d1acba5d..0e242d1612fc2 100644 | ||||
| --- chrome/browser/ui/BUILD.gn | ||||
| +++ chrome/browser/ui/BUILD.gn | ||||
| @@ -9,6 +9,7 @@ import("//build/config/compiler/compiler.gni") | ||||
| @@ -10,6 +10,7 @@ import("//build/config/compiler/compiler.gni") | ||||
|  import("//build/config/features.gni") | ||||
|  import("//build/config/ozone.gni") | ||||
|  import("//build/config/ui.gni") | ||||
| @@ -24,7 +24,7 @@ index 66bece3638bf5..87e059da1256c 100644 | ||||
|  import("//chrome/browser/buildflags.gni") | ||||
|  import("//chrome/common/features.gni") | ||||
|  import("//chromeos/ash/components/assistant/assistant.gni") | ||||
| @@ -373,6 +374,10 @@ static_library("ui") { | ||||
| @@ -364,6 +365,10 @@ static_library("ui") { | ||||
|      "//build/config/compiler:wexit_time_destructors", | ||||
|    ] | ||||
|   | ||||
| @@ -35,15 +35,15 @@ index 66bece3638bf5..87e059da1256c 100644 | ||||
|    # Since browser and browser_ui actually depend on each other, | ||||
|    # we must omit the dependency from browser_ui to browser. | ||||
|    # However, this means browser_ui and browser should more or less | ||||
| @@ -395,6 +400,7 @@ static_library("ui") { | ||||
|      "//build:branding_buildflags", | ||||
| @@ -387,6 +392,7 @@ static_library("ui") { | ||||
|      "//build:chromeos_buildflags", | ||||
|      "//build/config/chromebox_for_meetings:buildflags", | ||||
|      "//cc/paint", | ||||
| +    "//cef/libcef/features", | ||||
|      "//chrome:extra_resources", | ||||
|      "//chrome:resources", | ||||
|      "//chrome:strings", | ||||
| @@ -5461,6 +5467,7 @@ static_library("ui") { | ||||
| @@ -5505,6 +5511,7 @@ static_library("ui") { | ||||
|    if (enable_basic_printing) { | ||||
|      deps += [ | ||||
|        "//components/printing/browser", | ||||
| @@ -52,10 +52,10 @@ index 66bece3638bf5..87e059da1256c 100644 | ||||
|      ] | ||||
|    } | ||||
| diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc | ||||
| index 63d64acc72318..21f0a0b81f996 100644 | ||||
| index ce86697e47437..4600d6a9ab701 100644 | ||||
| --- chrome/browser/ui/browser.cc | ||||
| +++ chrome/browser/ui/browser.cc | ||||
| @@ -264,6 +264,25 @@ | ||||
| @@ -262,6 +262,25 @@ | ||||
|  #include "components/captive_portal/content/captive_portal_tab_helper.h" | ||||
|  #endif | ||||
|   | ||||
| @@ -81,7 +81,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  #if BUILDFLAG(ENABLE_EXTENSIONS) | ||||
|  #include "chrome/browser/extensions/extension_browser_window_helper.h" | ||||
|  #endif | ||||
| @@ -513,6 +532,13 @@ Browser::Browser(const CreateParams& params) | ||||
| @@ -511,6 +530,13 @@ Browser::Browser(const CreateParams& params) | ||||
|   | ||||
|    tab_strip_model_->AddObserver(this); | ||||
|   | ||||
| @@ -95,7 +95,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    location_bar_model_ = std::make_unique<LocationBarModelImpl>( | ||||
|        location_bar_model_delegate_.get(), content::kMaxURLDisplayChars); | ||||
|   | ||||
| @@ -1329,6 +1355,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent( | ||||
| @@ -1322,6 +1348,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent( | ||||
|    if (exclusive_access_manager_->HandleUserKeyEvent(event)) | ||||
|      return content::KeyboardEventProcessingResult::HANDLED; | ||||
|   | ||||
| @@ -110,7 +110,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    return window()->PreHandleKeyboardEvent(event); | ||||
|  } | ||||
|   | ||||
| @@ -1336,8 +1370,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source, | ||||
| @@ -1329,8 +1363,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source, | ||||
|                                    const NativeWebKeyboardEvent& event) { | ||||
|    DevToolsWindow* devtools_window = | ||||
|        DevToolsWindow::GetInstanceForInspectedWebContents(source); | ||||
| @@ -131,7 +131,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  } | ||||
|   | ||||
|  bool Browser::TabsNeedBeforeUnloadFired() { | ||||
| @@ -1544,6 +1588,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source, | ||||
| @@ -1537,6 +1581,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source, | ||||
|      return window->OpenURLFromTab(source, params); | ||||
|    } | ||||
|   | ||||
| @@ -146,7 +146,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    NavigateParams nav_params(this, params.url, params.transition); | ||||
|    nav_params.FillNavigateParamsFromOpenURLParams(params); | ||||
|    nav_params.source_contents = source; | ||||
| @@ -1673,6 +1725,15 @@ void Browser::AddNewContents(WebContents* source, | ||||
| @@ -1666,6 +1718,15 @@ void Browser::AddNewContents(WebContents* source, | ||||
|      return; | ||||
|    } | ||||
|   | ||||
| @@ -162,7 +162,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    chrome::AddWebContents(this, source, std::move(new_contents), target_url, | ||||
|                           disposition, initial_rect, window_action); | ||||
|  } | ||||
| @@ -1691,6 +1752,8 @@ void Browser::LoadingStateChanged(WebContents* source, | ||||
| @@ -1684,6 +1745,8 @@ void Browser::LoadingStateChanged(WebContents* source, | ||||
|                                    bool should_show_loading_ui) { | ||||
|    ScheduleUIUpdate(source, content::INVALIDATE_TYPE_LOAD); | ||||
|    UpdateWindowForLoadingStateChanged(source, should_show_loading_ui); | ||||
| @@ -171,7 +171,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  } | ||||
|   | ||||
|  void Browser::CloseContents(WebContents* source) { | ||||
| @@ -1718,6 +1781,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) { | ||||
| @@ -1711,6 +1774,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) { | ||||
|  } | ||||
|   | ||||
|  void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { | ||||
| @@ -180,7 +180,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    if (!GetStatusBubble()) | ||||
|      return; | ||||
|   | ||||
| @@ -1725,6 +1790,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { | ||||
| @@ -1718,6 +1783,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) { | ||||
|      GetStatusBubble()->SetURL(url); | ||||
|  } | ||||
|   | ||||
| @@ -198,7 +198,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  void Browser::ContentsMouseEvent(WebContents* source, | ||||
|                                   bool motion, | ||||
|                                   bool exited) { | ||||
| @@ -1749,6 +1825,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) { | ||||
| @@ -1742,6 +1818,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) { | ||||
|    return false; | ||||
|  } | ||||
|   | ||||
| @@ -218,7 +218,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  void Browser::BeforeUnloadFired(WebContents* web_contents, | ||||
|                                  bool proceed, | ||||
|                                  bool* proceed_to_fire_unload) { | ||||
| @@ -1841,6 +1930,10 @@ void Browser::WebContentsCreated(WebContents* source_contents, | ||||
| @@ -1834,6 +1923,10 @@ void Browser::WebContentsCreated(WebContents* source_contents, | ||||
|   | ||||
|    // Make the tab show up in the task manager. | ||||
|    task_manager::WebContentsTags::CreateForTabContents(new_contents); | ||||
| @@ -229,7 +229,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  } | ||||
|   | ||||
|  void Browser::PortalWebContentsCreated(WebContents* portal_web_contents) { | ||||
| @@ -1885,6 +1978,8 @@ void Browser::RendererResponsive( | ||||
| @@ -1878,6 +1971,8 @@ void Browser::RendererResponsive( | ||||
|  void Browser::DidNavigatePrimaryMainFramePostCommit(WebContents* web_contents) { | ||||
|    if (web_contents == tab_strip_model_->GetActiveWebContents()) | ||||
|      UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); | ||||
| @@ -238,7 +238,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  } | ||||
|   | ||||
|  content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager( | ||||
| @@ -1945,11 +2040,15 @@ void Browser::EnterFullscreenModeForTab( | ||||
| @@ -1938,11 +2033,15 @@ void Browser::EnterFullscreenModeForTab( | ||||
|      const blink::mojom::FullscreenOptions& options) { | ||||
|    exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab( | ||||
|        requesting_frame, options.display_id); | ||||
| @@ -254,7 +254,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|  } | ||||
|   | ||||
|  bool Browser::IsFullscreenForTabOrPending(const WebContents* web_contents) { | ||||
| @@ -2127,6 +2226,15 @@ void Browser::RequestMediaAccessPermission( | ||||
| @@ -2121,6 +2220,15 @@ void Browser::RequestMediaAccessPermission( | ||||
|      content::WebContents* web_contents, | ||||
|      const content::MediaStreamRequest& request, | ||||
|      content::MediaResponseCallback callback) { | ||||
| @@ -270,7 +270,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    const extensions::Extension* extension = | ||||
|        GetExtensionForOrigin(profile_, request.security_origin); | ||||
|    MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest( | ||||
| @@ -2664,13 +2772,20 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) { | ||||
| @@ -2658,13 +2766,20 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) { | ||||
|  // Browser, Getters for UI (private): | ||||
|   | ||||
|  StatusBubble* Browser::GetStatusBubble() { | ||||
| @@ -292,7 +292,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|    return window_ ? window_->GetStatusBubble() : nullptr; | ||||
|  } | ||||
|   | ||||
| @@ -2797,6 +2912,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { | ||||
| @@ -2791,6 +2906,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) { | ||||
|      content_translate_driver->RemoveTranslationObserver(this); | ||||
|      BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this); | ||||
|    } | ||||
| @@ -302,7 +302,7 @@ index 63d64acc72318..21f0a0b81f996 100644 | ||||
|   | ||||
|  void Browser::TabDetachedAtImpl(content::WebContents* contents, | ||||
| diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h | ||||
| index 87859f4741386..1346cdb60631d 100644 | ||||
| index 64eeec32ac70f..10039229b4d4f 100644 | ||||
| --- chrome/browser/ui/browser.h | ||||
| +++ chrome/browser/ui/browser.h | ||||
| @@ -22,6 +22,7 @@ | ||||
| @@ -324,9 +324,9 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|  #if BUILDFLAG(IS_ANDROID) | ||||
|  #error This file should only be included on desktop. | ||||
|  #endif | ||||
| @@ -316,6 +321,11 @@ class Browser : public TabStripModelObserver, | ||||
|      // maximizable. | ||||
|      bool can_maximize = true; | ||||
| @@ -320,6 +325,11 @@ class Browser : public TabStripModelObserver, | ||||
|      float initial_aspect_ratio = 1.0f; | ||||
|      bool lock_aspect_ratio = false; | ||||
|   | ||||
| +#if BUILDFLAG(ENABLE_CEF) | ||||
| +    // Opaque CEF-specific configuration. Will be propagated to new Browsers. | ||||
| @@ -336,7 +336,7 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|     private: | ||||
|      friend class Browser; | ||||
|      friend class WindowSizerChromeOSTest; | ||||
| @@ -383,6 +393,13 @@ class Browser : public TabStripModelObserver, | ||||
| @@ -387,6 +397,13 @@ class Browser : public TabStripModelObserver, | ||||
|      return creation_source_ == CreationSource::kSessionRestore; | ||||
|    } | ||||
|   | ||||
| @@ -350,7 +350,7 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|    // Accessors //////////////////////////////////////////////////////////////// | ||||
|   | ||||
|    const CreateParams& create_params() const { return create_params_; } | ||||
| @@ -456,6 +473,12 @@ class Browser : public TabStripModelObserver, | ||||
| @@ -460,6 +477,12 @@ class Browser : public TabStripModelObserver, | ||||
|   | ||||
|    base::WeakPtr<Browser> AsWeakPtr(); | ||||
|   | ||||
| @@ -363,7 +363,7 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|    // Get the FindBarController for this browser, creating it if it does not | ||||
|    // yet exist. | ||||
|    FindBarController* GetFindBarController(); | ||||
| @@ -825,11 +848,19 @@ class Browser : public TabStripModelObserver, | ||||
| @@ -829,11 +852,19 @@ class Browser : public TabStripModelObserver, | ||||
|    void SetContentsBounds(content::WebContents* source, | ||||
|                           const gfx::Rect& bounds) override; | ||||
|    void UpdateTargetURL(content::WebContents* source, const GURL& url) override; | ||||
| @@ -383,7 +383,7 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|    void BeforeUnloadFired(content::WebContents* source, | ||||
|                           bool proceed, | ||||
|                           bool* proceed_to_fire_unload) override; | ||||
| @@ -1226,6 +1257,8 @@ class Browser : public TabStripModelObserver, | ||||
| @@ -1233,6 +1264,8 @@ class Browser : public TabStripModelObserver, | ||||
|    const std::string initial_workspace_; | ||||
|    bool initial_visible_on_all_workspaces_state_; | ||||
|   | ||||
| @@ -392,7 +392,7 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|    CreationSource creation_source_ = CreationSource::kUnknown; | ||||
|   | ||||
|    UnloadController unload_controller_; | ||||
| @@ -1294,6 +1327,10 @@ class Browser : public TabStripModelObserver, | ||||
| @@ -1301,6 +1334,10 @@ class Browser : public TabStripModelObserver, | ||||
|    std::unique_ptr<screen_ai::AXScreenAIAnnotator> screen_ai_annotator_; | ||||
|  #endif | ||||
|   | ||||
| @@ -404,10 +404,10 @@ index 87859f4741386..1346cdb60631d 100644 | ||||
|   | ||||
|    // The following factory is used for chrome update coalescing. | ||||
| diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc | ||||
| index 9315a947d5cb2..0d5d14ae56026 100644 | ||||
| index 3c01acfca74b0..11e298c8ed15b 100644 | ||||
| --- chrome/browser/ui/browser_navigator.cc | ||||
| +++ chrome/browser/ui/browser_navigator.cc | ||||
| @@ -518,6 +518,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents( | ||||
| @@ -563,6 +563,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents( | ||||
|    std::unique_ptr<WebContents> target_contents = | ||||
|        WebContents::Create(create_params); | ||||
|   | ||||
| @@ -422,7 +422,7 @@ index 9315a947d5cb2..0d5d14ae56026 100644 | ||||
|    // tab helpers, so the entire set of tab helpers needs to be set up | ||||
|    // immediately. | ||||
| diff --git chrome/browser/ui/browser_tabstrip.cc chrome/browser/ui/browser_tabstrip.cc | ||||
| index 9d0cf64ac7dcb..b6066163d2dc3 100644 | ||||
| index fc41ea1501856..7e6ef189bbc51 100644 | ||||
| --- chrome/browser/ui/browser_tabstrip.cc | ||||
| +++ chrome/browser/ui/browser_tabstrip.cc | ||||
| @@ -31,9 +31,13 @@ void AddTabAt(Browser* browser, | ||||
|   | ||||
| @@ -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 95a75d011f33e..cc5dc818152f8 100644 | ||||
| index 374f3735584d9..3aff0aa1c21ca 100644 | ||||
| --- chrome/browser/renderer_context_menu/render_view_context_menu.cc | ||||
| +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc | ||||
| @@ -301,6 +301,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() { | ||||
| @@ -303,6 +303,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() { | ||||
|    return callback.get(); | ||||
|  } | ||||
|   | ||||
| @@ -16,9 +16,9 @@ index 95a75d011f33e..cc5dc818152f8 100644 | ||||
|  enum class UmaEnumIdLookupType { | ||||
|    GeneralEnumId, | ||||
|    ContextSpecificEnumId, | ||||
| @@ -535,6 +542,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) { | ||||
|      return -1; | ||||
|    } | ||||
| @@ -539,6 +546,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) { | ||||
|    if (ContextMenuMatcher::IsExtensionsCustomCommandId(id)) | ||||
|      return 1; | ||||
|   | ||||
| +  // Match the MENU_ID_USER_FIRST to MENU_ID_USER_LAST range from cef_types.h. | ||||
| +  if (id >= 26500 && id <= 28500) | ||||
| @@ -27,7 +27,7 @@ index 95a75d011f33e..cc5dc818152f8 100644 | ||||
|    id = CollapseCommandsForUMA(id); | ||||
|    const auto& map = GetIdcToUmaMap(type); | ||||
|    auto it = map.find(id); | ||||
| @@ -724,6 +735,14 @@ RenderViewContextMenu::RenderViewContextMenu( | ||||
| @@ -729,6 +740,14 @@ RenderViewContextMenu::RenderViewContextMenu( | ||||
|    system_app_ = GetBrowser() && GetBrowser()->app_controller() | ||||
|                      ? GetBrowser()->app_controller()->system_app() | ||||
|                      : nullptr; | ||||
| @@ -42,7 +42,7 @@ index 95a75d011f33e..cc5dc818152f8 100644 | ||||
|  } | ||||
|   | ||||
|  RenderViewContextMenu::~RenderViewContextMenu() = default; | ||||
| @@ -1111,6 +1130,12 @@ void RenderViewContextMenu::InitMenu() { | ||||
| @@ -1130,6 +1149,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 95a75d011f33e..cc5dc818152f8 100644 | ||||
|  } | ||||
|   | ||||
|  Profile* RenderViewContextMenu::GetProfile() const { | ||||
| @@ -2902,6 +2927,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( | ||||
| @@ -2945,6 +2970,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting( | ||||
|    execute_plugin_action_callback_ = std::move(cb); | ||||
|  } | ||||
|   | ||||
| @@ -69,7 +69,7 @@ index 95a75d011f33e..cc5dc818152f8 100644 | ||||
|  RenderViewContextMenu::GetHandlersForLinkUrl() { | ||||
|    custom_handlers::ProtocolHandlerRegistry::ProtocolHandlerList handlers = | ||||
| diff --git chrome/browser/renderer_context_menu/render_view_context_menu.h chrome/browser/renderer_context_menu/render_view_context_menu.h | ||||
| index e95f46698826c..1fcca0b68f20e 100644 | ||||
| index 5447107f392f5..ac79f549fcd8a 100644 | ||||
| --- chrome/browser/renderer_context_menu/render_view_context_menu.h | ||||
| +++ chrome/browser/renderer_context_menu/render_view_context_menu.h | ||||
| @@ -125,6 +125,12 @@ class RenderViewContextMenu | ||||
| @@ -85,7 +85,7 @@ index e95f46698826c..1fcca0b68f20e 100644 | ||||
|   protected: | ||||
|    Profile* GetProfile() const; | ||||
|   | ||||
| @@ -340,6 +346,9 @@ class RenderViewContextMenu | ||||
| @@ -347,6 +353,9 @@ class RenderViewContextMenu | ||||
|    //   built. | ||||
|    bool is_protocol_submenu_valid_ = false; | ||||
|   | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/file_select_helper.cc chrome/browser/file_select_helper.cc | ||||
| index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
| index c700f62fcfed3..23b20a8008029 100644 | ||||
| --- chrome/browser/file_select_helper.cc | ||||
| +++ chrome/browser/file_select_helper.cc | ||||
| @@ -20,6 +20,7 @@ | ||||
| @@ -24,7 +24,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|    ShowFolderUploadConfirmationDialog( | ||||
|        path, | ||||
|        base::BindOnce(&FileSelectHelper::ConvertToFileChooserFileInfoList, this), | ||||
| @@ -450,7 +458,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() { | ||||
| @@ -470,7 +478,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() { | ||||
|   | ||||
|  std::unique_ptr<ui::SelectFileDialog::FileTypeInfo> | ||||
|  FileSelectHelper::GetFileTypesFromAcceptType( | ||||
| @@ -34,7 +34,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|    std::unique_ptr<ui::SelectFileDialog::FileTypeInfo> base_file_type( | ||||
|        new ui::SelectFileDialog::FileTypeInfo()); | ||||
|    if (accept_types.empty()) | ||||
| @@ -464,17 +473,24 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
| @@ -484,17 +493,24 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
|    std::vector<base::FilePath::StringType>* extensions = | ||||
|        &file_type->extensions.back(); | ||||
|   | ||||
| @@ -60,7 +60,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|      } else { | ||||
|        if (!base::IsStringASCII(accept_type)) | ||||
|          continue; | ||||
| @@ -485,10 +501,18 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
| @@ -505,10 +521,18 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
|          description_id = IDS_AUDIO_FILES; | ||||
|        else if (ascii_type == "video/*") | ||||
|          description_id = IDS_VIDEO_FILES; | ||||
| @@ -81,7 +81,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|      if (extensions->size() > old_extension_size) | ||||
|        valid_type_count++; | ||||
|    } | ||||
| @@ -513,6 +537,15 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
| @@ -533,6 +557,15 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
|          l10n_util::GetStringUTF16(description_id)); | ||||
|    } | ||||
|   | ||||
| @@ -97,7 +97,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|    return file_type; | ||||
|  } | ||||
|   | ||||
| @@ -520,7 +553,8 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
| @@ -540,7 +573,8 @@ FileSelectHelper::GetFileTypesFromAcceptType( | ||||
|  void FileSelectHelper::RunFileChooser( | ||||
|      content::RenderFrameHost* render_frame_host, | ||||
|      scoped_refptr<content::FileSelectListener> listener, | ||||
| @@ -107,7 +107,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|    Profile* profile = Profile::FromBrowserContext( | ||||
|        render_frame_host->GetProcess()->GetBrowserContext()); | ||||
|   | ||||
| @@ -539,6 +573,7 @@ void FileSelectHelper::RunFileChooser( | ||||
| @@ -559,6 +593,7 @@ void FileSelectHelper::RunFileChooser( | ||||
|    // message. | ||||
|    scoped_refptr<FileSelectHelper> file_select_helper( | ||||
|        new FileSelectHelper(profile)); | ||||
| @@ -115,7 +115,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|    file_select_helper->RunFileChooser(render_frame_host, std::move(listener), | ||||
|                                       params.Clone()); | ||||
|  } | ||||
| @@ -592,7 +627,8 @@ void FileSelectHelper::RunFileChooser( | ||||
| @@ -612,7 +647,8 @@ void FileSelectHelper::RunFileChooser( | ||||
|  } | ||||
|   | ||||
|  void FileSelectHelper::GetFileTypesInThreadPool(FileChooserParamsPtr params) { | ||||
| @@ -126,10 +126,10 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644 | ||||
|        params->need_local_path ? ui::SelectFileDialog::FileTypeInfo::NATIVE_PATH | ||||
|                                : ui::SelectFileDialog::FileTypeInfo::ANY_PATH; | ||||
| diff --git chrome/browser/file_select_helper.h chrome/browser/file_select_helper.h | ||||
| index f9d1f31b36357..122e1ce9fa962 100644 | ||||
| index 8c86774e6d279..b634ed1056b4f 100644 | ||||
| --- chrome/browser/file_select_helper.h | ||||
| +++ chrome/browser/file_select_helper.h | ||||
| @@ -59,7 +59,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
| @@ -65,7 +65,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
|    static void RunFileChooser( | ||||
|        content::RenderFrameHost* render_frame_host, | ||||
|        scoped_refptr<content::FileSelectListener> listener, | ||||
| @@ -139,7 +139,7 @@ index f9d1f31b36357..122e1ce9fa962 100644 | ||||
|   | ||||
|    // Enumerates all the files in directory. | ||||
|    static void EnumerateDirectory( | ||||
| @@ -255,7 +256,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
| @@ -266,7 +267,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
|    // |accept_types| contains only valid lowercased MIME types or file extensions | ||||
|    // beginning with a period (.). | ||||
|    static std::unique_ptr<ui::SelectFileDialog::FileTypeInfo> | ||||
| @@ -149,16 +149,16 @@ index f9d1f31b36357..122e1ce9fa962 100644 | ||||
|   | ||||
|    // Check the accept type is valid. It is expected to be all lower case with | ||||
|    // no whitespace. | ||||
| @@ -319,6 +321,9 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
|   | ||||
| @@ -331,6 +333,9 @@ class FileSelectHelper : public base::RefCountedThreadSafe< | ||||
|    // Set to false in unit tests since there is no WebContents. | ||||
|    bool abort_on_missing_web_contents_in_tests_ = true; | ||||
| + | ||||
|   | ||||
| +  // Set to true if this dialog was triggered via CEF. | ||||
| +  bool run_from_cef_ = false; | ||||
|  }; | ||||
|   | ||||
|  #endif  // CHROME_BROWSER_FILE_SELECT_HELPER_H_ | ||||
| + | ||||
|  #if BUILDFLAG(IS_CHROMEOS_ASH) | ||||
|    // DlpFilesController is responsible for checking whether any of the selected | ||||
|    // files is restricted according to the DataLeakPrevention policy. | ||||
| diff --git chrome/browser/ui/chrome_select_file_policy.h chrome/browser/ui/chrome_select_file_policy.h | ||||
| index 2cf473c35b67a..e3552bd0f17d4 100644 | ||||
| --- chrome/browser/ui/chrome_select_file_policy.h | ||||
| @@ -172,72 +172,11 @@ index 2cf473c35b67a..e3552bd0f17d4 100644 | ||||
|   private: | ||||
|    raw_ptr<content::WebContents> source_contents_; | ||||
|  }; | ||||
| diff --git printing/printing_context_linux.cc printing/printing_context_linux.cc | ||||
| index f77248cef2227..6c762941ec0a3 100644 | ||||
| --- printing/printing_context_linux.cc | ||||
| +++ printing/printing_context_linux.cc | ||||
| @@ -54,20 +54,23 @@ PrintingContextLinux::~PrintingContextLinux() { | ||||
|  } | ||||
|   | ||||
|  // static | ||||
| -void PrintingContextLinux::SetCreatePrintDialogFunction( | ||||
| -    PrintDialogGtkInterface* (*create_dialog_func)( | ||||
| -        PrintingContextLinux* context)) { | ||||
| +PrintingContextLinux::CreatePrintDialogFunctionPtr | ||||
| +PrintingContextLinux::SetCreatePrintDialogFunction( | ||||
| +    CreatePrintDialogFunctionPtr create_dialog_func) { | ||||
|    DCHECK(create_dialog_func); | ||||
| -  DCHECK(!create_dialog_func_); | ||||
| +  auto old_func = create_dialog_func_; | ||||
|    create_dialog_func_ = create_dialog_func; | ||||
| +  return old_func; | ||||
|  } | ||||
|   | ||||
|  // static | ||||
| -void PrintingContextLinux::SetPdfPaperSizeFunction( | ||||
| -    gfx::Size (*get_pdf_paper_size)(PrintingContextLinux* context)) { | ||||
| +PrintingContextLinux::PdfPaperSizeFunctionPtr | ||||
| +PrintingContextLinux::SetPdfPaperSizeFunction( | ||||
| +    PdfPaperSizeFunctionPtr get_pdf_paper_size) { | ||||
|    DCHECK(get_pdf_paper_size); | ||||
| -  DCHECK(!get_pdf_paper_size_); | ||||
| +  auto old_func = get_pdf_paper_size_; | ||||
|    get_pdf_paper_size_ = get_pdf_paper_size; | ||||
| +  return old_func; | ||||
|  } | ||||
|   | ||||
|  void PrintingContextLinux::AskUserForSettings(int max_pages, | ||||
| diff --git printing/printing_context_linux.h printing/printing_context_linux.h | ||||
| index 653170ba60e83..677df89f93e8d 100644 | ||||
| --- printing/printing_context_linux.h | ||||
| +++ printing/printing_context_linux.h | ||||
| @@ -25,12 +25,17 @@ class COMPONENT_EXPORT(PRINTING) PrintingContextLinux : public PrintingContext { | ||||
|    ~PrintingContextLinux() override; | ||||
|   | ||||
|    // Sets the function that creates the print dialog. | ||||
| -  static void SetCreatePrintDialogFunction(PrintDialogGtkInterface* ( | ||||
| -      *create_dialog_func)(PrintingContextLinux* context)); | ||||
| +  // Returns the old function, if any. | ||||
| +  using CreatePrintDialogFunctionPtr = | ||||
| +      PrintDialogGtkInterface* (*)(PrintingContextLinux* context); | ||||
| +  static CreatePrintDialogFunctionPtr SetCreatePrintDialogFunction( | ||||
| +      CreatePrintDialogFunctionPtr); | ||||
|   | ||||
|    // Sets the function that returns pdf paper size through the native API. | ||||
| -  static void SetPdfPaperSizeFunction( | ||||
| -      gfx::Size (*get_pdf_paper_size)(PrintingContextLinux* context)); | ||||
| +  // Returns the old function, if any. | ||||
| +  using PdfPaperSizeFunctionPtr = gfx::Size (*)(PrintingContextLinux* context); | ||||
| +  static PdfPaperSizeFunctionPtr SetPdfPaperSizeFunction( | ||||
| +      PdfPaperSizeFunctionPtr); | ||||
|   | ||||
|    // Initializes with predefined settings. | ||||
|    void InitWithSettings(std::unique_ptr<PrintSettings> settings); | ||||
| diff --git ui/shell_dialogs/execute_select_file_win.cc ui/shell_dialogs/execute_select_file_win.cc | ||||
| index 063d4c7c96cba..24bd0533af65b 100644 | ||||
| index 162dbc3aeb4ea..41b73a5a2f4e4 100644 | ||||
| --- ui/shell_dialogs/execute_select_file_win.cc | ||||
| +++ ui/shell_dialogs/execute_select_file_win.cc | ||||
| @@ -289,9 +289,7 @@ bool ExecuteSelectSingleFile(HWND owner, | ||||
| @@ -290,9 +290,7 @@ bool ExecuteSelectSingleFile(HWND owner, | ||||
|                               const std::vector<FileFilterSpec>& filter, | ||||
|                               int* filter_index, | ||||
|                               std::vector<base::FilePath>* paths) { | ||||
| @@ -248,7 +187,7 @@ index 063d4c7c96cba..24bd0533af65b 100644 | ||||
|                             default_path, filter, 0, filter_index, paths); | ||||
|  } | ||||
|   | ||||
| @@ -303,14 +301,13 @@ bool ExecuteSelectMultipleFile(HWND owner, | ||||
| @@ -304,14 +302,13 @@ bool ExecuteSelectMultipleFile(HWND owner, | ||||
|                                 std::vector<base::FilePath>* paths) { | ||||
|    DWORD dialog_options = FOS_ALLOWMULTISELECT; | ||||
|   | ||||
| @@ -265,7 +204,7 @@ index 063d4c7c96cba..24bd0533af65b 100644 | ||||
|                       const base::FilePath& default_path, | ||||
|                       const std::vector<FileFilterSpec>& filter, | ||||
|                       const std::wstring& def_ext, | ||||
| @@ -323,9 +320,7 @@ bool ExecuteSaveFile(HWND owner, | ||||
| @@ -324,9 +321,7 @@ bool ExecuteSaveFile(HWND owner, | ||||
|   | ||||
|    DWORD dialog_options = FOS_OVERWRITEPROMPT; | ||||
|   | ||||
| @@ -276,7 +215,7 @@ index 063d4c7c96cba..24bd0533af65b 100644 | ||||
|                             dialog_options, def_ext, filter_index, path); | ||||
|  } | ||||
|   | ||||
| @@ -390,7 +385,7 @@ void ExecuteSelectFile( | ||||
| @@ -418,7 +413,7 @@ void ExecuteSelectFile( | ||||
|        break; | ||||
|      case SelectFileDialog::SELECT_SAVEAS_FILE: { | ||||
|        base::FilePath path; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/extensions/api/chrome_extensions_api_client.cc chrome/browser/extensions/api/chrome_extensions_api_client.cc | ||||
| index 7775713ac6479..d5eef7031953d 100644 | ||||
| index 2fa911da87bcd..45c5268b60d5c 100644 | ||||
| --- chrome/browser/extensions/api/chrome_extensions_api_client.cc | ||||
| +++ chrome/browser/extensions/api/chrome_extensions_api_client.cc | ||||
| @@ -13,6 +13,7 @@ | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/permissions/chrome_permissions_client.cc chrome/browser/permissions/chrome_permissions_client.cc | ||||
| index 894a7424580ac..fa78c8dabbdd2 100644 | ||||
| index 37280287267b4..1ea055a4172c5 100644 | ||||
| --- chrome/browser/permissions/chrome_permissions_client.cc | ||||
| +++ chrome/browser/permissions/chrome_permissions_client.cc | ||||
| @@ -12,6 +12,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 894a7424580ac..fa78c8dabbdd2 100644 | ||||
|  #include "chrome/browser/bluetooth/bluetooth_chooser_context_factory.h" | ||||
|  #include "chrome/browser/content_settings/cookie_settings_factory.h" | ||||
|  #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | ||||
| @@ -212,6 +213,9 @@ permissions::PermissionManager* ChromePermissionsClient::GetPermissionManager( | ||||
| @@ -217,6 +218,9 @@ permissions::PermissionManager* ChromePermissionsClient::GetPermissionManager( | ||||
|  double ChromePermissionsClient::GetSiteEngagementScore( | ||||
|      content::BrowserContext* browser_context, | ||||
|      const GURL& origin) { | ||||
| @@ -62,7 +62,7 @@ index c2836d15eba30..0c03c2b4666a6 100644 | ||||
|  std::unique_ptr<permissions::PermissionPrompt> CreatePermissionPrompt( | ||||
|      content::WebContents* web_contents, | ||||
| diff --git chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc | ||||
| index 70e37336a5001..a2df1bd28c994 100644 | ||||
| index c92ad8917ec7f..96643e5904dc5 100644 | ||||
| --- chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc | ||||
| +++ chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc | ||||
| @@ -100,11 +100,28 @@ bool ShouldBubbleStartOpen(permissions::PermissionPrompt::Delegate* delegate) { | ||||
|   | ||||
| @@ -39,7 +39,7 @@ index 34949452d4891..43aa445b5ac3f 100644 | ||||
|   | ||||
|    base::RecordAction(base::UserMetricsAction("IncognitoMenu_Show")); | ||||
| diff --git chrome/browser/ui/views/profiles/profile_menu_view_base.cc chrome/browser/ui/views/profiles/profile_menu_view_base.cc | ||||
| index 001e5831a0512..a0a6073c64ed8 100644 | ||||
| index 1d4ea0995cbb3..64eba016377da 100644 | ||||
| --- chrome/browser/ui/views/profiles/profile_menu_view_base.cc | ||||
| +++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc | ||||
| @@ -508,7 +508,9 @@ void ProfileMenuViewBase::ShowBubble(views::Button* anchor_button, | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git chrome/browser/profiles/off_the_record_profile_impl.cc chrome/browser/profiles/off_the_record_profile_impl.cc | ||||
| index a9c0c34999035..5fbf5eb462e42 100644 | ||||
| index 342e29775ddc4..4c4630a2e74d5 100644 | ||||
| --- chrome/browser/profiles/off_the_record_profile_impl.cc | ||||
| +++ chrome/browser/profiles/off_the_record_profile_impl.cc | ||||
| @@ -634,7 +634,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile( | ||||
| @@ -646,7 +646,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile( | ||||
|  #endif | ||||
|    if (!profile) | ||||
|      profile = std::make_unique<OffTheRecordProfileImpl>(parent, otr_profile_id); | ||||
| @@ -85,10 +85,10 @@ index ca2561e412621..febd52df6c971 100644 | ||||
|    virtual bool IsSignedIn() = 0; | ||||
|   | ||||
| diff --git chrome/browser/profiles/profile_impl.cc chrome/browser/profiles/profile_impl.cc | ||||
| index 8b4be2abc03ec..8f53f25103358 100644 | ||||
| index e4af92bd90459..435fabe79453b 100644 | ||||
| --- chrome/browser/profiles/profile_impl.cc | ||||
| +++ chrome/browser/profiles/profile_impl.cc | ||||
| @@ -996,7 +996,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id, | ||||
| @@ -1002,7 +1002,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id, | ||||
|   | ||||
|    otr_profiles_[otr_profile_id] = std::move(otr_profile); | ||||
|   | ||||
| @@ -100,10 +100,10 @@ index 8b4be2abc03ec..8f53f25103358 100644 | ||||
|    return raw_otr_profile; | ||||
|  } | ||||
| diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc | ||||
| index 7d959397bcb72..188d552d065c8 100644 | ||||
| index 3952344f9cb23..6868beece799d 100644 | ||||
| --- chrome/browser/profiles/profile_manager.cc | ||||
| +++ chrome/browser/profiles/profile_manager.cc | ||||
| @@ -517,7 +517,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) | ||||
| @@ -529,7 +529,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) | ||||
|                            base::Unretained(this))); | ||||
|  #endif | ||||
|   | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn | ||||
| index ed8d055e3aaeb..ae289580cb8ff 100644 | ||||
| index 9d43a724104d8..7d8d05cb15c19 100644 | ||||
| --- chrome/browser/safe_browsing/BUILD.gn | ||||
| +++ chrome/browser/safe_browsing/BUILD.gn | ||||
| @@ -27,6 +27,7 @@ static_library("safe_browsing") { | ||||
|      "//chrome/common:constants", | ||||
| @@ -28,6 +28,7 @@ static_library("safe_browsing") { | ||||
|      "//components/browser_sync", | ||||
|      "//components/enterprise:enterprise", | ||||
|      "//components/enterprise/common:strings", | ||||
| +    "//components/gcm_driver:gcm_buildflags", | ||||
|      "//components/keyed_service/content", | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/themes/theme_service.cc chrome/browser/themes/theme_service.cc | ||||
| index 5d2c348a99b76..bfa0c77ff1aa1 100644 | ||||
| index 66acda8e42829..28970c4c98863 100644 | ||||
| --- chrome/browser/themes/theme_service.cc | ||||
| +++ chrome/browser/themes/theme_service.cc | ||||
| @@ -31,6 +31,7 @@ | ||||
| @@ -21,7 +21,7 @@ index 5d2c348a99b76..bfa0c77ff1aa1 100644 | ||||
|  #if BUILDFLAG(ENABLE_EXTENSIONS) | ||||
|  #include "base/scoped_observation.h" | ||||
|  #include "extensions/browser/extension_registry_observer.h" | ||||
| @@ -550,11 +555,19 @@ void ThemeService::Init() { | ||||
| @@ -274,11 +279,19 @@ void ThemeService::Init() { | ||||
|    // OnExtensionServiceReady. Otherwise, the ThemeObserver won't be | ||||
|    // constructed in time to observe the corresponding events. | ||||
|  #if BUILDFLAG(ENABLE_EXTENSIONS) | ||||
|   | ||||
| @@ -125,10 +125,10 @@ index 8b72897491669..546919dd70afc 100644 | ||||
|    // that the X-Frame-Options protection mechanism is set to either DENY or | ||||
|    // SAMEORIGIN. | ||||
| diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc | ||||
| index d2110910a9a31..0b7f12ca2af62 100644 | ||||
| index 8449f4bf57c16..dc68ffc03e817 100644 | ||||
| --- chrome/renderer/chrome_content_renderer_client.cc | ||||
| +++ chrome/renderer/chrome_content_renderer_client.cc | ||||
| @@ -941,6 +941,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
| @@ -949,6 +949,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
|   | ||||
|      if ((status == chrome::mojom::PluginStatus::kUnauthorized || | ||||
|           status == chrome::mojom::PluginStatus::kBlocked) && | ||||
| @@ -136,7 +136,7 @@ index d2110910a9a31..0b7f12ca2af62 100644 | ||||
|          content_settings_agent_delegate->IsPluginTemporarilyAllowed( | ||||
|              identifier)) { | ||||
|        status = chrome::mojom::PluginStatus::kAllowed; | ||||
| @@ -1142,7 +1143,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
| @@ -1150,7 +1151,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
|          render_frame->GetRemoteAssociatedInterfaces()->GetInterface( | ||||
|              plugin_auth_host.BindNewEndpointAndPassReceiver()); | ||||
|          plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); | ||||
| @@ -146,7 +146,7 @@ index d2110910a9a31..0b7f12ca2af62 100644 | ||||
|          break; | ||||
|        } | ||||
|        case chrome::mojom::PluginStatus::kBlocked: { | ||||
| @@ -1151,7 +1153,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
| @@ -1159,7 +1161,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
|              l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); | ||||
|          placeholder->AllowLoading(); | ||||
|          RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); | ||||
| @@ -156,7 +156,7 @@ index d2110910a9a31..0b7f12ca2af62 100644 | ||||
|          break; | ||||
|        } | ||||
|        case chrome::mojom::PluginStatus::kBlockedByPolicy: { | ||||
| @@ -1161,7 +1164,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
| @@ -1169,7 +1172,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
|                                         group_name)); | ||||
|          RenderThread::Get()->RecordAction( | ||||
|              UserMetricsAction("Plugin_BlockedByPolicy")); | ||||
| @@ -166,7 +166,7 @@ index d2110910a9a31..0b7f12ca2af62 100644 | ||||
|          break; | ||||
|        } | ||||
|        case chrome::mojom::PluginStatus::kBlockedNoLoading: { | ||||
| @@ -1169,7 +1173,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
| @@ -1177,7 +1181,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( | ||||
|              IDR_BLOCKED_PLUGIN_HTML, | ||||
|              l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING, | ||||
|                                         group_name)); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn | ||||
| index 80183431d6cdb..19b76bf53cbf2 100644 | ||||
| index 0ad8a99a23d47..d069db0ac130e 100644 | ||||
| --- chrome/renderer/BUILD.gn | ||||
| +++ chrome/renderer/BUILD.gn | ||||
| @@ -5,6 +5,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 80183431d6cdb..19b76bf53cbf2 100644 | ||||
|  import("//chrome/common/features.gni") | ||||
|  import("//components/nacl/features.gni") | ||||
|  import("//components/offline_pages/buildflags/features.gni") | ||||
| @@ -120,6 +121,7 @@ static_library("renderer") { | ||||
| @@ -122,6 +123,7 @@ static_library("renderer") { | ||||
|    deps = [ | ||||
|      "//base/allocator:buildflags", | ||||
|      "//build:chromeos_buildflags", | ||||
| @@ -18,7 +18,7 @@ index 80183431d6cdb..19b76bf53cbf2 100644 | ||||
|      "//chrome:resources", | ||||
|      "//chrome:strings", | ||||
|      "//chrome/common", | ||||
| @@ -210,6 +212,10 @@ static_library("renderer") { | ||||
| @@ -218,6 +220,10 @@ static_library("renderer") { | ||||
|   | ||||
|    configs += [ "//build/config/compiler:wexit_time_destructors" ] | ||||
|   | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc | ||||
| index 94641fd257de9..0aa8e14458efd 100644 | ||||
| index 46ba13e861155..ddc0829036146 100644 | ||||
| --- chrome/app/chrome_main_delegate.cc | ||||
| +++ chrome/app/chrome_main_delegate.cc | ||||
| @@ -39,6 +39,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|  #include "chrome/browser/chrome_content_browser_client.h" | ||||
|  #include "chrome/browser/chrome_resource_bundle_helper.h" | ||||
|  #include "chrome/browser/defaults.h" | ||||
| @@ -446,6 +447,8 @@ struct MainFunction { | ||||
| @@ -447,6 +448,8 @@ struct MainFunction { | ||||
|   | ||||
|  // Initializes the user data dir. Must be called before InitializeLocalState(). | ||||
|  void InitializeUserDataDir(base::CommandLine* command_line) { | ||||
| @@ -19,7 +19,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
|    // Reach out to chrome_elf for the truth on the user data directory. | ||||
|    // Note that in tests, this links to chrome_elf_test_stubs. | ||||
| @@ -766,7 +769,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() { | ||||
| @@ -765,7 +768,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() { | ||||
|    } | ||||
|   | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
| @@ -29,7 +29,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|    base::sequence_manager::internal::ThreadControllerPowerMonitor:: | ||||
|        InitializeOnMainThread(); | ||||
|    base::InitializePlatformThreadFeatures(); | ||||
| @@ -1114,6 +1119,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
| @@ -1097,6 +1102,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
|    std::string process_type = | ||||
|        command_line.GetSwitchValueASCII(switches::kProcessType); | ||||
|   | ||||
| @@ -37,7 +37,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|    crash_reporter::InitializeCrashKeys(); | ||||
|   | ||||
|  #if BUILDFLAG(IS_POSIX) | ||||
| @@ -1124,6 +1130,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
| @@ -1107,6 +1113,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
|    InitMacCrashReporter(command_line, process_type); | ||||
|    SetUpInstallerPreferences(command_line); | ||||
|  #endif | ||||
| @@ -45,7 +45,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|   | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
|    child_process_logging::Init(); | ||||
| @@ -1316,6 +1323,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
| @@ -1299,6 +1306,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
|          locale; | ||||
|    } | ||||
|   | ||||
| @@ -53,7 +53,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|  #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) | ||||
|    // Zygote needs to call InitCrashReporter() in RunZygote(). | ||||
|    if (process_type != switches::kZygoteProcess) { | ||||
| @@ -1355,6 +1363,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
| @@ -1338,6 +1346,7 @@ void ChromeMainDelegate::PreSandboxStartup() { | ||||
|    // After all the platform Breakpads have been initialized, store the command | ||||
|    // line for crash reporting. | ||||
|    crash_keys::SetCrashKeysFromCommandLine(command_line); | ||||
| @@ -61,7 +61,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|   | ||||
|  #if BUILDFLAG(ENABLE_PDF) | ||||
|    MaybePatchGdiGetFontData(); | ||||
| @@ -1440,6 +1449,7 @@ void ChromeMainDelegate::ZygoteForked() { | ||||
| @@ -1423,6 +1432,7 @@ void ChromeMainDelegate::ZygoteForked() { | ||||
|      SetUpProfilingShutdownHandler(); | ||||
|    } | ||||
|   | ||||
| @@ -69,7 +69,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|    // Needs to be called after we have chrome::DIR_USER_DATA.  BrowserMain sets | ||||
|    // this up for the browser process in a different manner. | ||||
|    const base::CommandLine* command_line = | ||||
| @@ -1456,6 +1466,7 @@ void ChromeMainDelegate::ZygoteForked() { | ||||
| @@ -1439,6 +1449,7 @@ void ChromeMainDelegate::ZygoteForked() { | ||||
|   | ||||
|    // Reset the command line for the newly spawned process. | ||||
|    crash_keys::SetCrashKeysFromCommandLine(*command_line); | ||||
| @@ -78,7 +78,7 @@ index 94641fd257de9..0aa8e14458efd 100644 | ||||
|   | ||||
|  #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) | ||||
| diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc | ||||
| index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
| index e1eb07ce9243e..e65781274781b 100644 | ||||
| --- chrome/browser/chrome_browser_main.cc | ||||
| +++ chrome/browser/chrome_browser_main.cc | ||||
| @@ -52,6 +52,7 @@ | ||||
| @@ -89,7 +89,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
|  #include "chrome/browser/about_flags.h" | ||||
|  #include "chrome/browser/active_use_util.h" | ||||
|  #include "chrome/browser/after_startup_task_utils.h" | ||||
| @@ -1600,12 +1601,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
| @@ -1611,12 +1612,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
|          browser_process_->local_state()); | ||||
|    } | ||||
|   | ||||
| @@ -104,7 +104,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
|   | ||||
|  #if BUILDFLAG(IS_ANDROID) | ||||
|    page_info::SetPageInfoClient(new ChromePageInfoClient()); | ||||
| @@ -1753,12 +1756,15 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
| @@ -1764,14 +1767,17 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
|    // This step is costly and is already measured in | ||||
|    // Startup.StartupBrowserCreator_Start. | ||||
|    // See the comment above for an explanation of |process_command_line|. | ||||
| @@ -112,7 +112,9 @@ index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
| +  // nullptr. | ||||
|    const bool started = | ||||
| +      !GetMainRunLoopInstance() || | ||||
|  #if BUILDFLAG(ENABLE_PROCESS_SINGLETON) | ||||
|        !process_command_line || | ||||
|  #endif  // BUILDFLAG(ENABLE_PROCESS_SINGLETON) | ||||
|        browser_creator_->Start(*base::CommandLine::ForCurrentProcess(), | ||||
|                                base::FilePath(), profile_info, | ||||
|                                last_opened_profiles); | ||||
| @@ -121,7 +123,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
|  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch | ||||
|  // of lacros-chrome is complete. | ||||
|  #if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) | ||||
| @@ -1786,8 +1792,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
| @@ -1799,8 +1805,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { | ||||
|   | ||||
|      // Create the RunLoop for MainMessageLoopRun() to use and transfer | ||||
|      // ownership of the browser's lifetime to the BrowserProcess. | ||||
| @@ -134,7 +136,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644 | ||||
|          GetMainRunLoopInstance()->QuitWhenIdleClosure()); | ||||
|    } | ||||
| diff --git chrome/browser/chrome_browser_main_mac.mm chrome/browser/chrome_browser_main_mac.mm | ||||
| index 341458a637857..441708d4a301f 100644 | ||||
| index 7ef669d52b306..8edc1aaeaff6a 100644 | ||||
| --- chrome/browser/chrome_browser_main_mac.mm | ||||
| +++ chrome/browser/chrome_browser_main_mac.mm | ||||
| @@ -16,6 +16,7 @@ | ||||
| @@ -145,7 +147,7 @@ index 341458a637857..441708d4a301f 100644 | ||||
|  #import "chrome/browser/app_controller_mac.h" | ||||
|  #include "chrome/browser/apps/app_shim/app_shim_listener.h" | ||||
|  #include "chrome/browser/browser_process.h" | ||||
| @@ -109,6 +110,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() { | ||||
| @@ -108,6 +109,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() { | ||||
|      } | ||||
|    } | ||||
|   | ||||
| @@ -153,7 +155,7 @@ index 341458a637857..441708d4a301f 100644 | ||||
|    // Create the app delegate. This object is intentionally leaked as a global | ||||
|    // singleton. It is accessed through -[NSApp delegate]. | ||||
|    AppController* app_controller = [[AppController alloc] init]; | ||||
| @@ -117,6 +119,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() { | ||||
| @@ -116,6 +118,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() { | ||||
|    chrome::BuildMainMenu(NSApp, app_controller, | ||||
|                          l10n_util::GetStringUTF16(IDS_PRODUCT_NAME), false); | ||||
|    [app_controller mainMenuCreated]; | ||||
| @@ -161,7 +163,7 @@ index 341458a637857..441708d4a301f 100644 | ||||
|   | ||||
|    ui::WarmScreenCapture(); | ||||
|   | ||||
| @@ -178,7 +181,9 @@ void ChromeBrowserMainPartsMac::PostProfileInit(Profile* profile, | ||||
| @@ -174,7 +177,9 @@ void ChromeBrowserMainPartsMac::PostProfileInit(Profile* profile, | ||||
|  } | ||||
|   | ||||
|  void ChromeBrowserMainPartsMac::DidEndMainMessageLoop() { | ||||
| @@ -172,7 +174,7 @@ index 341458a637857..441708d4a301f 100644 | ||||
| +#endif | ||||
|  } | ||||
| diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc | ||||
| index 16341698899d7..37abd9d118002 100644 | ||||
| index 7082a0c230557..d8e383af3195e 100644 | ||||
| --- chrome/browser/chrome_content_browser_client.cc | ||||
| +++ chrome/browser/chrome_content_browser_client.cc | ||||
| @@ -30,6 +30,7 @@ | ||||
| @@ -183,7 +185,7 @@ index 16341698899d7..37abd9d118002 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" | ||||
| @@ -1288,6 +1289,8 @@ bool IsTopChromeWebUIURL(const GURL& url) { | ||||
| @@ -1296,6 +1297,8 @@ bool IsTopChromeWebUIURL(const GURL& url) { | ||||
|  }  // namespace | ||||
|   | ||||
|  ChromeContentBrowserClient::ChromeContentBrowserClient() { | ||||
| @@ -192,7 +194,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|  #if BUILDFLAG(ENABLE_PLUGINS) | ||||
|    extra_parts_.push_back(new ChromeContentBrowserClientPluginsPart); | ||||
|  #endif | ||||
| @@ -1313,6 +1316,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() { | ||||
| @@ -1321,6 +1324,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() { | ||||
|    extra_parts_.clear(); | ||||
|  } | ||||
|   | ||||
| @@ -204,7 +206,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|  // static | ||||
|  void ChromeContentBrowserClient::RegisterLocalStatePrefs( | ||||
|      PrefRegistrySimple* registry) { | ||||
| @@ -3800,9 +3808,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( | ||||
| @@ -3842,9 +3850,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated( | ||||
|                            &search::HandleNewTabURLReverseRewrite); | ||||
|  #endif  // BUILDFLAG(IS_ANDROID) | ||||
|   | ||||
| @@ -216,7 +218,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|  } | ||||
|   | ||||
|  base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() { | ||||
| @@ -5460,7 +5470,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( | ||||
| @@ -5511,7 +5521,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated( | ||||
|        network_service); | ||||
|  } | ||||
|   | ||||
| @@ -225,7 +227,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|      content::BrowserContext* context, | ||||
|      bool in_memory, | ||||
|      const base::FilePath& relative_partition_path, | ||||
| @@ -5478,6 +5488,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( | ||||
| @@ -5529,6 +5539,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams( | ||||
|      network_context_params->user_agent = GetUserAgentBasedOnPolicy(context); | ||||
|      network_context_params->accept_language = GetApplicationLocale(); | ||||
|    } | ||||
| @@ -234,7 +236,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|  } | ||||
|   | ||||
|  std::vector<base::FilePath> | ||||
| @@ -6353,10 +6365,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted( | ||||
| @@ -6395,10 +6407,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted( | ||||
|    const auto now = base::TimeTicks::Now(); | ||||
|    const auto timeout = GetKeepaliveTimerTimeout(context); | ||||
|    keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout); | ||||
| @@ -247,7 +249,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|          FROM_HERE, keepalive_deadline_ - now, | ||||
|          base::BindOnce( | ||||
|              &ChromeContentBrowserClient::OnKeepaliveTimerFired, | ||||
| @@ -6375,7 +6387,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() { | ||||
| @@ -6417,7 +6429,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() { | ||||
|    --num_keepalive_requests_; | ||||
|    if (num_keepalive_requests_ == 0) { | ||||
|      DVLOG(1) << "Stopping the keepalive timer"; | ||||
| @@ -257,7 +259,7 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|      // This deletes the keep alive handle attached to the timer function and | ||||
|      // unblock the shutdown sequence. | ||||
|    } | ||||
| @@ -6494,7 +6507,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired( | ||||
| @@ -6542,7 +6555,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired( | ||||
|    const auto now = base::TimeTicks::Now(); | ||||
|    const auto then = keepalive_deadline_; | ||||
|    if (now < then) { | ||||
| @@ -267,10 +269,10 @@ index 16341698899d7..37abd9d118002 100644 | ||||
|          base::BindOnce(&ChromeContentBrowserClient::OnKeepaliveTimerFired, | ||||
|                         weak_factory_.GetWeakPtr(), | ||||
| diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h | ||||
| index b619ac0c32215..d8b5452113b9e 100644 | ||||
| index 0e7fd68eb1775..b2d1f9a5d9671 100644 | ||||
| --- chrome/browser/chrome_content_browser_client.h | ||||
| +++ chrome/browser/chrome_content_browser_client.h | ||||
| @@ -118,6 +118,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
| @@ -119,6 +119,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
|   | ||||
|    ~ChromeContentBrowserClient() override; | ||||
|   | ||||
| @@ -279,7 +281,7 @@ index b619ac0c32215..d8b5452113b9e 100644 | ||||
|    // TODO(https://crbug.com/787567): This file is about calls from content/ out | ||||
|    // to chrome/ to get values or notify about events, but both of these | ||||
|    // functions are from chrome/ to chrome/ and don't involve content/ at all. | ||||
| @@ -567,7 +569,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
| @@ -579,7 +581,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
|        override; | ||||
|    void OnNetworkServiceCreated( | ||||
|        network::mojom::NetworkService* network_service) override; | ||||
| @@ -288,7 +290,7 @@ index b619ac0c32215..d8b5452113b9e 100644 | ||||
|        content::BrowserContext* context, | ||||
|        bool in_memory, | ||||
|        const base::FilePath& relative_partition_path, | ||||
| @@ -909,7 +911,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
| @@ -928,7 +930,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { | ||||
|   | ||||
|  #if !BUILDFLAG(IS_ANDROID) | ||||
|    uint64_t num_keepalive_requests_ = 0; | ||||
| @@ -298,7 +300,7 @@ index b619ac0c32215..d8b5452113b9e 100644 | ||||
|  #endif | ||||
|   | ||||
| diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc | ||||
| index a748644cef16f..7ec056730fb70 100644 | ||||
| index 346d0636aad58..969f6e42371fa 100644 | ||||
| --- chrome/browser/prefs/browser_prefs.cc | ||||
| +++ chrome/browser/prefs/browser_prefs.cc | ||||
| @@ -11,6 +11,7 @@ | ||||
| @@ -309,7 +311,7 @@ index a748644cef16f..7ec056730fb70 100644 | ||||
|  #include "chrome/browser/about_flags.h" | ||||
|  #include "chrome/browser/accessibility/accessibility_labels_service.h" | ||||
|  #include "chrome/browser/accessibility/accessibility_ui.h" | ||||
| @@ -164,6 +165,10 @@ | ||||
| @@ -166,6 +167,10 @@ | ||||
|  #include "chrome/browser/background/background_mode_manager.h" | ||||
|  #endif | ||||
|   | ||||
| @@ -320,7 +322,7 @@ index a748644cef16f..7ec056730fb70 100644 | ||||
|  #if BUILDFLAG(ENABLE_EXTENSIONS) | ||||
|  #include "chrome/browser/accessibility/animation_policy_prefs.h" | ||||
|  #include "chrome/browser/apps/platform_apps/shortcut_manager.h" | ||||
| @@ -1333,6 +1338,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, | ||||
| @@ -1351,6 +1356,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, | ||||
|    SessionDataService::RegisterProfilePrefs(registry); | ||||
|  #endif | ||||
|   | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc | ||||
| index c582ceb80e929..f121e3084389c 100644 | ||||
| index 4013ab3ce380b..3ea8492f4c977 100644 | ||||
| --- chrome/browser/ui/browser_command_controller.cc | ||||
| +++ chrome/browser/ui/browser_command_controller.cc | ||||
| @@ -414,8 +414,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( | ||||
| @@ -415,8 +415,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( | ||||
|    // CommandUpdaterDelegate and CommandUpdater declare this function so we | ||||
|    // choose to not implement CommandUpdaterDelegate inside this class and | ||||
|    // therefore command_updater_ doesn't have the delegate set). | ||||
| @@ -14,7 +14,7 @@ index c582ceb80e929..f121e3084389c 100644 | ||||
|   | ||||
|    // No commands are enabled if there is not yet any selected tab. | ||||
|    // TODO(pkasting): It seems like we should not need this, because either | ||||
| @@ -430,6 +432,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( | ||||
| @@ -431,6 +433,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition( | ||||
|    DCHECK(command_updater_.IsCommandEnabled(id)) | ||||
|        << "Invalid/disabled command " << id; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ index c582ceb80e929..f121e3084389c 100644 | ||||
|    // The order of commands in this switch statement must match the function | ||||
|    // declaration order in browser.h! | ||||
|    switch (id) { | ||||
| @@ -1067,11 +1076,13 @@ void BrowserCommandController::TabRestoreServiceLoaded( | ||||
| @@ -1076,11 +1085,13 @@ void BrowserCommandController::TabRestoreServiceLoaded( | ||||
|  // BrowserCommandController, private: | ||||
|   | ||||
|  bool BrowserCommandController::IsShowingMainUI() { | ||||
| @@ -45,7 +45,7 @@ index c582ceb80e929..f121e3084389c 100644 | ||||
|   | ||||
|  bool BrowserCommandController::IsWebAppOrCustomTab() const { | ||||
| diff --git chrome/browser/ui/views/frame/browser_frame.cc chrome/browser/ui/views/frame/browser_frame.cc | ||||
| index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
| index 95d3053a5af11..b726ea28700de 100644 | ||||
| --- chrome/browser/ui/views/frame/browser_frame.cc | ||||
| +++ chrome/browser/ui/views/frame/browser_frame.cc | ||||
| @@ -74,15 +74,23 @@ bool IsUsingGtkTheme(Profile* profile) { | ||||
| @@ -74,7 +74,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|  } | ||||
|   | ||||
|  BrowserFrame::~BrowserFrame() {} | ||||
| @@ -152,6 +160,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion( | ||||
| @@ -154,6 +162,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion( | ||||
|  } | ||||
|   | ||||
|  int BrowserFrame::GetTopInset() const { | ||||
| @@ -87,7 +87,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|    return browser_frame_view_->GetTopInset(false); | ||||
|  } | ||||
|   | ||||
| @@ -181,20 +195,30 @@ bool BrowserFrame::ShouldDrawFrameHeader() const { | ||||
| @@ -183,20 +197,30 @@ bool BrowserFrame::ShouldDrawFrameHeader() const { | ||||
|   | ||||
|  void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds, | ||||
|                                        ui::WindowShowState* show_state) const { | ||||
| @@ -118,7 +118,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|    browser_frame_view_->OnBrowserViewInitViewsComplete(); | ||||
|  } | ||||
|   | ||||
| @@ -255,6 +279,8 @@ const ui::ThemeProvider* BrowserFrame::GetThemeProvider() const { | ||||
| @@ -257,6 +281,8 @@ const ui::ThemeProvider* BrowserFrame::GetThemeProvider() const { | ||||
|   | ||||
|  ui::ColorProviderManager::ThemeInitializerSupplier* | ||||
|  BrowserFrame::GetCustomTheme() const { | ||||
| @@ -127,7 +127,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|    Browser* browser = browser_view_->browser(); | ||||
|    // If this is an incognito profile, there should never be a custom theme. | ||||
|    if (browser->profile()->IsIncognitoProfile()) | ||||
| @@ -272,6 +298,8 @@ BrowserFrame::GetCustomTheme() const { | ||||
| @@ -274,6 +300,8 @@ BrowserFrame::GetCustomTheme() const { | ||||
|  } | ||||
|   | ||||
|  void BrowserFrame::OnNativeWidgetWorkspaceChanged() { | ||||
| @@ -136,16 +136,16 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|    chrome::SaveWindowWorkspace(browser_view_->browser(), GetWorkspace()); | ||||
|    chrome::SaveWindowVisibleOnAllWorkspaces(browser_view_->browser(), | ||||
|                                             IsVisibleOnAllWorkspaces()); | ||||
| @@ -361,6 +389,8 @@ void BrowserFrame::SetTabDragKind(TabDragKind tab_drag_kind) { | ||||
| @@ -363,6 +391,8 @@ void BrowserFrame::SetTabDragKind(TabDragKind tab_drag_kind) { | ||||
|   | ||||
|  ui::ColorProviderManager::Key BrowserFrame::GetColorProviderKey() const { | ||||
|    auto key = Widget::GetColorProviderKey(); | ||||
| +  if (!browser_view_) | ||||
| +    return key; | ||||
|    auto* app_controller = browser_view_->browser()->app_controller(); | ||||
|    key.app_controller = | ||||
|        app_controller ? app_controller->get_weak_ref() : nullptr; | ||||
| @@ -391,7 +421,8 @@ void BrowserFrame::SelectNativeTheme() { | ||||
|    key.frame_type = UseCustomFrame() | ||||
|                         ? ui::ColorProviderManager::FrameType::kChromium | ||||
|                         : ui::ColorProviderManager::FrameType::kNative; | ||||
| @@ -395,7 +425,8 @@ void BrowserFrame::SelectNativeTheme() { | ||||
|    // Select between regular, dark and GTK theme. | ||||
|    ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi(); | ||||
|   | ||||
| @@ -155,7 +155,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644 | ||||
|      // No matter if we are using the default theme or not we always use the dark | ||||
|      // ui instance. | ||||
|      SetNativeTheme(ui::NativeTheme::GetInstanceForDarkUI()); | ||||
| @@ -404,7 +435,8 @@ void BrowserFrame::SelectNativeTheme() { | ||||
| @@ -408,7 +439,8 @@ void BrowserFrame::SelectNativeTheme() { | ||||
|    // display_override so the web contents can blend with the overlay by using | ||||
|    // the developer-provided theme color for a better experience. Context: | ||||
|    // https://crbug.com/1219073. | ||||
| @@ -180,10 +180,10 @@ index 9bd586697dece..80ef1f08cb463 100644 | ||||
|    BrowserFrame(const BrowserFrame&) = delete; | ||||
|    BrowserFrame& operator=(const BrowserFrame&) = delete; | ||||
| diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc | ||||
| index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
| index a6f5515c7259d..51da31a2afe91 100644 | ||||
| --- chrome/browser/ui/views/frame/browser_view.cc | ||||
| +++ chrome/browser/ui/views/frame/browser_view.cc | ||||
| @@ -301,11 +301,10 @@ using content::NativeWebKeyboardEvent; | ||||
| @@ -302,11 +302,10 @@ using content::NativeWebKeyboardEvent; | ||||
|  using content::WebContents; | ||||
|  using web_modal::WebContentsModalDialogHost; | ||||
|   | ||||
| @@ -198,7 +198,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|   | ||||
|  #if BUILDFLAG(IS_CHROMEOS_ASH) | ||||
|  // UMA histograms that record animation smoothness for tab loading animation. | ||||
| @@ -797,11 +796,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver { | ||||
| @@ -793,11 +792,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver { | ||||
|  /////////////////////////////////////////////////////////////////////////////// | ||||
|  // BrowserView, public: | ||||
|   | ||||
| @@ -222,7 +222,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    SetShowIcon( | ||||
|        ::ShouldShowWindowIcon(browser_.get(), AppUsesWindowControlsOverlay())); | ||||
|   | ||||
| @@ -843,7 +853,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser) | ||||
| @@ -839,7 +849,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser) | ||||
|    } | ||||
|   | ||||
|    browser_->tab_strip_model()->AddObserver(this); | ||||
| @@ -230,7 +230,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|   | ||||
|    // Top container holds tab strip region and toolbar and lives at the front of | ||||
|    // the view hierarchy. | ||||
| @@ -886,8 +895,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser) | ||||
| @@ -882,8 +891,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser) | ||||
|    contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>( | ||||
|        devtools_web_view_, contents_web_view_)); | ||||
|   | ||||
| @@ -248,7 +248,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|   | ||||
|    contents_separator_ = | ||||
|        top_container_->AddChildView(std::make_unique<ContentsSeparator>()); | ||||
| @@ -1780,6 +1796,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const { | ||||
| @@ -1785,6 +1801,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const { | ||||
|    if (immersive_mode_controller_->IsEnabled()) | ||||
|      return false; | ||||
|   | ||||
| @@ -257,7 +257,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    return frame_->GetFrameView()->ShouldHideTopUIForFullscreen(); | ||||
|  } | ||||
|   | ||||
| @@ -2993,7 +3011,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const { | ||||
| @@ -3037,7 +3055,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const { | ||||
|  } | ||||
|   | ||||
|  void BrowserView::ReparentTopContainerForEndOfImmersive() { | ||||
| @@ -267,7 +267,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    top_container()->DestroyLayer(); | ||||
|    AddChildViewAt(top_container(), 0); | ||||
|    EnsureFocusOrder(); | ||||
| @@ -3530,8 +3549,10 @@ void BrowserView::Layout() { | ||||
| @@ -3549,8 +3568,10 @@ void BrowserView::Layout() { | ||||
|   | ||||
|    // TODO(jamescook): Why was this in the middle of layout code? | ||||
|    toolbar_->location_bar()->omnibox_view()->SetFocusBehavior( | ||||
| @@ -280,7 +280,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|   | ||||
|    // Some of the situations when the BrowserView is laid out are: | ||||
|    // - Enter/exit immersive fullscreen mode. | ||||
| @@ -3597,6 +3618,11 @@ void BrowserView::AddedToWidget() { | ||||
| @@ -3616,6 +3637,11 @@ void BrowserView::AddedToWidget() { | ||||
|    SetThemeProfileForWindow(GetNativeWindow(), browser_->profile()); | ||||
|  #endif | ||||
|   | ||||
| @@ -292,7 +292,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    toolbar_->Init(); | ||||
|   | ||||
|    // TODO(pbos): Manage this either inside SidePanel or the corresponding button | ||||
| @@ -3658,13 +3684,9 @@ void BrowserView::AddedToWidget() { | ||||
| @@ -3677,13 +3703,9 @@ void BrowserView::AddedToWidget() { | ||||
|   | ||||
|    EnsureFocusOrder(); | ||||
|   | ||||
| @@ -308,7 +308,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    using_native_frame_ = frame_->ShouldUseNativeFrame(); | ||||
|   | ||||
|    MaybeInitializeWebUITabStrip(); | ||||
| @@ -4072,7 +4094,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, | ||||
| @@ -4091,7 +4113,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, | ||||
|    // Undo our anti-jankiness hacks and force a re-layout. | ||||
|    in_process_fullscreen_ = false; | ||||
|    ToolbarSizeChanged(false); | ||||
| @@ -318,7 +318,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|  } | ||||
|   | ||||
|  bool BrowserView::ShouldUseImmersiveFullscreenForUrl(const GURL& url) const { | ||||
| @@ -4387,6 +4410,8 @@ Profile* BrowserView::GetProfile() { | ||||
| @@ -4406,6 +4429,8 @@ Profile* BrowserView::GetProfile() { | ||||
|  } | ||||
|   | ||||
|  void BrowserView::UpdateUIForTabFullscreen() { | ||||
| @@ -327,7 +327,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|    frame()->GetFrameView()->UpdateFullscreenTopUI(); | ||||
|  } | ||||
|   | ||||
| @@ -4409,6 +4434,8 @@ void BrowserView::HideDownloadShelf() { | ||||
| @@ -4428,6 +4453,8 @@ void BrowserView::HideDownloadShelf() { | ||||
|  } | ||||
|   | ||||
|  bool BrowserView::CanUserExitFullscreen() const { | ||||
| @@ -337,10 +337,10 @@ index 9c9b99da5b015..2b76e15ea42da 100644 | ||||
|  } | ||||
|   | ||||
| diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h | ||||
| index f4b503d7be34d..7e1926881fae7 100644 | ||||
| index 0fad4aa723c84..077df40dc4762 100644 | ||||
| --- chrome/browser/ui/views/frame/browser_view.h | ||||
| +++ chrome/browser/ui/views/frame/browser_view.h | ||||
| @@ -124,11 +124,16 @@ class BrowserView : public BrowserWindow, | ||||
| @@ -125,11 +125,16 @@ class BrowserView : public BrowserWindow, | ||||
|                      public webapps::AppBannerManager::Observer { | ||||
|   public: | ||||
|    METADATA_HEADER(BrowserView); | ||||
| @@ -357,9 +357,9 @@ index f4b503d7be34d..7e1926881fae7 100644 | ||||
|    void set_frame(BrowserFrame* frame) { frame_ = frame; } | ||||
|    BrowserFrame* frame() const { return frame_; } | ||||
|   | ||||
| @@ -731,6 +736,12 @@ class BrowserView : public BrowserWindow, | ||||
|    void MaybeRestoreSideSearchStatePerWindow( | ||||
|        const std::map<std::string, std::string>& extra_data) override; | ||||
| @@ -742,6 +747,12 @@ class BrowserView : public BrowserWindow, | ||||
|    // aligned side panels. | ||||
|    void RightAlignedSidePanelWasClosed(); | ||||
|   | ||||
| + protected: | ||||
| +  virtual ToolbarView* OverrideCreateToolbar(Browser* browser, | ||||
| @@ -414,10 +414,10 @@ index bc047256f110a..b6bc9dfc0eee5 100644 | ||||
|   | ||||
|  ContentsWebView::~ContentsWebView() { | ||||
| diff --git chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc | ||||
| index ef5cedd707e9b..cb9ba4119f318 100644 | ||||
| index 5a7767fc35042..681171bc557ba 100644 | ||||
| --- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc | ||||
| +++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc | ||||
| @@ -551,33 +551,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup( | ||||
| @@ -552,33 +552,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup( | ||||
|  } | ||||
|   | ||||
|  bool BrowserTabStripController::IsFrameCondensed() const { | ||||
| @@ -466,10 +466,10 @@ index ef5cedd707e9b..cb9ba4119f318 100644 | ||||
|  } | ||||
|   | ||||
| diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc | ||||
| index 8499344e764b1..61bb8becc9e82 100644 | ||||
| index 55fc13d5d929d..236eaebed8d1b 100644 | ||||
| --- chrome/browser/ui/views/toolbar/toolbar_view.cc | ||||
| +++ chrome/browser/ui/views/toolbar/toolbar_view.cc | ||||
| @@ -168,12 +168,13 @@ auto& GetViewCommandMap() { | ||||
| @@ -169,12 +169,13 @@ auto& GetViewCommandMap() { | ||||
|  //////////////////////////////////////////////////////////////////////////////// | ||||
|  // ToolbarView, public: | ||||
|   | ||||
| @@ -485,7 +485,7 @@ index 8499344e764b1..61bb8becc9e82 100644 | ||||
|    SetID(VIEW_ID_TOOLBAR); | ||||
|   | ||||
|    UpgradeDetector::GetInstance()->AddObserver(this); | ||||
| @@ -208,7 +209,7 @@ void ToolbarView::Init() { | ||||
| @@ -209,7 +210,7 @@ void ToolbarView::Init() { | ||||
|  #endif | ||||
|    auto location_bar = std::make_unique<LocationBarView>( | ||||
|        browser_, browser_->profile(), browser_->command_controller(), this, | ||||
|   | ||||
							
								
								
									
										22
									
								
								patch/patches/chrome_utility_client.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								patch/patches/chrome_utility_client.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| diff --git chrome/utility/chrome_content_utility_client.cc chrome/utility/chrome_content_utility_client.cc | ||||
| index 0d7e6405b1a23..123ae4af7ec69 100644 | ||||
| --- chrome/utility/chrome_content_utility_client.cc | ||||
| +++ chrome/utility/chrome_content_utility_client.cc | ||||
| @@ -13,6 +13,7 @@ | ||||
|  #include "base/lazy_instance.h" | ||||
|  #include "base/path_service.h" | ||||
|  #include "build/build_config.h" | ||||
| +#include "cef/libcef/features/runtime.h" | ||||
|  #include "chrome/common/chrome_paths.h" | ||||
|  #include "chrome/common/profiler/thread_profiler.h" | ||||
|  #include "chrome/common/profiler/thread_profiler_configuration.h" | ||||
| @@ -70,7 +71,8 @@ void ChromeContentUtilityClient::UtilityThreadStarted() { | ||||
|        command_line->GetSwitchValueASCII(switches::kProcessType); | ||||
|    // An in-process utility thread may run in other processes, only set up | ||||
|    // collector in a utility process. | ||||
| -  if (process_type == switches::kUtilityProcess) { | ||||
| +  if (process_type == switches::kUtilityProcess && | ||||
| +      !cef::IsAlloyRuntimeEnabled()) { | ||||
|      // The HeapProfilerController should have been created in | ||||
|      // ChromeMainDelegate::PostEarlyInitialization. | ||||
|      DCHECK_NE(HeapProfilerController::GetProfilingEnabled(), | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h | ||||
| index 1407ec64d33ea..c3ceb22baed12 100644 | ||||
| index efea37465c849..340bd6b9b03ba 100644 | ||||
| --- content/browser/devtools/devtools_instrumentation.h | ||||
| +++ content/browser/devtools/devtools_instrumentation.h | ||||
| @@ -97,7 +97,7 @@ bool ApplyUserAgentMetadataOverrides( | ||||
| @@ -68,7 +68,7 @@ index 57072bf1263ae..0a93446e4d21c 100644 | ||||
|  blink::mojom::V8CacheOptions GetV8CacheOptions(); | ||||
|   | ||||
| diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn | ||||
| index 3c8c64d8d4dc9..1f4d7fb698782 100644 | ||||
| index 7a0d95725d295..99fac79e105aa 100644 | ||||
| --- third_party/blink/renderer/controller/BUILD.gn | ||||
| +++ third_party/blink/renderer/controller/BUILD.gn | ||||
| @@ -32,6 +32,7 @@ component("controller") { | ||||
|   | ||||
| @@ -12,10 +12,10 @@ index b75e19e7946b0..a92a7da426081 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 2bf604ee300d9..ded4a09961381 100644 | ||||
| index 7e8b016df5234..97196faf4c41e 100644 | ||||
| --- content/browser/loader/navigation_url_loader_impl.cc | ||||
| +++ content/browser/loader/navigation_url_loader_impl.cc | ||||
| @@ -691,6 +691,17 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest( | ||||
| @@ -718,6 +718,17 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest( | ||||
|            resource_request_->has_user_gesture, initiating_origin, | ||||
|            initiator_document_.AsRenderFrameHostIfValid(), &loader_factory); | ||||
|   | ||||
| @@ -34,19 +34,19 @@ index 2bf604ee300d9..ded4a09961381 100644 | ||||
|          factory = base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>( | ||||
|              std::move(loader_factory)); | ||||
| diff --git content/public/browser/content_browser_client.cc content/public/browser/content_browser_client.cc | ||||
| index 69bcd725d0f86..a8456b3e8a941 100644 | ||||
| index b4e2e5d8a5e96..8f90190b7c5e6 100644 | ||||
| --- content/public/browser/content_browser_client.cc | ||||
| +++ content/public/browser/content_browser_client.cc | ||||
| @@ -9,7 +9,7 @@ | ||||
|  // declarations instead of including more headers. If that is infeasible, adjust | ||||
|  // the limit. For more info, see | ||||
|  // https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md | ||||
| -#pragma clang max_tokens_here 880000 | ||||
| +// #pragma clang max_tokens_here 880000 | ||||
| -#pragma clang max_tokens_here 1050000 | ||||
| +// #pragma clang max_tokens_here 1050000 | ||||
|   | ||||
|  #include <utility> | ||||
|   | ||||
| @@ -916,7 +916,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload( | ||||
| @@ -937,7 +937,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload( | ||||
|  void ContentBrowserClient::OnNetworkServiceCreated( | ||||
|      network::mojom::NetworkService* network_service) {} | ||||
|   | ||||
| @@ -55,7 +55,7 @@ index 69bcd725d0f86..a8456b3e8a941 100644 | ||||
|      BrowserContext* context, | ||||
|      bool in_memory, | ||||
|      const base::FilePath& relative_partition_path, | ||||
| @@ -925,6 +925,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams( | ||||
| @@ -946,6 +946,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams( | ||||
|          cert_verifier_creation_params) { | ||||
|    network_context_params->user_agent = GetUserAgentBasedOnPolicy(context); | ||||
|    network_context_params->accept_language = "en-us,en"; | ||||
| @@ -64,10 +64,10 @@ index 69bcd725d0f86..a8456b3e8a941 100644 | ||||
|   | ||||
|  std::vector<base::FilePath> | ||||
| diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h | ||||
| index d0b7aed3162b8..c494e9618d9dc 100644 | ||||
| index b374d6b28aea8..6587b5edf60fa 100644 | ||||
| --- content/public/browser/content_browser_client.h | ||||
| +++ content/public/browser/content_browser_client.h | ||||
| @@ -33,6 +33,7 @@ | ||||
| @@ -34,6 +34,7 @@ | ||||
|  #include "content/public/browser/login_delegate.h" | ||||
|  #include "content/public/browser/mojo_binder_policy_map.h" | ||||
|  #include "content/public/browser/storage_partition_config.h" | ||||
| @@ -75,7 +75,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644 | ||||
|  #include "content/public/common/alternative_error_page_override_info.mojom-forward.h" | ||||
|  #include "content/public/common/page_visibility_state.h" | ||||
|  #include "content/public/common/window_container_type.mojom-forward.h" | ||||
| @@ -1690,7 +1691,7 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
| @@ -1715,7 +1716,7 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
|    // | ||||
|    // If |relative_partition_path| is the empty string, it means this needs to | ||||
|    // create the default NetworkContext for the BrowserContext. | ||||
| @@ -84,7 +84,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644 | ||||
|        BrowserContext* context, | ||||
|        bool in_memory, | ||||
|        const base::FilePath& relative_partition_path, | ||||
| @@ -1897,6 +1898,19 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
| @@ -1922,6 +1923,19 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
|        RenderFrameHost* initiator_document, | ||||
|        mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory); | ||||
|   | ||||
| @@ -104,7 +104,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644 | ||||
|    // Creates an OverlayWindow to be used for video or document | ||||
|    // Picture-in-Picture respectively. This window will house the content shown | ||||
|    // when in Picture-in-Picture mode. This will return a new OverlayWindow. | ||||
| @@ -1958,6 +1972,10 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
| @@ -1977,6 +1991,10 @@ class CONTENT_EXPORT ContentBrowserClient { | ||||
|    // Used as part of the user agent string. | ||||
|    virtual std::string GetProduct(); | ||||
|   | ||||
| @@ -141,10 +141,10 @@ index 1dfe162dc69f4..93ece5d24f60f 100644 | ||||
|    // started. | ||||
|    virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} | ||||
| diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc | ||||
| index ab74207b348f2..5cdda5796723f 100644 | ||||
| index 2f86fff71f363..2ac7ab2a9a096 100644 | ||||
| --- content/renderer/render_thread_impl.cc | ||||
| +++ content/renderer/render_thread_impl.cc | ||||
| @@ -609,6 +609,8 @@ void RenderThreadImpl::Init() { | ||||
| @@ -608,6 +608,8 @@ void RenderThreadImpl::Init() { | ||||
|        GetContentClient()->renderer()->CreateURLLoaderThrottleProvider( | ||||
|            blink::URLLoaderThrottleProviderType::kFrame); | ||||
|   | ||||
| @@ -154,10 +154,10 @@ index ab74207b348f2..5cdda5796723f 100644 | ||||
|        &RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this))); | ||||
|   | ||||
| diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc | ||||
| index 51ab896732604..8902f5d486ab9 100644 | ||||
| index a5f2807bfa3bd..0f03da05909ff 100644 | ||||
| --- content/renderer/renderer_blink_platform_impl.cc | ||||
| +++ content/renderer/renderer_blink_platform_impl.cc | ||||
| @@ -1059,6 +1059,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() { | ||||
| @@ -1053,6 +1053,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() { | ||||
|   | ||||
|  //------------------------------------------------------------------------------ | ||||
|   | ||||
| @@ -174,10 +174,10 @@ index 51ab896732604..8902f5d486ab9 100644 | ||||
|  RendererBlinkPlatformImpl::CreateWebV8ValueConverter() { | ||||
|    return std::make_unique<V8ValueConverterImpl>(); | ||||
| diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h | ||||
| index 156fb6cda9c41..17ca9be1f7e91 100644 | ||||
| index 40146f89d1d94..4aaecc4e319bf 100644 | ||||
| --- content/renderer/renderer_blink_platform_impl.h | ||||
| +++ content/renderer/renderer_blink_platform_impl.h | ||||
| @@ -243,6 +243,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { | ||||
| @@ -238,6 +238,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { | ||||
|        blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) override; | ||||
|    base::PlatformThreadId GetIOThreadId() const override; | ||||
|   | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git content/app/content_main.cc content/app/content_main.cc | ||||
| index bb2d3e9911958..7af313040906e 100644 | ||||
| index b54d534b4d408..3c3bd4a62a799 100644 | ||||
| --- content/app/content_main.cc | ||||
| +++ content/app/content_main.cc | ||||
| @@ -227,11 +227,8 @@ ContentMainParams::~ContentMainParams() = default; | ||||
| @@ -26,7 +26,7 @@ index bb2d3e9911958..7af313040906e 100644 | ||||
|   | ||||
|    // A flag to indicate whether Main() has been called before. On Android, we | ||||
|    // may re-run Main() without restarting the browser process. This flag | ||||
| @@ -326,12 +320,6 @@ RunContentProcess(ContentMainParams params, | ||||
| @@ -325,12 +319,6 @@ RunContentProcess(ContentMainParams params, | ||||
|  #endif | ||||
|   | ||||
|  #if BUILDFLAG(IS_MAC) | ||||
| @@ -39,7 +39,7 @@ index bb2d3e9911958..7af313040906e 100644 | ||||
|      InitializeMac(); | ||||
|  #endif | ||||
|   | ||||
| @@ -404,8 +392,18 @@ RunContentProcess(ContentMainParams params, | ||||
| @@ -403,8 +391,18 @@ RunContentProcess(ContentMainParams params, | ||||
|   | ||||
|    if (IsSubprocess()) | ||||
|      CommonSubprocessInit(); | ||||
| @@ -59,7 +59,7 @@ index bb2d3e9911958..7af313040906e 100644 | ||||
|    if (tracker) { | ||||
|      if (exit_code == 0) { | ||||
|        tracker->SetProcessPhaseIfEnabled( | ||||
| @@ -417,14 +415,41 @@ RunContentProcess(ContentMainParams params, | ||||
| @@ -416,14 +414,41 @@ RunContentProcess(ContentMainParams params, | ||||
|      } | ||||
|    } | ||||
|   | ||||
| @@ -105,7 +105,7 @@ index bb2d3e9911958..7af313040906e 100644 | ||||
|  } | ||||
|   | ||||
| diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc | ||||
| index 892ed9c633465..018b941845a58 100644 | ||||
| index 88e46d8d05c0b..c026c09415512 100644 | ||||
| --- content/app/content_main_runner_impl.cc | ||||
| +++ content/app/content_main_runner_impl.cc | ||||
| @@ -42,6 +42,7 @@ | ||||
| @@ -116,7 +116,7 @@ index 892ed9c633465..018b941845a58 100644 | ||||
|  #include "base/time/time.h" | ||||
|  #include "base/trace_event/trace_event.h" | ||||
|  #include "build/build_config.h" | ||||
| @@ -1218,6 +1219,12 @@ void ContentMainRunnerImpl::Shutdown() { | ||||
| @@ -1219,6 +1220,12 @@ void ContentMainRunnerImpl::Shutdown() { | ||||
|    is_shutdown_ = true; | ||||
|  } | ||||
|   | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/chrome_elf/BUILD.gn chrome/chrome_elf/BUILD.gn | ||||
| index 3fe0b9b74ae0a..38987ce169308 100644 | ||||
| index da34cf911b74d..d5c8ca11be3fc 100644 | ||||
| --- chrome/chrome_elf/BUILD.gn | ||||
| +++ chrome/chrome_elf/BUILD.gn | ||||
| @@ -7,6 +7,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644 | ||||
|  import("//chrome/process_version_rc_template.gni") | ||||
|  import("//testing/test.gni") | ||||
|   | ||||
| @@ -104,9 +105,6 @@ source_set("constants") { | ||||
| @@ -106,9 +107,6 @@ source_set("constants") { | ||||
|   | ||||
|  static_library("crash") { | ||||
|    sources = [ | ||||
| @@ -20,7 +20,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644 | ||||
|      "crash/crash_helper.cc", | ||||
|      "crash/crash_helper.h", | ||||
|    ] | ||||
| @@ -114,6 +112,7 @@ static_library("crash") { | ||||
| @@ -116,6 +114,7 @@ static_library("crash") { | ||||
|      ":hook_util", | ||||
|      "//base",  # This needs to go.  DEP of app, crash_keys, client. | ||||
|      "//base:base_static",  # pe_image | ||||
| @@ -28,7 +28,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644 | ||||
|      "//chrome/install_static:install_static_util", | ||||
|      "//components/crash/core/app", | ||||
|      "//components/crash/core/common",  # crash_keys | ||||
| @@ -121,6 +120,17 @@ static_library("crash") { | ||||
| @@ -123,6 +122,17 @@ static_library("crash") { | ||||
|      "//content/public/common:result_codes", | ||||
|      "//third_party/crashpad/crashpad/client",  # DumpWithoutCrash | ||||
|    ] | ||||
| @@ -278,7 +278,7 @@ index 9058d56e8bda7..6a62596c03a52 100644 | ||||
|          ->set_system_crash_reporter_forwarding(crashpad::TriState::kDisabled); | ||||
|    } | ||||
| diff --git components/crash/core/app/crashpad_linux.cc components/crash/core/app/crashpad_linux.cc | ||||
| index 39fb479eba509..809859ee5e597 100644 | ||||
| index 7159bea91a257..090dfcfa0d45a 100644 | ||||
| --- components/crash/core/app/crashpad_linux.cc | ||||
| +++ components/crash/core/app/crashpad_linux.cc | ||||
| @@ -23,6 +23,7 @@ | ||||
| @@ -347,9 +347,9 @@ index 39fb479eba509..809859ee5e597 100644 | ||||
| + | ||||
| +    crash_reporter_client->GetCrashOptionalArguments(&arguments); | ||||
| + | ||||
|      bool result = | ||||
|          client.StartHandler(handler_path, *database_path, metrics_path, url, | ||||
|                              annotations, arguments, false, false); | ||||
|      CHECK(client.StartHandler(handler_path, *database_path, metrics_path, url, | ||||
|                                annotations, arguments, false, false)); | ||||
|    } else { | ||||
| diff --git components/crash/core/app/crashpad_mac.mm components/crash/core/app/crashpad_mac.mm | ||||
| index dc041c43371fd..1d060ae55c586 100644 | ||||
| --- components/crash/core/app/crashpad_mac.mm | ||||
|   | ||||
| @@ -146,7 +146,7 @@ index 8ad8a2b16f648..adaede06e8b86 100644 | ||||
|    struct Data; | ||||
|   | ||||
| diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn | ||||
| index 0fe4760db7fe2..042af7247712c 100644 | ||||
| index e79f4719b3dd0..22a20aede8100 100644 | ||||
| --- third_party/crashpad/crashpad/handler/BUILD.gn | ||||
| +++ third_party/crashpad/crashpad/handler/BUILD.gn | ||||
| @@ -12,6 +12,7 @@ | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc | ||||
| index acd60381a6294..f9be70d2da75f 100644 | ||||
| index fd99a0b94d9ef..2be6208db60ba 100644 | ||||
| --- components/embedder_support/user_agent_utils.cc | ||||
| +++ components/embedder_support/user_agent_utils.cc | ||||
| @@ -15,6 +15,7 @@ | ||||
|   | ||||
| @@ -60,11 +60,11 @@ index 2f5f7a7645103..9ab6fc1d4a654 100644 | ||||
|    std::unique_ptr<StreamContainer> stream_container( | ||||
|        new StreamContainer(tab_id, embedded, handler_url, extension_id, | ||||
| diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc | ||||
| index 70279e6b632ad..7d6b662e51957 100644 | ||||
| index 04b9beb8c3fc2..7e4d3e31522c0 100644 | ||||
| --- extensions/browser/extension_host.cc | ||||
| +++ extensions/browser/extension_host.cc | ||||
| @@ -58,11 +58,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, | ||||
|    DCHECK(host_type == mojom::ViewType::kExtensionBackgroundPage || | ||||
| @@ -59,11 +59,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, | ||||
|           host_type == mojom::ViewType::kOffscreenDocument || | ||||
|           host_type == mojom::ViewType::kExtensionDialog || | ||||
|           host_type == mojom::ViewType::kExtensionPopup); | ||||
| -  host_contents_ = WebContents::Create( | ||||
| @@ -79,7 +79,7 @@ index 70279e6b632ad..7d6b662e51957 100644 | ||||
|    main_frame_host_ = host_contents_->GetPrimaryMainFrame(); | ||||
|   | ||||
|    // Listen for when an extension is unloaded from the same profile, as it may | ||||
| @@ -77,6 +78,44 @@ ExtensionHost::ExtensionHost(const Extension* extension, | ||||
| @@ -78,6 +79,44 @@ ExtensionHost::ExtensionHost(const Extension* extension, | ||||
|    ExtensionHostRegistry::Get(browser_context_)->ExtensionHostCreated(this); | ||||
|  } | ||||
|   | ||||
| @@ -108,7 +108,7 @@ index 70279e6b632ad..7d6b662e51957 100644 | ||||
| +  content::WebContentsObserver::Observe(host_contents_); | ||||
| +  SetViewType(host_contents_, host_type); | ||||
| + | ||||
| +  main_frame_host_ = host_contents_->GetMainFrame(); | ||||
| +  main_frame_host_ = host_contents_->GetPrimaryMainFrame(); | ||||
| + | ||||
| +  // Listen for when an extension is unloaded from the same profile, as it may | ||||
| +  // be the same extension that this points to. | ||||
| @@ -125,10 +125,10 @@ index 70279e6b632ad..7d6b662e51957 100644 | ||||
|    ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); | ||||
|   | ||||
| diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h | ||||
| index dd22bbc07fb52..c695ece6b1a47 100644 | ||||
| index 35f6735afb66a..40401322681cf 100644 | ||||
| --- extensions/browser/extension_host.h | ||||
| +++ extensions/browser/extension_host.h | ||||
| @@ -53,6 +53,12 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
| @@ -56,6 +56,12 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
|                  content::SiteInstance* site_instance, | ||||
|                  const GURL& url, | ||||
|                  mojom::ViewType host_type); | ||||
| @@ -141,7 +141,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644 | ||||
|   | ||||
|    ExtensionHost(const ExtensionHost&) = delete; | ||||
|    ExtensionHost& operator=(const ExtensionHost&) = delete; | ||||
| @@ -63,7 +69,7 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
| @@ -66,7 +72,7 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
|    const Extension* extension() const { return extension_; } | ||||
|   | ||||
|    const std::string& extension_id() const { return extension_id_; } | ||||
| @@ -150,7 +150,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644 | ||||
|    content::RenderFrameHost* main_frame_host() const { return main_frame_host_; } | ||||
|    content::RenderProcessHost* render_process_host() const; | ||||
|    bool has_loaded_once() const { return has_loaded_once_; } | ||||
| @@ -188,7 +194,8 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
| @@ -202,7 +208,8 @@ class ExtensionHost : public DeferredStartRenderHost, | ||||
|    raw_ptr<content::BrowserContext> browser_context_; | ||||
|   | ||||
|    // The host for our HTML content. | ||||
| @@ -161,7 +161,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644 | ||||
|    // A pointer to the current or speculative main frame in `host_contents_`. We | ||||
|    // can't access this frame through the `host_contents_` directly as it does | ||||
| diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h | ||||
| index f87cf6d3bb4b6..bd2f3b576b004 100644 | ||||
| index b060c134279ed..070258e8fbc08 100644 | ||||
| --- extensions/browser/extensions_browser_client.h | ||||
| +++ extensions/browser/extensions_browser_client.h | ||||
| @@ -31,6 +31,7 @@ | ||||
| @@ -180,7 +180,7 @@ index f87cf6d3bb4b6..bd2f3b576b004 100644 | ||||
|  class ExtensionHostDelegate; | ||||
|  class ExtensionSet; | ||||
|  class ExtensionSystem; | ||||
| @@ -219,6 +221,14 @@ class ExtensionsBrowserClient { | ||||
| @@ -220,6 +222,14 @@ class ExtensionsBrowserClient { | ||||
|    virtual std::unique_ptr<ExtensionHostDelegate> | ||||
|    CreateExtensionHostDelegate() = 0; | ||||
|   | ||||
| @@ -196,10 +196,10 @@ index f87cf6d3bb4b6..bd2f3b576b004 100644 | ||||
|    // once each time the extensions system is loaded per browser_context. The | ||||
|    // implementation may wish to use the BrowserContext to record the current | ||||
| diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc | ||||
| index 4d09fbd93cd97..e6bc21a1adf49 100644 | ||||
| index edf33b204d669..694bff911b4b9 100644 | ||||
| --- extensions/browser/process_manager.cc | ||||
| +++ extensions/browser/process_manager.cc | ||||
| @@ -393,9 +393,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, | ||||
| @@ -379,9 +379,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, | ||||
|      return true;  // TODO(kalman): return false here? It might break things... | ||||
|   | ||||
|    DVLOG(1) << "CreateBackgroundHost " << extension->id(); | ||||
| @@ -215,6 +215,6 @@ index 4d09fbd93cd97..e6bc21a1adf49 100644 | ||||
|        new ExtensionHost(extension, GetSiteInstanceForURL(url).get(), url, | ||||
|                          mojom::ViewType::kExtensionBackgroundPage); | ||||
| +  } | ||||
|    host->CreateRendererSoon(); | ||||
|    OnBackgroundHostCreated(host); | ||||
|    return true; | ||||
|    host->SetCloseHandler( | ||||
|        base::BindOnce(&ProcessManager::HandleCloseExtensionHost, | ||||
|                       weak_ptr_factory_.GetWeakPtr())); | ||||
|   | ||||
| @@ -12,7 +12,7 @@ index 7d538f812d72e..9eec79395aeec 100644 | ||||
|        # https://crbug.com/474506. | ||||
|        "//clank/java/BUILD.gn", | ||||
| diff --git BUILD.gn BUILD.gn | ||||
| index b9b09ede17b56..b687818eb9287 100644 | ||||
| index d62cd5190001b..b99513183df7a 100644 | ||||
| --- BUILD.gn | ||||
| +++ BUILD.gn | ||||
| @@ -17,6 +17,7 @@ import("//build/config/sanitizers/sanitizers.gni") | ||||
| @@ -21,10 +21,10 @@ index b9b09ede17b56..b687818eb9287 100644 | ||||
|  import("//build/util/generate_wrapper.gni") | ||||
| +import("//cef/libcef/features/features.gni") | ||||
|  import("//chrome/browser/buildflags.gni") | ||||
|  import("//chrome/browser/media/router/features.gni") | ||||
|  import("//components/nacl/features.gni") | ||||
| @@ -117,6 +118,10 @@ group("gn_all") { | ||||
|      ] | ||||
|  import("//device/vr/buildflags/buildflags.gni") | ||||
| @@ -110,6 +111,10 @@ group("gn_all") { | ||||
|      deps += [ "//third_party/abseil-cpp:absl_tests" ] | ||||
|    } | ||||
|   | ||||
| +  if (enable_cef) { | ||||
| @@ -80,17 +80,17 @@ index 839144aa1e9bd..29c8ab32398a7 100644 | ||||
| +_OBJC_METACLASS_$_UnderlayOpenGLHostingWindow | ||||
| + | ||||
| diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni | ||||
| index 040475bee62f4..47d7ca4ea32da 100644 | ||||
| index ba559fa404ca3..4aafa07ba5ba7 100644 | ||||
| --- chrome/chrome_paks.gni | ||||
| +++ chrome/chrome_paks.gni | ||||
| @@ -5,6 +5,7 @@ | ||||
|  import("//ash/ambient/resources/resources.gni") | ||||
| @@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni") | ||||
|  import("//build/config/chromebox_for_meetings/buildflags.gni") | ||||
|  import("//build/config/chromeos/ui_mode.gni") | ||||
|  import("//build/config/locales.gni") | ||||
| +import("//cef/libcef/features/features.gni") | ||||
|  import("//chrome/browser/buildflags.gni") | ||||
|  import("//chrome/common/features.gni") | ||||
|  import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni") | ||||
|  import("//extensions/buildflags/buildflags.gni") | ||||
| @@ -74,6 +75,10 @@ template("chrome_repack_percent") { | ||||
|          "//ui/chromeos/resources", | ||||
|        ] | ||||
| @@ -126,7 +126,7 @@ index 936a5422f92fa..5743f4a03aa4f 100644 | ||||
|        source_patterns += | ||||
|            [ "${root_gen_dir}/extensions/strings/extensions_strings_" ] | ||||
| diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn | ||||
| index 51fa0d7f4cf77..2ede68e9377eb 100644 | ||||
| index d7ac881770b38..e25708701148a 100644 | ||||
| --- chrome/installer/mini_installer/BUILD.gn | ||||
| +++ chrome/installer/mini_installer/BUILD.gn | ||||
| @@ -6,6 +6,7 @@ import("//build/config/compiler/compiler.gni") | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec | ||||
| index 70a1901dc65dc..06656ee356527 100644 | ||||
| index 1c50dbb9503e7..a181ad353e81a 100644 | ||||
| --- tools/gritsettings/resource_ids.spec | ||||
| +++ tools/gritsettings/resource_ids.spec | ||||
| @@ -958,6 +958,15 @@ | ||||
| @@ -970,6 +970,15 @@ | ||||
|    # END "everything else" section. | ||||
|    # Everything but chrome/, components/, content/, and ios/ | ||||
|   | ||||
|   | ||||
							
								
								
									
										31
									
								
								patch/patches/linux_printing_context.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								patch/patches/linux_printing_context.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| diff --git printing/printing_context_linux.cc printing/printing_context_linux.cc | ||||
| index 805156b4d7b70..2fbf7fecef01f 100644 | ||||
| --- printing/printing_context_linux.cc | ||||
| +++ printing/printing_context_linux.cc | ||||
| @@ -48,9 +48,11 @@ PrintingContextLinux::~PrintingContextLinux() { | ||||
|  } | ||||
|   | ||||
|  // static | ||||
| -void PrintingContextLinuxDelegate::SetInstance( | ||||
| +PrintingContextLinuxDelegate* PrintingContextLinuxDelegate::SetInstance( | ||||
|      PrintingContextLinuxDelegate* delegate) { | ||||
| +  auto old_delegate = g_delegate; | ||||
|    g_delegate = delegate; | ||||
| +  return old_delegate; | ||||
|  } | ||||
|   | ||||
|  void PrintingContextLinux::AskUserForSettings(int max_pages, | ||||
| diff --git printing/printing_context_linux.h printing/printing_context_linux.h | ||||
| index dfe49bc00adea..3faa2a3dff79d 100644 | ||||
| --- printing/printing_context_linux.h | ||||
| +++ printing/printing_context_linux.h | ||||
| @@ -27,7 +27,8 @@ class COMPONENT_EXPORT(PRINTING) PrintingContextLinuxDelegate { | ||||
|   | ||||
|    virtual gfx::Size GetPdfPaperSize(PrintingContextLinux* context) = 0; | ||||
|   | ||||
| -  static void SetInstance(PrintingContextLinuxDelegate* delegate); | ||||
| +  static PrintingContextLinuxDelegate* SetInstance( | ||||
| +      PrintingContextLinuxDelegate* delegate); | ||||
|  }; | ||||
|   | ||||
|  // PrintingContext with optional native UI for print dialog and pdf_paper_size. | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git ui/ozone/BUILD.gn ui/ozone/BUILD.gn | ||||
| index b123f6093eb5d..64e4fc0fba4b5 100644 | ||||
| index fa2c17f4e209f..91bed0fb1ad66 100644 | ||||
| --- ui/ozone/BUILD.gn | ||||
| +++ ui/ozone/BUILD.gn | ||||
| @@ -396,6 +396,8 @@ action("generate_test_support_constructor_list") { | ||||
| @@ -398,6 +398,8 @@ action("generate_test_support_constructor_list") { | ||||
|    ] | ||||
|   | ||||
|    deps = [ ":generate_ozone_platform_list" ] | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git ui/gl/init/gl_initializer_mac.cc ui/gl/init/gl_initializer_mac.cc | ||||
| index fa97713916bf8..1b644227abe74 100644 | ||||
| index bc29406755e34..e4c077621ff6b 100644 | ||||
| --- ui/gl/init/gl_initializer_mac.cc | ||||
| +++ ui/gl/init/gl_initializer_mac.cc | ||||
| @@ -47,11 +47,8 @@ bool InitializeOneOffForSandbox() { | ||||
| @@ -46,11 +46,8 @@ bool InitializeOneOffForSandbox() { | ||||
|    // GPU-related stuff is very slow without this, probably because | ||||
|    // the sandbox prevents loading graphics drivers or some such. | ||||
|    std::vector<CGLPixelFormatAttribute> attribs; | ||||
| @@ -13,6 +13,6 @@ index fa97713916bf8..1b644227abe74 100644 | ||||
| -  } | ||||
| +  // Avoid switching to the discrete GPU just for this pixel format selection. | ||||
| +  attribs.push_back(kCGLPFAAllowOfflineRenderers); | ||||
|    if (GetGLImplementation() == kGLImplementationAppleGL) { | ||||
|      attribs.push_back(kCGLPFARendererID); | ||||
|      attribs.push_back( | ||||
|    attribs.push_back(static_cast<CGLPixelFormatAttribute>(0)); | ||||
|   | ||||
|    CGLPixelFormatObj format; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git base/message_loop/message_pump_win.cc base/message_loop/message_pump_win.cc | ||||
| index d746e7aebfa9f..538b398b049cb 100644 | ||||
| index 1ed9e277cd967..6b7eed9fa8fd6 100644 | ||||
| --- base/message_loop/message_pump_win.cc | ||||
| +++ base/message_loop/message_pump_win.cc | ||||
| @@ -2,6 +2,7 @@ | ||||
| @@ -30,7 +30,7 @@ index d746e7aebfa9f..538b398b049cb 100644 | ||||
|    } | ||||
|    if (has_msg) | ||||
| diff --git base/task/current_thread.cc base/task/current_thread.cc | ||||
| index b7e9d215c2039..57816ea1c8b81 100644 | ||||
| index d3a89a8496171..2db4706f22ec8 100644 | ||||
| --- base/task/current_thread.cc | ||||
| +++ base/task/current_thread.cc | ||||
| @@ -49,6 +49,8 @@ void CurrentThread::AddDestructionObserver( | ||||
| @@ -43,11 +43,11 @@ index b7e9d215c2039..57816ea1c8b81 100644 | ||||
|    current_->RemoveDestructionObserver(destruction_observer); | ||||
|  } | ||||
| diff --git base/task/current_thread.h base/task/current_thread.h | ||||
| index 13dc0cdede8f7..4c4a85848a93a 100644 | ||||
| index 485601662485a..9e1464c33d8d4 100644 | ||||
| --- base/task/current_thread.h | ||||
| +++ base/task/current_thread.h | ||||
| @@ -131,6 +131,12 @@ class BASE_EXPORT CurrentThread { | ||||
|    // to run. There can only be one OnNextIdleCallback at a time. | ||||
| @@ -132,6 +132,12 @@ class BASE_EXPORT CurrentThread { | ||||
|    // with a null callback to clear any potentially pending callbacks. | ||||
|    void RegisterOnNextIdleCallback(OnceClosure on_next_idle_callback); | ||||
|   | ||||
| +#if BUILDFLAG(IS_WIN) | ||||
| @@ -59,7 +59,7 @@ index 13dc0cdede8f7..4c4a85848a93a 100644 | ||||
|    // Enables nested task processing in scope of an upcoming native message loop. | ||||
|    // Some unwanted message loops may occur when using common controls or printer | ||||
|    // functions. Hence, nested task processing is disabled by default to avoid | ||||
| @@ -196,6 +202,13 @@ class BASE_EXPORT CurrentThread { | ||||
| @@ -202,6 +208,13 @@ class BASE_EXPORT CurrentThread { | ||||
|    friend class web::WebTaskEnvironment; | ||||
|   | ||||
|    raw_ptr<sequence_manager::internal::SequenceManagerImpl> current_; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm | ||||
| index 8ce36eaa64a86..b90c66c1c826c 100644 | ||||
| index f927e86d6735f..14d418a70422d 100644 | ||||
| --- base/message_loop/message_pump_mac.mm | ||||
| +++ base/message_loop/message_pump_mac.mm | ||||
| @@ -748,7 +748,8 @@ void MessagePumpUIApplication::Detach() { | ||||
| @@ -807,7 +807,8 @@ void MessagePumpUIApplication::Detach() { | ||||
|  #else | ||||
|   | ||||
|  ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { | ||||
| @@ -12,7 +12,7 @@ index 8ce36eaa64a86..b90c66c1c826c 100644 | ||||
|    DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask()); | ||||
|    // Pumping events in private runloop modes is known to interact badly with | ||||
|    // app modal windows like NSAlert. | ||||
| @@ -758,7 +759,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { | ||||
| @@ -817,7 +818,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { | ||||
|  } | ||||
|   | ||||
|  ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { | ||||
|   | ||||
| @@ -12,10 +12,10 @@ index 17f203b11ce39..0a5277b686d61 100644 | ||||
|    virtual ~WebContentsView() = default; | ||||
|   | ||||
| diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc | ||||
| index aef9d1a79fcea..015206dd88756 100644 | ||||
| index 9fa230c1cd95f..fb49251a52d11 100644 | ||||
| --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc | ||||
| +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc | ||||
| @@ -224,6 +224,8 @@ void MimeHandlerViewGuest::CreateWebContents( | ||||
| @@ -225,6 +225,8 @@ void MimeHandlerViewGuest::CreateWebContents( | ||||
|    WebContents::CreateParams params(browser_context(), | ||||
|                                     guest_site_instance.get()); | ||||
|    params.guest_delegate = this; | ||||
| @@ -24,7 +24,7 @@ index aef9d1a79fcea..015206dd88756 100644 | ||||
|    // TODO(erikchen): Fix ownership semantics for guest views. | ||||
|    // https://crbug.com/832879. | ||||
|    std::move(callback).Run( | ||||
| @@ -234,6 +236,10 @@ void MimeHandlerViewGuest::CreateWebContents( | ||||
| @@ -235,6 +237,10 @@ void MimeHandlerViewGuest::CreateWebContents( | ||||
|  } | ||||
|   | ||||
|  void MimeHandlerViewGuest::DidAttachToEmbedder() { | ||||
| @@ -35,7 +35,7 @@ index aef9d1a79fcea..015206dd88756 100644 | ||||
|    DCHECK(stream_->handler_url().SchemeIs(extensions::kExtensionScheme)); | ||||
|    web_contents()->GetController().LoadURL( | ||||
|        stream_->handler_url(), content::Referrer(), | ||||
| @@ -264,6 +270,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const { | ||||
| @@ -265,6 +271,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const { | ||||
|    return true; | ||||
|  } | ||||
|   | ||||
| @@ -68,7 +68,7 @@ index ef6faf317dd41..8675c305d489c 100644 | ||||
|    bool is_embedder_fullscreen_ = false; | ||||
|    bool plugin_can_save_ = false; | ||||
| diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h | ||||
| index d97b054a8d6c7..9fd96a8f7826d 100644 | ||||
| index 3aaeab0baf51e..4f818abde1c1a 100644 | ||||
| --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h | ||||
| +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h | ||||
| @@ -7,6 +7,8 @@ | ||||
|   | ||||
| @@ -1,15 +1,14 @@ | ||||
| diff --git net/base/load_flags_list.h net/base/load_flags_list.h | ||||
| index 6466deac2671e..053ca5c7e55ae 100644 | ||||
| index 96d1a51ec1078..e8120a818b1f2 100644 | ||||
| --- net/base/load_flags_list.h | ||||
| +++ net/base/load_flags_list.h | ||||
| @@ -110,3 +110,6 @@ LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16) | ||||
|  // | ||||
|  // Cannot be used together with BYPASS_CACHE, ONLY_FROM_CACHE, or DISABLE_CACHE. | ||||
|  LOAD_FLAG(USE_SINGLE_KEYED_CACHE, 1 << 17) | ||||
| @@ -101,3 +101,6 @@ LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 15) | ||||
|  // is considered privileged, and therefore this flag must only be set from a | ||||
|  // trusted process. | ||||
|  LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16) | ||||
| + | ||||
| +// This load will not send any cookies. For CEF usage. | ||||
| +LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 18) | ||||
| \ No newline at end of file | ||||
| +LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 17) | ||||
| diff --git net/url_request/url_request_http_job.cc net/url_request/url_request_http_job.cc | ||||
| index 1975492c29ae0..0ec7ddefe932b 100644 | ||||
| --- net/url_request/url_request_http_job.cc | ||||
| @@ -25,10 +24,10 @@ index 1975492c29ae0..0ec7ddefe932b 100644 | ||||
|   | ||||
|  bool URLRequestHttpJob::IsPartitionedCookiesEnabled() const { | ||||
| diff --git services/network/public/cpp/resource_request.cc services/network/public/cpp/resource_request.cc | ||||
| index a15e3c4bed344..c665e98a1befc 100644 | ||||
| index c8e468f41930d..8ac0d37be3c93 100644 | ||||
| --- services/network/public/cpp/resource_request.cc | ||||
| +++ services/network/public/cpp/resource_request.cc | ||||
| @@ -264,7 +264,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const { | ||||
| @@ -263,7 +263,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const { | ||||
|  } | ||||
|   | ||||
|  bool ResourceRequest::SendsCookies() const { | ||||
|   | ||||
| @@ -41,10 +41,10 @@ index cc4b13a7b9c67..84f3b9ed7cf49 100644 | ||||
|   | ||||
|  }  // namespace content | ||||
| diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc | ||||
| index 18133ca758533..b7b26d5e457e3 100644 | ||||
| index 4b4a91a3fb615..4be300f14cae4 100644 | ||||
| --- content/browser/renderer_host/render_widget_host_impl.cc | ||||
| +++ content/browser/renderer_host/render_widget_host_impl.cc | ||||
| @@ -3114,6 +3114,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() { | ||||
| @@ -3123,6 +3123,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() { | ||||
|        GetProcess(), bad_message::INPUT_ROUTER_INVALID_EVENT_SOURCE); | ||||
|  } | ||||
|   | ||||
| @@ -57,10 +57,10 @@ index 18133ca758533..b7b26d5e457e3 100644 | ||||
|      const WebInputEvent& event) { | ||||
|    if ((base::FeatureList::IsEnabled( | ||||
| diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h | ||||
| index 65297e78ee11f..589fbdae61bb5 100644 | ||||
| index f63c1aa3007fa..5257801bf8aee 100644 | ||||
| --- content/browser/renderer_host/render_widget_host_impl.h | ||||
| +++ content/browser/renderer_host/render_widget_host_impl.h | ||||
| @@ -779,6 +779,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl | ||||
| @@ -781,6 +781,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl | ||||
|   | ||||
|    void ProgressFlingIfNeeded(base::TimeTicks current_time); | ||||
|    void StopFling(); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/download/download_prefs.cc chrome/browser/download/download_prefs.cc | ||||
| index 65a54420ca60e..27adcf4e827a4 100644 | ||||
| index 38132463c9216..42f67b33eed7a 100644 | ||||
| --- chrome/browser/download/download_prefs.cc | ||||
| +++ chrome/browser/download/download_prefs.cc | ||||
| @@ -24,6 +24,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 65a54420ca60e..27adcf4e827a4 100644 | ||||
|  #include "chrome/browser/download/chrome_download_manager_delegate.h" | ||||
|  #include "chrome/browser/download/download_core_service_factory.h" | ||||
|  #include "chrome/browser/download/download_core_service_impl.h" | ||||
| @@ -60,6 +61,10 @@ | ||||
| @@ -61,6 +62,10 @@ | ||||
|  #include "chrome/browser/ui/pdf/adobe_reader_info_win.h" | ||||
|  #endif | ||||
|   | ||||
| @@ -21,7 +21,7 @@ index 65a54420ca60e..27adcf4e827a4 100644 | ||||
|  using content::BrowserContext; | ||||
|  using content::BrowserThread; | ||||
|  using content::DownloadManager; | ||||
| @@ -344,6 +349,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager( | ||||
| @@ -348,6 +353,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager( | ||||
|  // static | ||||
|  DownloadPrefs* DownloadPrefs::FromBrowserContext( | ||||
|      content::BrowserContext* context) { | ||||
| @@ -46,7 +46,7 @@ index 01df55a728098..0c11458c9a5bb 100644 | ||||
|  #include "chrome/browser/printing/print_view_manager.h" | ||||
|  #include "chrome/browser/task_manager/web_contents_tags.h" | ||||
| diff --git chrome/browser/printing/print_view_manager_base.cc chrome/browser/printing/print_view_manager_base.cc | ||||
| index e665eb42fad5f..6aefc4f3f4ca6 100644 | ||||
| index 4bd871e5cadc6..835656ea87729 100644 | ||||
| --- chrome/browser/printing/print_view_manager_base.cc | ||||
| +++ chrome/browser/printing/print_view_manager_base.cc | ||||
| @@ -610,13 +610,14 @@ void PrintViewManagerBase::UpdatePrintSettings( | ||||
| @@ -96,7 +96,7 @@ index 5d1658999d5bb..d1b7b7288c946 100644 | ||||
|        $i18n{cancel} | ||||
|      </cr-button> | ||||
| diff --git chrome/browser/ui/webui/constrained_web_dialog_ui.cc chrome/browser/ui/webui/constrained_web_dialog_ui.cc | ||||
| index f6098966f5b34..da78289b66155 100644 | ||||
| index 7a3fbc44629e6..578422e85320a 100644 | ||||
| --- chrome/browser/ui/webui/constrained_web_dialog_ui.cc | ||||
| +++ chrome/browser/ui/webui/constrained_web_dialog_ui.cc | ||||
| @@ -13,6 +13,7 @@ | ||||
|   | ||||
| @@ -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 870cdf73fd5ee..5714d4912b84e 100644 | ||||
| index f709beca890c4..80ae5fee83cac 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 @@ | ||||
| @@ -27,7 +27,7 @@ index 870cdf73fd5ee..5714d4912b84e 100644 | ||||
|  } | ||||
|   | ||||
|  absl::optional<DisplayFeature> RenderWidgetHostViewAura::GetDisplayFeature() { | ||||
| @@ -2221,6 +2224,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { | ||||
| @@ -2217,6 +2220,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) { | ||||
|    // This needs to happen only after |window_| has been initialized using | ||||
|    // Init(), because it needs to have the layer. | ||||
|    window_->SetEmbedFrameSinkId(frame_sink_id_); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/net/profile_network_context_service.cc chrome/browser/net/profile_network_context_service.cc | ||||
| index 122c7aac0fe18..f8017f174292d 100644 | ||||
| index ab9be2c237cad..5bf06645fcc6a 100644 | ||||
| --- chrome/browser/net/profile_network_context_service.cc | ||||
| +++ chrome/browser/net/profile_network_context_service.cc | ||||
| @@ -22,6 +22,7 @@ | ||||
| @@ -10,7 +10,7 @@ index 122c7aac0fe18..f8017f174292d 100644 | ||||
|  #include "chrome/browser/browser_features.h" | ||||
|  #include "chrome/browser/browser_process.h" | ||||
|  #include "chrome/browser/content_settings/cookie_settings_factory.h" | ||||
| @@ -745,7 +746,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( | ||||
| @@ -752,7 +753,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( | ||||
|   | ||||
|    // Configure on-disk storage for non-OTR profiles. OTR profiles just use | ||||
|    // default behavior (in memory storage, default sizes). | ||||
| @@ -31,7 +31,7 @@ index 122c7aac0fe18..f8017f174292d 100644 | ||||
|      PrefService* local_state = g_browser_process->local_state(); | ||||
|      // Configure the HTTP cache path and size. | ||||
|      base::FilePath base_cache_path; | ||||
| @@ -758,7 +771,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( | ||||
| @@ -765,7 +778,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( | ||||
|          base_cache_path.Append(chrome::kCacheDirname); | ||||
|      network_context_params->http_cache_max_size = | ||||
|          local_state->GetInteger(prefs::kDiskCacheSize); | ||||
| @@ -123,10 +123,10 @@ index 77c0984d364c6..df7ff7d7355b5 100644 | ||||
|   | ||||
|  void CookieManager::SetForceKeepSessionState() { | ||||
| diff --git services/network/network_context.cc services/network/network_context.cc | ||||
| index 89bbba4956965..1b12c7a0c0e25 100644 | ||||
| index 1bd4dda6aaa55..af2385b2e4fbf 100644 | ||||
| --- services/network/network_context.cc | ||||
| +++ services/network/network_context.cc | ||||
| @@ -2367,17 +2367,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( | ||||
| @@ -2364,17 +2364,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( | ||||
|          network_service_->network_quality_estimator()); | ||||
|    } | ||||
|   | ||||
| @@ -157,7 +157,7 @@ index 89bbba4956965..1b12c7a0c0e25 100644 | ||||
|      trust_token_store_ = std::make_unique<PendingTrustTokenStore>(); | ||||
|   | ||||
| diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom | ||||
| index cd28ac0510e13..06a9dd17e776d 100644 | ||||
| index 0a376689aeb81..18da84986021d 100644 | ||||
| --- services/network/public/mojom/network_context.mojom | ||||
| +++ services/network/public/mojom/network_context.mojom | ||||
| @@ -336,6 +336,9 @@ struct NetworkContextParams { | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git content/browser/storage_partition_impl.cc content/browser/storage_partition_impl.cc | ||||
| index 3d3a6a0fb49ab..9a652564b85ee 100644 | ||||
| index e165c450e96d1..33699e033a989 100644 | ||||
| --- content/browser/storage_partition_impl.cc | ||||
| +++ content/browser/storage_partition_impl.cc | ||||
| @@ -495,10 +495,6 @@ class LoginHandlerDelegate { | ||||
| @@ -488,10 +488,6 @@ class LoginHandlerDelegate { | ||||
|      } | ||||
|   | ||||
|      WebContents* web_contents = web_contents_getter_.Run(); | ||||
| @@ -13,7 +13,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644 | ||||
|   | ||||
|      // WeakPtr is not strictly necessary here due to OnRequestCancelled. | ||||
|      creating_login_delegate_ = true; | ||||
| @@ -550,12 +546,6 @@ void OnAuthRequiredContinuation( | ||||
| @@ -543,12 +539,6 @@ void OnAuthRequiredContinuation( | ||||
|      mojo::PendingRemote<network::mojom::AuthChallengeResponder> | ||||
|          auth_challenge_responder, | ||||
|      base::RepeatingCallback<WebContents*(void)> web_contents_getter) { | ||||
| @@ -26,7 +26,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644 | ||||
|    new LoginHandlerDelegate( | ||||
|        std::move(auth_challenge_responder), std::move(web_contents_getter), | ||||
|        auth_info, is_request_for_primary_main_frame, process_id, request_id, url, | ||||
| @@ -2807,8 +2797,12 @@ void StoragePartitionImpl::GetQuotaSettings( | ||||
| @@ -2832,8 +2822,12 @@ void StoragePartitionImpl::GetQuotaSettings( | ||||
|      return; | ||||
|    } | ||||
|   | ||||
| @@ -40,7 +40,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644 | ||||
|        storage::GetDefaultDeviceInfoHelper(), std::move(callback)); | ||||
|  } | ||||
|   | ||||
| @@ -2818,9 +2812,12 @@ void StoragePartitionImpl::InitNetworkContext() { | ||||
| @@ -2843,9 +2837,12 @@ void StoragePartitionImpl::InitNetworkContext() { | ||||
|    cert_verifier::mojom::CertVerifierCreationParamsPtr | ||||
|        cert_verifier_creation_params = | ||||
|            cert_verifier::mojom::CertVerifierCreationParams::New(); | ||||
|   | ||||
| @@ -13,7 +13,7 @@ index 1beba57fbb164..448fbcb006e32 100644 | ||||
|            {base::MayBlock(), base::TaskPriority::USER_VISIBLE, | ||||
|             base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}); | ||||
| diff --git content/browser/browser_context.cc content/browser/browser_context.cc | ||||
| index 06b34e105411d..59b704c0d88a8 100644 | ||||
| index 22af8b58056d9..88486bcf6e74b 100644 | ||||
| --- content/browser/browser_context.cc | ||||
| +++ content/browser/browser_context.cc | ||||
| @@ -130,7 +130,7 @@ StoragePartition* BrowserContext::GetStoragePartition( | ||||
| @@ -25,7 +25,7 @@ index 06b34e105411d..59b704c0d88a8 100644 | ||||
|      // An off the record profile MUST only use in memory storage partitions. | ||||
|      CHECK(storage_partition_config.in_memory()); | ||||
|    } | ||||
| @@ -365,7 +365,8 @@ BrowserContext::CreateVideoDecodePerfHistory() { | ||||
| @@ -374,7 +374,8 @@ BrowserContext::CreateVideoDecodePerfHistory() { | ||||
|    const bool kUseInMemoryDBDefault = false; | ||||
|    bool use_in_memory_db = base::GetFieldTrialParamByFeatureAsBool( | ||||
|        media::kMediaCapabilitiesWithParameters, kUseInMemoryDBParamName, | ||||
|   | ||||
| @@ -43,10 +43,10 @@ index 11f1421cc79c1..c5dbc643ae7c8 100644 | ||||
|    virtual void MenuWillShow() {} | ||||
|   | ||||
| diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc | ||||
| index 7fb46dbdee749..e25a85d919e5e 100644 | ||||
| index 9db4aaff7094b..a4baf119986a7 100644 | ||||
| --- ui/gfx/render_text.cc | ||||
| +++ ui/gfx/render_text.cc | ||||
| @@ -659,6 +659,14 @@ void RenderText::SetWhitespaceElision(absl::optional<bool> whitespace_elision) { | ||||
| @@ -665,6 +665,14 @@ void RenderText::SetWhitespaceElision(absl::optional<bool> whitespace_elision) { | ||||
|    } | ||||
|  } | ||||
|   | ||||
| @@ -61,7 +61,7 @@ index 7fb46dbdee749..e25a85d919e5e 100644 | ||||
|  void RenderText::SetDisplayRect(const Rect& r) { | ||||
|    if (r != display_rect_) { | ||||
|      display_rect_ = r; | ||||
| @@ -2015,6 +2023,19 @@ void RenderText::OnTextAttributeChanged() { | ||||
| @@ -1995,6 +2003,19 @@ void RenderText::OnTextAttributeChanged() { | ||||
|   | ||||
|    layout_text_up_to_date_ = false; | ||||
|   | ||||
| @@ -82,7 +82,7 @@ index 7fb46dbdee749..e25a85d919e5e 100644 | ||||
|  } | ||||
|   | ||||
| diff --git ui/gfx/render_text.h ui/gfx/render_text.h | ||||
| index 983cba19002c4..03b7d77a2e8e6 100644 | ||||
| index 81ac620c7e53a..37e09eaf4b910 100644 | ||||
| --- ui/gfx/render_text.h | ||||
| +++ ui/gfx/render_text.h | ||||
| @@ -347,6 +347,10 @@ class GFX_EXPORT RenderText { | ||||
| @@ -96,7 +96,7 @@ index 983cba19002c4..03b7d77a2e8e6 100644 | ||||
|    const Rect& display_rect() const { return display_rect_; } | ||||
|    void SetDisplayRect(const Rect& r); | ||||
|   | ||||
| @@ -1056,6 +1060,8 @@ class GFX_EXPORT RenderText { | ||||
| @@ -1050,6 +1054,8 @@ class GFX_EXPORT RenderText { | ||||
|   | ||||
|    // Tell whether or not the |layout_text_| needs an update or is up to date. | ||||
|    mutable bool layout_text_up_to_date_ = false; | ||||
| @@ -394,10 +394,10 @@ index 9c8c5de34d064..b054688cca148 100644 | ||||
|   | ||||
|    explicit MenuHost(SubmenuView* submenu); | ||||
| diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc | ||||
| index 6da48e9716bcd..98f0d4d217f9e 100644 | ||||
| index 538829ec598b6..042728512ea26 100644 | ||||
| --- ui/views/controls/menu/menu_item_view.cc | ||||
| +++ ui/views/controls/menu/menu_item_view.cc | ||||
| @@ -1091,6 +1091,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, | ||||
| @@ -1084,6 +1084,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas, | ||||
|      spilling_rect.set_y(spilling_rect.y() - corner_radius_); | ||||
|      spilling_rect.set_height(spilling_rect.height() + corner_radius_); | ||||
|      canvas->DrawRoundRect(spilling_rect, corner_radius_, flags); | ||||
| @@ -413,7 +413,7 @@ index 6da48e9716bcd..98f0d4d217f9e 100644 | ||||
|    } else if (paint_as_selected) { | ||||
|      gfx::Rect item_bounds = GetLocalBounds(); | ||||
|      if (type_ == Type::kActionableSubMenu) { | ||||
| @@ -1157,6 +1166,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { | ||||
| @@ -1150,6 +1159,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { | ||||
|  } | ||||
|   | ||||
|  SkColor MenuItemView::GetTextColor(bool minor, bool paint_as_selected) const { | ||||
| @@ -700,7 +700,7 @@ index 1ffec7052a314..3a2be376fb000 100644 | ||||
|        content_view_->GetMenuItem()->GetMenuController()->GetAnchorPosition()); | ||||
|   | ||||
| diff --git ui/views/test/ui_controls_factory_desktop_aura_ozone.cc ui/views/test/ui_controls_factory_desktop_aura_ozone.cc | ||||
| index bec549b841bd7..0934f19177358 100644 | ||||
| index a364780eb8203..4671969f5597c 100644 | ||||
| --- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc | ||||
| +++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc | ||||
| @@ -16,6 +16,7 @@ | ||||
| @@ -724,7 +724,7 @@ index bec549b841bd7..0934f19177358 100644 | ||||
|      if (root_location != root_current_location && | ||||
|          ozone_ui_controls_test_helper_->ButtonDownMask() == 0 && | ||||
| diff --git ui/views/view.h ui/views/view.h | ||||
| index ef40c571d57c0..0fd51538fbefd 100644 | ||||
| index 29b0bed42c74d..c6dd795c13094 100644 | ||||
| --- ui/views/view.h | ||||
| +++ ui/views/view.h | ||||
| @@ -22,6 +22,7 @@ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc | ||||
| index edcca00291646..2bb104005561b 100644 | ||||
| index eefdd87f1f85a..4f4c68e53676d 100644 | ||||
| --- content/browser/renderer_host/render_widget_host_view_base.cc | ||||
| +++ content/browser/renderer_host/render_widget_host_view_base.cc | ||||
| @@ -652,6 +652,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const { | ||||
| @@ -660,6 +660,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const { | ||||
|    return scale_override_for_capture_; | ||||
|  } | ||||
|   | ||||
| @@ -18,7 +18,7 @@ index edcca00291646..2bb104005561b 100644 | ||||
|    if (!GetMouseWheelPhaseHandler()) | ||||
|      return; | ||||
| diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h | ||||
| index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
| index 912a21280fdd5..fa535d68368fe 100644 | ||||
| --- content/browser/renderer_host/render_widget_host_view_base.h | ||||
| +++ content/browser/renderer_host/render_widget_host_view_base.h | ||||
| @@ -67,6 +67,7 @@ class CursorManager; | ||||
| @@ -29,7 +29,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
|  class SyntheticGestureTarget; | ||||
|  class TextInputManager; | ||||
|  class TouchSelectionControllerClientManager; | ||||
| @@ -138,6 +139,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
| @@ -139,6 +140,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
|                          const gfx::Size& max_size) override; | ||||
|    void DisableAutoResize(const gfx::Size& new_size) override; | ||||
|    float GetDeviceScaleFactor() const final; | ||||
| @@ -38,7 +38,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
|    TouchSelectionControllerClientManager* | ||||
|    GetTouchSelectionControllerClientManager() override; | ||||
|    bool ShouldVirtualKeyboardOverlayContent() override; | ||||
| @@ -174,6 +177,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
| @@ -175,6 +178,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
|    // Called when screen information or native widget bounds change. | ||||
|    virtual void UpdateScreenInfo(); | ||||
|   | ||||
| @@ -49,7 +49,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
|    // Called by the TextInputManager to notify the view about being removed from | ||||
|    // the list of registered views, i.e., TextInputManager is no longer tracking | ||||
|    // TextInputState from this view. The RWHV should reset |text_input_manager_| | ||||
| @@ -413,6 +420,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
| @@ -417,6 +424,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
|                             const gfx::Rect& bounds, | ||||
|                             const gfx::Rect& anchor_rect) = 0; | ||||
|   | ||||
| @@ -62,7 +62,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
|    // Sets the cursor for this view to the one associated with the specified | ||||
|    // cursor_type. | ||||
|    virtual void UpdateCursor(const WebCursor& cursor) = 0; | ||||
| @@ -655,6 +668,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
| @@ -659,6 +672,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
|    // to all displays. | ||||
|    gfx::Size system_cursor_size_; | ||||
|   | ||||
| @@ -73,7 +73,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644 | ||||
|   private: | ||||
|    FRIEND_TEST_ALL_PREFIXES( | ||||
|        BrowserSideFlingBrowserTest, | ||||
| @@ -676,10 +693,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
| @@ -680,10 +697,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView { | ||||
|   | ||||
|    void SynchronizeVisualProperties(); | ||||
|   | ||||
| @@ -133,10 +133,10 @@ index 855e5ff668236..2bf32cabf159b 100644 | ||||
|    if (host_ && set_focus_on_mouse_down_or_key_event_) { | ||||
|      set_focus_on_mouse_down_or_key_event_ = false; | ||||
| diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h | ||||
| index d213587450f06..3fde9a9ce47d5 100644 | ||||
| index c7842775225c7..1ecb68d349bd1 100644 | ||||
| --- content/public/browser/render_widget_host_view.h | ||||
| +++ content/public/browser/render_widget_host_view.h | ||||
| @@ -253,6 +253,14 @@ class CONTENT_EXPORT RenderWidgetHostView { | ||||
| @@ -256,6 +256,14 @@ class CONTENT_EXPORT RenderWidgetHostView { | ||||
|    // This must always return the same device scale factor as GetScreenInfo. | ||||
|    virtual float GetDeviceScaleFactor() const = 0; | ||||
|   | ||||
| @@ -152,10 +152,10 @@ index d213587450f06..3fde9a9ce47d5 100644 | ||||
|    // Set the view's active state (i.e., tint state of controls). | ||||
|    virtual void SetActive(bool active) = 0; | ||||
| diff --git ui/ozone/platform/x11/x11_window.cc ui/ozone/platform/x11/x11_window.cc | ||||
| index 7371f85c84f9d..52081b786b91f 100644 | ||||
| index 6c7817dc42fb0..a048960ea1916 100644 | ||||
| --- ui/ozone/platform/x11/x11_window.cc | ||||
| +++ ui/ozone/platform/x11/x11_window.cc | ||||
| @@ -1753,7 +1753,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) { | ||||
| @@ -1772,7 +1772,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) { | ||||
|    req.border_pixel = 0; | ||||
|   | ||||
|    bounds_in_pixels_ = SanitizeBounds(bounds); | ||||
| @@ -179,10 +179,10 @@ index 87a4458f9fbfc..bc3edd88fac7f 100644 | ||||
|    return host ? host->GetAcceleratedWidget() : nullptr; | ||||
|  } | ||||
| diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc | ||||
| index e861828b228bc..17ba3850ab447 100644 | ||||
| index d8d30be7adeb2..6728c41c9cc2e 100644 | ||||
| --- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc | ||||
| +++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc | ||||
| @@ -163,6 +163,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop( | ||||
| @@ -164,6 +164,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop( | ||||
|    return result; | ||||
|  } | ||||
|   | ||||
| @@ -201,7 +201,7 @@ index e861828b228bc..17ba3850ab447 100644 | ||||
|  void DesktopWindowTreeHostLinux::DispatchEvent(ui::Event* event) { | ||||
|    // In Windows, the native events sent to chrome are separated into client | ||||
|    // and non-client versions of events, which we record on our LocatedEvent | ||||
| @@ -288,6 +300,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties( | ||||
| @@ -289,6 +301,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties( | ||||
|   | ||||
|    properties->wayland_app_id = params.wayland_app_id; | ||||
|   | ||||
| @@ -243,10 +243,10 @@ index e6842b0848c74..d214247587d41 100644 | ||||
|    base::WeakPtrFactory<DesktopWindowTreeHostLinux> weak_factory_{this}; | ||||
|  }; | ||||
| diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc | ||||
| index 0ff9b8f6becc8..73e62450a9e03 100644 | ||||
| index f6d94f2376d28..d0a8b16ae9a33 100644 | ||||
| --- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc | ||||
| +++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc | ||||
| @@ -260,8 +260,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) { | ||||
| @@ -261,8 +261,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) { | ||||
|    if (properties.parent_widget) { | ||||
|      window_parent_ = DesktopWindowTreeHostPlatform::GetHostForWidget( | ||||
|          properties.parent_widget); | ||||
| @@ -363,7 +363,7 @@ index 046d3cf77f70e..f730142c7d554 100644 | ||||
|  } | ||||
|   | ||||
| diff --git ui/views/widget/widget.h ui/views/widget/widget.h | ||||
| index d44b04c2587ca..97a9c1a22b608 100644 | ||||
| index 1091647c5096a..4829519b2a029 100644 | ||||
| --- ui/views/widget/widget.h | ||||
| +++ ui/views/widget/widget.h | ||||
| @@ -337,6 +337,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, | ||||
| @@ -376,10 +376,10 @@ index d44b04c2587ca..97a9c1a22b608 100644 | ||||
|      // the NativeWidget may specify a default size. If the parent is specified, | ||||
|      // |bounds| is in the parent's coordinate system. If the parent is not | ||||
| diff --git ui/views/widget/widget_delegate.h ui/views/widget/widget_delegate.h | ||||
| index 8176aa0ac84b8..a9bbe9b6f1563 100644 | ||||
| index 431d19f2543a9..4e2e69a650118 100644 | ||||
| --- ui/views/widget/widget_delegate.h | ||||
| +++ ui/views/widget/widget_delegate.h | ||||
| @@ -384,6 +384,10 @@ class VIEWS_EXPORT WidgetDelegate { | ||||
| @@ -375,6 +375,10 @@ class VIEWS_EXPORT WidgetDelegate { | ||||
|    // Returns true if the title text should be centered. | ||||
|    bool ShouldCenterWindowTitleText() const; | ||||
|   | ||||
| @@ -404,7 +404,7 @@ index b3a3efd0e526f..8590a98eaf0b2 100644 | ||||
|        if (native_widget_delegate->IsDialogBox()) { | ||||
|          *style |= DS_MODALFRAME; | ||||
| diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc | ||||
| index 2d21f2e408004..15eca7b0db72f 100644 | ||||
| index 1e6326a2f36f5..8df413cd539ee 100644 | ||||
| --- ui/views/win/hwnd_message_handler.cc | ||||
| +++ ui/views/win/hwnd_message_handler.cc | ||||
| @@ -824,7 +824,11 @@ bool HWNDMessageHandler::IsVisible() const { | ||||
|   | ||||
| @@ -80,10 +80,10 @@ index 309422bcf8581..759549f3046f4 100644 | ||||
|   private: | ||||
|    const HWND hwnd_; | ||||
| diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn | ||||
| index 10d10f49e7a0e..9e5a6409465ab 100644 | ||||
| index 267af5f85d403..e7df56733515d 100644 | ||||
| --- components/viz/service/BUILD.gn | ||||
| +++ components/viz/service/BUILD.gn | ||||
| @@ -214,6 +214,8 @@ viz_component("service") { | ||||
| @@ -217,6 +217,8 @@ viz_component("service") { | ||||
|      "transitions/transferable_resource_tracker.cc", | ||||
|      "transitions/transferable_resource_tracker.h", | ||||
|      "viz_service_export.h", | ||||
| @@ -93,7 +93,7 @@ index 10d10f49e7a0e..9e5a6409465ab 100644 | ||||
|   | ||||
|    defines = [ "VIZ_SERVICE_IMPLEMENTATION" ] | ||||
| diff --git components/viz/service/display_embedder/output_surface_provider_impl.cc components/viz/service/display_embedder/output_surface_provider_impl.cc | ||||
| index 8585790795707..995143f8b0faf 100644 | ||||
| index c019d729f2944..57670529f3d7e 100644 | ||||
| --- components/viz/service/display_embedder/output_surface_provider_impl.cc | ||||
| +++ components/viz/service/display_embedder/output_surface_provider_impl.cc | ||||
| @@ -17,6 +17,7 @@ | ||||
| @@ -112,7 +112,7 @@ index 8585790795707..995143f8b0faf 100644 | ||||
|  #include "ui/base/ui_base_switches.h" | ||||
|   | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
| @@ -142,6 +144,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform( | ||||
| @@ -141,6 +143,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform( | ||||
|    if (headless_) | ||||
|      return std::make_unique<SoftwareOutputDevice>(); | ||||
|   | ||||
| @@ -222,7 +222,7 @@ index 6b7fbb6cf13dc..e2af75168cb91 100644 | ||||
| +  Draw(gfx.mojom.Rect damage_rect) => (); | ||||
|  }; | ||||
| diff --git ui/compositor/compositor.h ui/compositor/compositor.h | ||||
| index 2f6d2ee4160f2..11a32e1481c4b 100644 | ||||
| index e0345f5903a48..31a118fc3b375 100644 | ||||
| --- ui/compositor/compositor.h | ||||
| +++ ui/compositor/compositor.h | ||||
| @@ -31,7 +31,9 @@ | ||||
| @@ -260,7 +260,7 @@ index 2f6d2ee4160f2..11a32e1481c4b 100644 | ||||
|    // Sets the root of the layer tree drawn by this Compositor. The root layer | ||||
|    // must have no parent. The compositor's root layer is reset if the root layer | ||||
|    // is destroyed. NULL can be passed to reset the root layer, in which case the | ||||
| @@ -478,6 +491,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, | ||||
| @@ -482,6 +495,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, | ||||
|   | ||||
|    std::unique_ptr<PendingBeginFrameArgs> pending_begin_frame_args_; | ||||
|   | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc | ||||
| index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
| index 8a0b6e41eb3f1..9e6ba43dc912d 100644 | ||||
| --- content/browser/web_contents/web_contents_impl.cc | ||||
| +++ content/browser/web_contents/web_contents_impl.cc | ||||
| @@ -3036,6 +3036,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, | ||||
| @@ -3059,6 +3059,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, | ||||
|        site_instance.get(), params.renderer_initiated_creation, | ||||
|        params.main_frame_name, GetOpener(), primary_main_frame_policy); | ||||
|   | ||||
| @@ -15,7 +15,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
|    std::unique_ptr<WebContentsViewDelegate> delegate = | ||||
|        GetContentClient()->browser()->GetWebContentsViewDelegate(this); | ||||
|   | ||||
| @@ -3046,6 +3052,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, | ||||
| @@ -3069,6 +3075,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, | ||||
|      view_ = CreateWebContentsView(this, std::move(delegate), | ||||
|                                    &render_view_host_delegate_view_); | ||||
|    } | ||||
| @@ -23,7 +23,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
|    CHECK(render_view_host_delegate_view_); | ||||
|    CHECK(view_.get()); | ||||
|   | ||||
| @@ -3224,6 +3231,9 @@ void WebContentsImpl::RenderWidgetCreated( | ||||
| @@ -3247,6 +3254,9 @@ void WebContentsImpl::RenderWidgetCreated( | ||||
|    OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated", | ||||
|                          "render_widget_host", render_widget_host); | ||||
|    created_widgets_.insert(render_widget_host); | ||||
| @@ -33,9 +33,9 @@ index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
|  } | ||||
|   | ||||
|  void WebContentsImpl::RenderWidgetDeleted( | ||||
| @@ -3937,6 +3947,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( | ||||
|    // objects. | ||||
|    create_params.renderer_initiated_creation = !is_new_browsing_instance; | ||||
| @@ -3973,6 +3983,15 @@ FrameTree* WebContentsImpl::CreateNewWindow( | ||||
|          params.pip_options->lock_aspect_ratio; | ||||
|    } | ||||
|   | ||||
| +  if (delegate_) { | ||||
| +    delegate_->GetCustomWebContentsView(this, | ||||
| @@ -49,7 +49,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
|    std::unique_ptr<WebContentsImpl> new_contents; | ||||
|    if (!is_guest) { | ||||
|      create_params.context = view_->GetNativeView(); | ||||
| @@ -7798,6 +7817,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, | ||||
| @@ -7857,6 +7876,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node, | ||||
|      // frames). | ||||
|      SetFocusedFrameTree(node->frame_tree()); | ||||
|    } | ||||
| @@ -60,7 +60,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644 | ||||
|   | ||||
|  void WebContentsImpl::DidCallFocus() { | ||||
| diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h | ||||
| index c98dd2d9a23a0..e62f0c0803366 100644 | ||||
| index f1b8dee6699c0..6e13569cfdeac 100644 | ||||
| --- content/public/browser/web_contents.h | ||||
| +++ content/public/browser/web_contents.h | ||||
| @@ -93,10 +93,12 @@ class BrowserContext; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h | ||||
| index e56d75ffd68c4..0965644fd6f9e 100644 | ||||
| index a9ba1b0ec765e..5d5d80fe8e999 100644 | ||||
| --- third_party/blink/public/platform/platform.h | ||||
| +++ third_party/blink/public/platform/platform.h | ||||
| @@ -833,6 +833,11 @@ class BLINK_PLATFORM_EXPORT Platform { | ||||
| @@ -812,6 +812,11 @@ class BLINK_PLATFORM_EXPORT Platform { | ||||
|        const WebURL& url, | ||||
|        blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) {} | ||||
|   | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h | ||||
| index 5e4032ccf916f..1ccf72b56fb22 100644 | ||||
| index 99f0ceb45972d..8b5f6726efcf1 100644 | ||||
| --- third_party/blink/public/web/web_view.h | ||||
| +++ third_party/blink/public/web/web_view.h | ||||
| @@ -336,6 +336,7 @@ class WebView { | ||||
| @@ -333,6 +333,7 @@ class WebView { | ||||
|   | ||||
|    // Sets whether select popup menus should be rendered by the browser. | ||||
|    BLINK_EXPORT static void SetUseExternalPopupMenus(bool); | ||||
| @@ -11,7 +11,7 @@ index 5e4032ccf916f..1ccf72b56fb22 100644 | ||||
|    // Cancels and hides the current popup (datetime, select...) if any. | ||||
|    virtual void CancelPagePopup() = 0; | ||||
| diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc | ||||
| index 3f6460ceee1e3..faebfcc06bbae 100644 | ||||
| index 071481b1b47da..8f033a73481f7 100644 | ||||
| --- third_party/blink/renderer/core/exported/web_view_impl.cc | ||||
| +++ third_party/blink/renderer/core/exported/web_view_impl.cc | ||||
| @@ -246,8 +246,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) { | ||||
| @@ -39,7 +39,7 @@ index 3f6460ceee1e3..faebfcc06bbae 100644 | ||||
|        fullscreen_controller_(std::make_unique<FullscreenController>(this)), | ||||
|        page_base_background_color_( | ||||
| diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h | ||||
| index 2f8e971ab224b..130ddf0ba213d 100644 | ||||
| index 6a36275fdd7ac..8837177386f91 100644 | ||||
| --- third_party/blink/renderer/core/exported/web_view_impl.h | ||||
| +++ third_party/blink/renderer/core/exported/web_view_impl.h | ||||
| @@ -133,7 +133,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, | ||||
| @@ -52,7 +52,7 @@ index 2f8e971ab224b..130ddf0ba213d 100644 | ||||
|   | ||||
|    // Returns whether frames under this WebView are backed by a compositor. | ||||
|    bool does_composite() const { return does_composite_; } | ||||
| @@ -809,6 +810,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, | ||||
| @@ -808,6 +809,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, | ||||
|    float fake_page_scale_animation_page_scale_factor_ = 0.f; | ||||
|    bool fake_page_scale_animation_use_anchor_ = false; | ||||
|   | ||||
| @@ -62,10 +62,10 @@ index 2f8e971ab224b..130ddf0ba213d 100644 | ||||
|    TransformationMatrix device_emulation_transform_; | ||||
|   | ||||
| diff --git third_party/blink/renderer/core/page/chrome_client_impl.cc third_party/blink/renderer/core/page/chrome_client_impl.cc | ||||
| index b05a0d8ca1db7..396343a895e82 100644 | ||||
| index 70fab6032767a..e0f3fd02da1cc 100644 | ||||
| --- third_party/blink/renderer/core/page/chrome_client_impl.cc | ||||
| +++ third_party/blink/renderer/core/page/chrome_client_impl.cc | ||||
| @@ -917,7 +917,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { | ||||
| @@ -919,7 +919,7 @@ bool ChromeClientImpl::HasOpenedPopup() const { | ||||
|  PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame, | ||||
|                                             HTMLSelectElement& select) { | ||||
|    NotifyPopupOpeningObservers(); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc | ||||
| index 4a978a473f39b..d10c133250860 100644 | ||||
| index 54cf745342617..87471b42d4941 100644 | ||||
| --- chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc | ||||
| +++ chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc | ||||
| @@ -10,6 +10,7 @@ | ||||
| @@ -29,7 +29,7 @@ index 4a978a473f39b..d10c133250860 100644 | ||||
|  #include "components/prefs/pref_service.h" | ||||
|  #include "components/sync/driver/sync_internals_util.h" | ||||
|  #include "components/sync/driver/sync_service.h" | ||||
| @@ -332,7 +336,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) { | ||||
| @@ -333,7 +337,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) { | ||||
|    response->emplace(kOsVersionTag, os_version); | ||||
|  #endif | ||||
|   | ||||
| @@ -42,7 +42,7 @@ index 4a978a473f39b..d10c133250860 100644 | ||||
|    PopulateExtensionInfoLogs(response.get()); | ||||
|    PopulatePowerApiLogs(response.get()); | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
| @@ -414,6 +422,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs( | ||||
| @@ -415,6 +423,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs( | ||||
|    if (!profile) | ||||
|      return; | ||||
|   | ||||
| @@ -55,7 +55,7 @@ index 4a978a473f39b..d10c133250860 100644 | ||||
|    extensions::ExtensionRegistry* extension_registry = | ||||
|        extensions::ExtensionRegistry::Get(profile); | ||||
|    std::string extensions_list; | ||||
| @@ -508,6 +522,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime( | ||||
| @@ -514,6 +528,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime( | ||||
|  #if BUILDFLAG(IS_WIN) | ||||
|  void ChromeInternalLogSource::PopulateUsbKeyboardDetected( | ||||
|      SystemLogsResponse* response) { | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc | ||||
| index b1ec529d260a9..d84c44e6e0412 100644 | ||||
| index f7b0de8ca8cab..6788ef40416a1 100644 | ||||
| --- sandbox/policy/win/sandbox_win.cc | ||||
| +++ sandbox/policy/win/sandbox_win.cc | ||||
| @@ -1131,6 +1131,13 @@ ResultCode SandboxWin::StartSandboxedProcess( | ||||
| @@ -1132,6 +1132,13 @@ ResultCode SandboxWin::StartSandboxedProcess( | ||||
|      const base::HandlesToInheritVector& handles_to_inherit, | ||||
|      SandboxDelegate* delegate, | ||||
|      base::Process* process) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user