diff options
| author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2024-06-11 13:21:32 +0300 |
|---|---|---|
| committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2024-06-11 13:31:01 +0300 |
| commit | 3cd4e0aa7961889eb06374885ed648f5b9bd85bc (patch) | |
| tree | 6a089aedea155b1f1a74b553f4d1b57c70554a8f /src/core/extensions | |
| parent | 6d029165d1593c514db08c34d6b08a00a4435d5e (diff) | |
| parent | 38063a6332b9f948a0381763271e9a9ac7af0999 (diff) | |
Merge tag 'v6.2.9-lts' into tqtc/lts-6.2-opensource6.2.9
Qt 6.2.9-lts release
Conflicts solved:
dependencies.yaml
examples/webenginewidgets/push-notifications/CMakeLists.txt
Change-Id: I0127c2575369f6939df89f3301659470d481b9bf
Diffstat (limited to 'src/core/extensions')
10 files changed, 51 insertions, 43 deletions
diff --git a/src/core/extensions/component_extension_resource_manager_qt.cpp b/src/core/extensions/component_extension_resource_manager_qt.cpp index b2cb7e356..428f673d3 100644 --- a/src/core/extensions/component_extension_resource_manager_qt.cpp +++ b/src/core/extensions/component_extension_resource_manager_qt.cpp @@ -37,12 +37,12 @@ ComponentExtensionResourceManagerQt::ComponentExtensionResourceManagerQt() AddComponentResourceEntries(kPdfResources, kPdfResourcesSize); #endif #if BUILDFLAG(ENABLE_PDF) - base::Value dict(base::Value::Type::DICTIONARY); + base::Value::Dict dict; pdf_extension_util::AddStrings(pdf_extension_util::PdfViewerContext::kPdfViewer, &dict); - pdf_extension_util::AddAdditionalData(&dict); + pdf_extension_util::AddAdditionalData(/*enable_annotations=*/true, &dict); ui::TemplateReplacements pdf_viewer_replacements; - ui::TemplateReplacementsFromDictionaryValue(dict.GetDict(), &pdf_viewer_replacements); + ui::TemplateReplacementsFromDictionaryValue(dict, &pdf_viewer_replacements); template_replacements_[extension_misc::kPdfExtensionId] = std::move(pdf_viewer_replacements); #endif } diff --git a/src/core/extensions/extension_system_qt.cpp b/src/core/extensions/extension_system_qt.cpp index 67750fa6a..0f44b8db3 100644 --- a/src/core/extensions/extension_system_qt.cpp +++ b/src/core/extensions/extension_system_qt.cpp @@ -21,7 +21,6 @@ #include "base/path_service.h" #include "base/strings/string_tokenizer.h" #include "base/strings/utf_string_conversions.h" -#include "base/task/post_task.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" @@ -143,7 +142,7 @@ void ExtensionSystemQt::LoadExtension(std::string extension_id, std::unique_ptr< if (!extension.get()) LOG(ERROR) << error; - base::PostTask(FROM_HERE, {content::BrowserThread::IO}, + content::GetIOThreadTaskRunner({})->PostTask(FROM_HERE, base::BindOnce(&InfoMap::AddExtension, base::Unretained(info_map()), base::RetainedRef(extension), @@ -378,8 +377,7 @@ void ExtensionSystemQt::RegisterExtensionWithRequestContexts(const Extension *ex bool incognito_enabled = false; bool notifications_disabled = false; - base::PostTaskAndReply( - FROM_HERE, {BrowserThread::IO}, + content::GetIOThreadTaskRunner({})->PostTaskAndReply(FROM_HERE, base::BindOnce(&InfoMap::AddExtension, info_map(), base::RetainedRef(extension), install_time, incognito_enabled, notifications_disabled), @@ -388,8 +386,7 @@ void ExtensionSystemQt::RegisterExtensionWithRequestContexts(const Extension *ex void ExtensionSystemQt::UnregisterExtensionWithRequestContexts(const std::string &extension_id) { - base::PostTask( - FROM_HERE, {BrowserThread::IO}, + content::GetIOThreadTaskRunner({})->PostTask(FROM_HERE, base::BindOnce(&InfoMap::RemoveExtension, info_map(), extension_id)); } diff --git a/src/core/extensions/extension_web_contents_observer_qt.cpp b/src/core/extensions/extension_web_contents_observer_qt.cpp index 22092be30..a33954a20 100644 --- a/src/core/extensions/extension_web_contents_observer_qt.cpp +++ b/src/core/extensions/extension_web_contents_observer_qt.cpp @@ -41,17 +41,8 @@ void ExtensionWebContentsObserverQt::CreateForWebContents(content::WebContents * void ExtensionWebContentsObserverQt::RenderFrameCreated(content::RenderFrameHost *render_frame_host) { ExtensionWebContentsObserver::RenderFrameCreated(render_frame_host); - - if (web_contents()->IsInnerWebContentsForGuest() && static_cast<content::RenderFrameHostImpl *>(render_frame_host)->is_local_root_subframe()) { - content::WebContents *parent = web_contents()->GetOutermostWebContents(); - QtWebEngineCore::RenderWidgetHostViewQt *main_rwhv = static_cast<QtWebEngineCore::RenderWidgetHostViewQt *>(parent->GetRenderWidgetHostView()); - // Main frame of guest WebContents - content::RenderWidgetHost *guest_render_widget_host = web_contents()->GetRenderViewHost()->GetWidget(); - main_rwhv->addGuest(guest_render_widget_host); - // The frame which holds the actual PDF content inside the guest - content::RenderWidgetHost *pdf_render_widget_host = render_frame_host->GetRenderWidgetHost(); - main_rwhv->addGuest(pdf_render_widget_host); - } + QtWebEngineCore::RenderWidgetHostViewQt::registerInputEventObserver(web_contents(), + render_frame_host); const Extension *extension = GetExtensionFromFrame(render_frame_host, false); if (!extension) diff --git a/src/core/extensions/extensions_browser_client_qt.cpp b/src/core/extensions/extensions_browser_client_qt.cpp index f013c04a4..ab44c23eb 100644 --- a/src/core/extensions/extensions_browser_client_qt.cpp +++ b/src/core/extensions/extensions_browser_client_qt.cpp @@ -13,7 +13,6 @@ #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" #include "base/path_service.h" -#include "base/task/post_task.h" #include "base/task/thread_pool.h" #include "base/memory/ref_counted_memory.h" #include "chrome/browser/extensions/api/generated_api_registration.h" @@ -167,9 +166,7 @@ private: if (!head->mime_type.empty()) { head->headers->AddHeader(net::HttpRequestHeaders::kContentType, head->mime_type.c_str()); } - client_->OnReceiveResponse(std::move(head), - mojo::ScopedDataPipeConsumerHandle()); - client_->OnStartLoadingResponseBody(std::move(consumer_handle)); + client_->OnReceiveResponse(std::move(head), std::move(consumer_handle), absl::nullopt); uint32_t write_size = data->size(); MojoResult result = producer_handle->WriteData(data->front(), &write_size, MOJO_WRITE_DATA_FLAG_NONE); @@ -294,6 +291,24 @@ BrowserContext *ExtensionsBrowserClientQt::GetOriginalContext(BrowserContext *co return context; } +BrowserContext *ExtensionsBrowserClientQt::GetRedirectedContextInIncognito(BrowserContext *context, bool, bool) +{ + // like in ShellExtensionsBrowserClient: + return context; +} + +BrowserContext *ExtensionsBrowserClientQt::GetContextForRegularAndIncognito(BrowserContext *context, bool, bool) +{ + // like in ShellExtensionsBrowserClient: + return context; +} + +BrowserContext *ExtensionsBrowserClientQt::GetRegularProfile(BrowserContext *context, bool, bool) +{ + // like in ShellExtensionsBrowserClient: + return context; +} + bool ExtensionsBrowserClientQt::IsGuestSession(BrowserContext *context) const { return context->IsOffTheRecord(); @@ -449,7 +464,8 @@ const ComponentExtensionResourceManager *ExtensionsBrowserClientQt::GetComponent void ExtensionsBrowserClientQt::BroadcastEventToRenderers(events::HistogramValue histogram_value, const std::string &event_name, - std::unique_ptr<base::ListValue> args, bool dispatch_to_off_the_record_profiles) + base::Value::List args, + bool dispatch_to_off_the_record_profiles) { NOTIMPLEMENTED(); // TODO : do the event routing diff --git a/src/core/extensions/extensions_browser_client_qt.h b/src/core/extensions/extensions_browser_client_qt.h index e111c1283..78b56d920 100644 --- a/src/core/extensions/extensions_browser_client_qt.h +++ b/src/core/extensions/extensions_browser_client_qt.h @@ -35,6 +35,9 @@ public: bool HasOffTheRecordContext(content::BrowserContext *context) override; content::BrowserContext *GetOffTheRecordContext(content::BrowserContext *context) override; content::BrowserContext *GetOriginalContext(content::BrowserContext *context) override; + content::BrowserContext *GetRedirectedContextInIncognito(content::BrowserContext *context, bool, bool) override; + content::BrowserContext *GetContextForRegularAndIncognito(content::BrowserContext *context, bool, bool) override; + content::BrowserContext *GetRegularProfile(content::BrowserContext *context, bool, bool) override; bool IsGuestSession(content::BrowserContext *context) const override; bool IsExtensionIncognitoEnabled(const std::string &extension_id, content::BrowserContext *context) const override; bool CanExtensionCrossIncognito(const Extension *extension, content::BrowserContext *context) const override; @@ -65,7 +68,7 @@ public: GetComponentExtensionResourceManager() override; void BroadcastEventToRenderers(events::HistogramValue histogram_value, const std::string &event_name, - std::unique_ptr<base::ListValue> args, + base::Value::List args, bool dispatch_to_off_the_record_profiles) override; ExtensionCache *GetExtensionCache() override; bool IsBackgroundUpdateAllowed() override; diff --git a/src/core/extensions/messaging_delegate_qt.cpp b/src/core/extensions/messaging_delegate_qt.cpp index 791949cb5..b0089aea2 100644 --- a/src/core/extensions/messaging_delegate_qt.cpp +++ b/src/core/extensions/messaging_delegate_qt.cpp @@ -11,10 +11,10 @@ MessagingDelegateQt::MessagingDelegateQt() { } -std::unique_ptr<base::DictionaryValue> MessagingDelegateQt::MaybeGetTabInfo(content::WebContents *web_contents) +absl::optional<base::Value::Dict> MessagingDelegateQt::MaybeGetTabInfo(content::WebContents *web_contents) { Q_UNUSED(web_contents); - return nullptr; + return absl::nullopt; } } // namespace extensions diff --git a/src/core/extensions/messaging_delegate_qt.h b/src/core/extensions/messaging_delegate_qt.h index f1d312544..c3c6244f5 100644 --- a/src/core/extensions/messaging_delegate_qt.h +++ b/src/core/extensions/messaging_delegate_qt.h @@ -22,7 +22,7 @@ public: MessagingDelegateQt(); // MessagingDelegate implementation. - std::unique_ptr<base::DictionaryValue> MaybeGetTabInfo(content::WebContents *web_contents) override; + absl::optional<base::Value::Dict> MaybeGetTabInfo(content::WebContents *web_contents) override; }; } // namespace extensions diff --git a/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp b/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp index a55294981..5a93b4b84 100644 --- a/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp +++ b/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp @@ -18,7 +18,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_user_data.h" #include "content/public/common/webplugininfo.h" -#include "net/base/escape.h" +#include "base/strings/escape.h" #include "net/http/http_response_headers.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" @@ -69,12 +69,12 @@ bool IsPDFPluginEnabled(content::NavigationHandle *navigation_handle, bool *is_s if (web_contents->IsInnerWebContentsForGuest()) web_contents = web_contents->GetOuterWebContents(); - int process_id = web_contents->GetMainFrame()->GetProcess()->GetID(); - int routing_id = web_contents->GetMainFrame()->GetRoutingID(); + int process_id = web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int routing_id = web_contents->GetPrimaryMainFrame()->GetRoutingID(); content::WebPluginInfo plugin_info; // Will check WebEngineSettings by PluginServiceFilterQt return content::PluginService::GetInstance()->GetPluginInfo( - process_id, routing_id, navigation_handle->GetURL(), + process_id, routing_id, nullptr, navigation_handle->GetURL(), kPDFMimeType, false /* allow_wildcard */, is_stale, &plugin_info, nullptr /* actual_mime_type */); @@ -85,12 +85,12 @@ std::string GetPDFPlaceholderHTML(const GURL &pdf_url) std::string template_html = ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(IDR_PDF_PLUGIN_HTML); webui::AppendWebUiCssTextDefaults(&template_html); - base::DictionaryValue values; - values.SetString("fileName", pdf_url.ExtractFileName()); - values.SetString("open", l10n_util::GetStringUTF8(IDS_ACCNAME_OPEN)); - values.SetString("pdfUrl", pdf_url.spec()); + base::Value::Dict values; + values.Set("fileName", pdf_url.ExtractFileName()); + values.Set("open", l10n_util::GetStringUTF8(IDS_ACCNAME_OPEN)); + values.Set("pdfUrl", pdf_url.spec()); - return webui::GetI18nTemplateHtml(template_html, &values); + return webui::GetI18nTemplateHtml(template_html, std::move(values)); } // static @@ -167,7 +167,7 @@ void PDFIFrameNavigationThrottleQt::LoadPlaceholderHTML() { // Prepare the params to navigate to the placeholder. std::string html = GetPDFPlaceholderHTML(navigation_handle()->GetURL()); - GURL data_url("data:text/html," + net::EscapePath(html)); + GURL data_url("data:text/html," + base::EscapePath(html)); content::OpenURLParams params = content::OpenURLParams::FromNavigationHandle(navigation_handle()); params.url = data_url; params.transition = ui::PAGE_TRANSITION_AUTO_SUBFRAME; diff --git a/src/core/extensions/plugin_service_filter_qt.cpp b/src/core/extensions/plugin_service_filter_qt.cpp index 9c66ea6c3..1f6c606bc 100644 --- a/src/core/extensions/plugin_service_filter_qt.cpp +++ b/src/core/extensions/plugin_service_filter_qt.cpp @@ -18,11 +18,12 @@ PluginServiceFilterQt *PluginServiceFilterQt::GetInstance() return base::Singleton<PluginServiceFilterQt>::get(); } -bool PluginServiceFilterQt::IsPluginAvailable(int render_process_id, - int render_frame_id, +bool PluginServiceFilterQt::IsPluginAvailable(int render_process_id, int render_frame_id, + content::BrowserContext *browser_context, const content::WebPluginInfo &plugin) { Q_UNUSED(plugin); + Q_UNUSED(browser_context); content::RenderFrameHost *frame_host = content::RenderFrameHost::FromID(render_process_id, render_frame_id); content::WebContents *web_contents = content::WebContents::FromRenderFrameHost(frame_host); if (!web_contents) { diff --git a/src/core/extensions/plugin_service_filter_qt.h b/src/core/extensions/plugin_service_filter_qt.h index e26a71d68..d171edfde 100644 --- a/src/core/extensions/plugin_service_filter_qt.h +++ b/src/core/extensions/plugin_service_filter_qt.h @@ -14,8 +14,8 @@ class PluginServiceFilterQt : public content::PluginServiceFilter { public: static PluginServiceFilterQt* GetInstance(); - bool IsPluginAvailable(int render_process_id, - int render_frame_id, + bool IsPluginAvailable(int render_process_id, int render_frame_id, + content::BrowserContext *browser_context, const content::WebPluginInfo &plugin) override; bool CanLoadPlugin(int render_process_id, |
