summaryrefslogtreecommitdiffstats
path: root/src/core/extensions
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2024-06-11 13:21:32 +0300
committerTarja Sundqvist <tarja.sundqvist@qt.io>2024-06-11 13:31:01 +0300
commit3cd4e0aa7961889eb06374885ed648f5b9bd85bc (patch)
tree6a089aedea155b1f1a74b553f4d1b57c70554a8f /src/core/extensions
parent6d029165d1593c514db08c34d6b08a00a4435d5e (diff)
parent38063a6332b9f948a0381763271e9a9ac7af0999 (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')
-rw-r--r--src/core/extensions/component_extension_resource_manager_qt.cpp6
-rw-r--r--src/core/extensions/extension_system_qt.cpp9
-rw-r--r--src/core/extensions/extension_web_contents_observer_qt.cpp13
-rw-r--r--src/core/extensions/extensions_browser_client_qt.cpp26
-rw-r--r--src/core/extensions/extensions_browser_client_qt.h5
-rw-r--r--src/core/extensions/messaging_delegate_qt.cpp4
-rw-r--r--src/core/extensions/messaging_delegate_qt.h2
-rw-r--r--src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp20
-rw-r--r--src/core/extensions/plugin_service_filter_qt.cpp5
-rw-r--r--src/core/extensions/plugin_service_filter_qt.h4
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,