summaryrefslogtreecommitdiffstats
path: root/src/core/renderer/content_renderer_client_qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/renderer/content_renderer_client_qt.cpp')
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp91
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));