diff options
Diffstat (limited to 'src/core/renderer/content_renderer_client_qt.cpp')
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.cpp | 91 |
1 files changed, 52 insertions, 39 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 4c175768d..0622fc27e 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -10,11 +10,11 @@ #include "renderer/web_engine_page_render_frame.h" #include "web_engine_library_info.h" -#include "components/autofill/content/renderer/autofill_agent.h" -#include "components/autofill/content/renderer/autofill_assistant_agent.h" +#include "base/task/sequenced_task_runner.h" #include "components/autofill/content/renderer/password_autofill_agent.h" #include "components/autofill/content/renderer/password_generation_agent.h" -#include "components/cdm/renderer/widevine_key_system_properties.h" +#include "components/cdm/renderer/external_clear_key_key_system_info.h" +#include "components/cdm/renderer/widevine_key_system_info.h" #include "components/error_page/common/error.h" #include "components/error_page/common/localized_error.h" #include "components/grit/components_resources.h" @@ -25,7 +25,8 @@ #include "content/public/common/url_constants.h" #include "content/public/renderer/render_thread.h" #include "extensions/buildflags/buildflags.h" -#include "media/base/key_system_properties.h" +#include "media/base/key_system_info.h" +#include "media/cdm/cdm_capability.h" #include "media/media_buildflags.h" #include "mojo/public/cpp/bindings/binder_map.h" #include "net/base/net_errors.h" @@ -35,6 +36,7 @@ #include "third_party/blink/public/platform/web_url_error.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/webui/jstemplate_builder.h" +#include "ui/base/webui/web_ui_util.h" #if QT_CONFIG(webengine_spellchecker) #include "components/spellcheck/renderer/spellcheck.h" @@ -71,13 +73,15 @@ #if BUILDFLAG(ENABLE_LIBRARY_CDMS) #include "base/feature_list.h" -#include "components/cdm/renderer/external_clear_key_key_system_properties.h" #include "content/public/renderer/key_system_support.h" #include "media/base/media_switches.h" #include "media/base/video_codecs.h" +#include "media/cdm/clear_key_cdm_common.h" #include "third_party/widevine/cdm/buildflags.h" +#if BUILDFLAG(ENABLE_WIDEVINE) #include "third_party/widevine/cdm/widevine_cdm_common.h" #endif +#endif #if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) #include "chrome/renderer/media/webrtc_logging_agent_impl.h" @@ -128,12 +132,12 @@ void ContentRendererClientQt::RenderThreadStarted() void ContentRendererClientQt::ExposeInterfacesToBrowser(mojo::BinderMap* binders) { binders->Add<visitedlink::mojom::VisitedLinkNotificationSink>( - m_visitedLinkReader->GetBindCallback(), base::SequencedTaskRunnerHandle::Get()); + m_visitedLinkReader->GetBindCallback(), base::SingleThreadTaskRunner::GetCurrentDefault()); binders->Add<web_cache::mojom::WebCache>( base::BindRepeating(&web_cache::WebCacheImpl::BindReceiver, base::Unretained(m_webCacheImpl.get())), - base::SequencedTaskRunnerHandle::Get()); + base::SingleThreadTaskRunner::GetCurrentDefault()); #if QT_CONFIG(webengine_spellchecker) binders->Add<spellcheck::mojom::SpellChecker>( @@ -144,7 +148,7 @@ void ContentRendererClientQt::ExposeInterfacesToBrowser(mojo::BinderMap* binders client->InitSpellCheck(); client->m_spellCheck->BindReceiver(std::move(receiver)); }, this), - base::SequencedTaskRunnerHandle::Get()); + base::SingleThreadTaskRunner::GetCurrentDefault()); #endif #if QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) @@ -154,7 +158,7 @@ void ContentRendererClientQt::ExposeInterfacesToBrowser(mojo::BinderMap* binders mojo::PendingReceiver<chrome::mojom::WebRtcLoggingAgent> receiver) { client->GetWebRtcLoggingAgent()->AddReceiver(std::move(receiver)); }, this), - base::SequencedTaskRunnerHandle::Get()); + base::SingleThreadTaskRunner::GetCurrentDefault()); #endif } @@ -174,7 +178,7 @@ void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_fr new QtWebEngineCore::ContentSettingsObserverQt(render_frame); #if QT_CONFIG(webengine_spellchecker) - new SpellCheckProvider(render_frame, m_spellCheck.data(), this); + new SpellCheckProvider(render_frame, m_spellCheck.data()); #endif #if QT_CONFIG(webengine_printing_and_pdf) new printing::PrintRenderFrameHelper(render_frame, base::WrapUnique(new PrintWebViewHelperDelegateQt())); @@ -184,24 +188,34 @@ void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_fr #if BUILDFLAG(ENABLE_EXTENSIONS) associated_interfaces->AddInterface<extensions::mojom::MimeHandlerViewContainerManager>( - base::BindRepeating( - &extensions::MimeHandlerViewContainerManager::BindReceiver, - render_frame->GetRoutingID())); + base::BindRepeating(&extensions::MimeHandlerViewContainerManager::BindReceiver, + base::Unretained(render_frame))); auto registry = std::make_unique<service_manager::BinderRegistry>(); ExtensionsRendererClientQt::GetInstance()->RenderFrameCreated(render_frame, render_frame_observer->registry()); #endif - autofill::AutofillAssistantAgent *autofill_assistant_agent = - new autofill::AutofillAssistantAgent(render_frame); - autofill::PasswordAutofillAgent *password_autofill_agent = - new autofill::PasswordAutofillAgent(render_frame, associated_interfaces); - autofill::PasswordGenerationAgent *password_generation_agent = - new autofill::PasswordGenerationAgent(render_frame, password_autofill_agent, - associated_interfaces); + auto password_autofill_agent = + std::make_unique<autofill::PasswordAutofillAgent>(render_frame, associated_interfaces); + auto password_generation_agent = + std::make_unique<autofill::PasswordGenerationAgent>(render_frame, password_autofill_agent.get(), associated_interfaces); + + new autofill::AutofillAgent( + render_frame, + { autofill::AutofillAgent::UsesKeyboardAccessoryForSuggestions(false), + autofill::AutofillAgent::ExtractAllDatalists(false) }, + std::move(password_autofill_agent), std::move(password_generation_agent), + associated_interfaces); +} - new autofill::AutofillAgent(render_frame, password_autofill_agent, password_generation_agent, - autofill_assistant_agent, associated_interfaces); +void ContentRendererClientQt::WebViewCreated(blink::WebView *web_view, + bool was_created_by_renderer, + const url::Origin *outermost_origin) +{ + Q_UNUSED(was_created_by_renderer); +#if BUILDFLAG(ENABLE_EXTENSIONS) + ExtensionsRendererClientQt::GetInstance()->WebViewCreated(web_view, outermost_origin); +#endif } void ContentRendererClientQt::RunScriptsAtDocumentStart(content::RenderFrame *render_frame) @@ -277,11 +291,12 @@ void ContentRendererClientQt::GetNavigationErrorStringsInternal(content::RenderF // TODO(elproxy): We could potentially get better diagnostics here by first calling // NetErrorHelper::GetErrorStringsForDnsProbe, but that one is harder to untangle. + base::Value::Dict error_page_params; error_page::LocalizedError::PageState errorPageState = error_page::LocalizedError::GetPageState( error.reason(), error.domain(), error.url(), isPost, false, error.stale_copy_in_cache(), false, - RenderConfiguration::is_incognito_process(), false, false, false, locale, false); + RenderConfiguration::is_incognito_process(), false, false, false, locale, false, &error_page_params); resourceId = IDR_NET_ERROR_HTML; @@ -290,13 +305,13 @@ void ContentRendererClientQt::GetNavigationErrorStringsInternal(content::RenderF if (template_html.empty()) NOTREACHED() << "unable to load template. ID: " << resourceId; else // "t" is the id of the templates root node. - *errorHtml = webui::GetTemplatesHtml(template_html, errorPageState.strings, "t"); + *errorHtml = webui::GetLocalizedHtml(template_html, errorPageState.strings); } } -uint64_t ContentRendererClientQt::VisitedLinkHash(const char *canonicalUrl, size_t length) +uint64_t ContentRendererClientQt::VisitedLinkHash(std::string_view canonicalUrl) { - return m_visitedLinkReader->ComputeURLFingerprint(canonicalUrl, length); + return m_visitedLinkReader->ComputeURLFingerprint(canonicalUrl); } bool ContentRendererClientQt::IsLinkVisited(uint64_t linkHash) @@ -342,8 +357,8 @@ void AppendParams(const std::vector<content::WebPluginMimeType::Param> &addition values[existing_size + i] = blink::WebString::FromUTF16(additional_params[i].value); } - existing_names->Swap(names); - existing_values->Swap(values); + existing_names->swap(names); + existing_values->swap(values); } #endif // BUILDFLAG(ENABLE_PLUGINS) @@ -460,11 +475,9 @@ void ContentRendererClientQt::GetInterface(const std::string &interface_name, mo // found in the LICENSE.Chromium file. #if BUILDFLAG(ENABLE_LIBRARY_CDMS) -static const char kExternalClearKeyKeySystem[] = "org.chromium.externalclearkey"; - // External Clear Key (used for testing). static void AddExternalClearKey(const media::mojom::KeySystemCapabilityPtr &capability, - media::KeySystemPropertiesVector *key_systems) + media::KeySystemInfos* key_systems) { Q_UNUSED(capability); if (!base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting)) { @@ -473,7 +486,7 @@ static void AddExternalClearKey(const media::mojom::KeySystemCapabilityPtr &capa } // TODO(xhwang): Actually use `capability` to determine capabilities. - key_systems->push_back(std::make_unique<cdm::ExternalClearKeyProperties>()); + key_systems->push_back(std::make_unique<cdm::ExternalClearKeyKeySystemInfo>()); } #if BUILDFLAG(ENABLE_WIDEVINE) @@ -590,7 +603,7 @@ static media::SupportedCodecs GetSupportedCodecs(const media::CdmCapability& cap } static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability, - media::KeySystemPropertiesVector *key_systems) + media::KeySystemInfos *key_systems) { // Codecs and encryption schemes. media::SupportedCodecs codecs = media::EME_CODEC_NONE; @@ -618,7 +631,7 @@ static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability, } // Robustness. - using Robustness = cdm::WidevineKeySystemProperties::Robustness; + using Robustness = cdm::WidevineKeySystemInfo::Robustness; auto max_audio_robustness = Robustness::SW_SECURE_CRYPTO; auto max_video_robustness = Robustness::SW_SECURE_DECODE; @@ -631,7 +644,7 @@ static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability, auto persistent_state_support = media::EmeFeatureSupport::REQUESTABLE; auto distinctive_identifier_support = media::EmeFeatureSupport::NOT_SUPPORTED; - key_systems->emplace_back(new cdm::WidevineKeySystemProperties( + key_systems->emplace_back(new cdm::WidevineKeySystemInfo( codecs, std::move(encryption_schemes), std::move(session_types), hw_secure_codecs, std::move(hw_secure_encryption_schemes), std::move(hw_secure_session_types), @@ -645,11 +658,11 @@ static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability, void OnKeySystemSupportUpdated(media::GetSupportedKeySystemsCB cb, content::KeySystemCapabilityPtrMap key_system_capabilities) { - media::KeySystemPropertiesVector key_systems; + media::KeySystemInfos key_systems; for (const auto &entry : key_system_capabilities) { +#if BUILDFLAG(ENABLE_LIBRARY_CDMS) const auto &key_system = entry.first; const auto &capability = entry.second; -#if BUILDFLAG(ENABLE_LIBRARY_CDMS) #if BUILDFLAG(ENABLE_WIDEVINE) if (key_system == kWidevineKeySystem) { AddWidevine(capability, &key_systems); @@ -657,13 +670,13 @@ void OnKeySystemSupportUpdated(media::GetSupportedKeySystemsCB cb, } #endif // BUILDFLAG(ENABLE_WIDEVINE) - if (key_system == kExternalClearKeyKeySystem) { + if (key_system == media::kExternalClearKeyKeySystem) { AddExternalClearKey(capability, &key_systems); continue; } -#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) DLOG(ERROR) << "Unrecognized key system: " << key_system; +#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) } cb.Run(std::move(key_systems)); |