summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-30 11:41:51 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-01-06 00:00:55 +0100
commit5121effa745cf88b6d50630249570113941c2ca2 (patch)
tree632ed3f3324667366ced2329459f9ca6205941af /src
parent5836832dfde5687dae5762509e560e1c7f2258ce (diff)
Adaptations for 108-based
Pick-to: 6.5 Fixes: QTBUG-105147 Change-Id: I0022964903f3443cc97843c62468ab9be8ae2ed8 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt10
-rw-r--r--src/core/accessibility_tree_formatter_qt.cpp41
-rw-r--r--src/core/autofill_client_qt.cpp2
-rw-r--r--src/core/autofill_popup_controller.cpp5
-rw-r--r--src/core/browser_accessibility_manager_qt.cpp14
-rw-r--r--src/core/browser_accessibility_manager_qt.h4
-rw-r--r--src/core/browser_accessibility_qt.cpp2
-rw-r--r--src/core/client_hints.cpp9
-rw-r--r--src/core/client_hints.h8
-rw-r--r--src/core/compositor/vulkan_implementation_qt.cpp7
-rw-r--r--src/core/compositor/vulkan_implementation_qt.h8
-rw-r--r--src/core/configure/BUILD.root.gn.in6
-rw-r--r--src/core/content_browser_client_qt.cpp3
-rw-r--r--src/core/content_browser_client_qt.h3
-rw-r--r--src/core/content_client_qt.cpp17
-rw-r--r--src/core/content_client_qt.h2
-rw-r--r--src/core/devtools_frontend_qt.cpp2
-rw-r--r--src/core/extensions/component_extension_resource_manager_qt.cpp6
-rw-r--r--src/core/extensions/extensions_browser_client_qt.cpp20
-rw-r--r--src/core/extensions/extensions_browser_client_qt.h3
-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/file_picker_controller.cpp13
-rw-r--r--src/core/file_system_access/file_system_access_permission_context_qt.cpp10
-rw-r--r--src/core/file_system_access/file_system_access_permission_context_qt.h6
-rw-r--r--src/core/media_capture_devices_dispatcher.cpp1
-rw-r--r--src/core/net/custom_url_loader_factory.cpp4
-rw-r--r--src/core/net/proxying_url_loader_factory_qt.cpp12
-rw-r--r--src/core/net/webui_controller_factory_qt.cpp2
-rw-r--r--src/core/ozone/gl_surface_qt.cpp2
-rw-r--r--src/core/ozone/gl_surface_qt.h2
-rw-r--r--src/core/ozone/ozone_platform_qt.cpp1
-rw-r--r--src/core/pref_service_adapter.cpp4
-rw-r--r--src/core/printing/pdf_web_contents_helper_client_qt.cpp13
-rw-r--r--src/core/printing/pdf_web_contents_helper_client_qt.h4
-rw-r--r--src/core/printing/print_view_manager_base_qt.cpp6
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp29
-rw-r--r--src/core/renderer/content_renderer_client_qt.h3
-rw-r--r--src/core/renderer/extensions/extensions_renderer_client_qt.cpp7
-rw-r--r--src/core/renderer/extensions/extensions_renderer_client_qt.h3
-rw-r--r--src/core/renderer_host/web_channel_ipc_transport_host.cpp20
-rw-r--r--src/core/sandbox_win.cpp4
-rw-r--r--src/core/select_file_dialog_factory_qt.cpp6
-rw-r--r--src/core/user_script.cpp2
-rw-r--r--src/core/web_contents_adapter.cpp12
-rw-r--r--src/core/web_contents_delegate_qt.cpp6
-rw-r--r--src/core/web_contents_delegate_qt.h2
-rw-r--r--src/core/web_contents_view_qt.cpp3
-rw-r--r--src/core/web_contents_view_qt.h2
-rw-r--r--src/core/web_engine_context.cpp2
-rw-r--r--src/pdf/configure/BUILD.root.gn.in6
51 files changed, 220 insertions, 145 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index f5cb6e04d..c0522869d 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -382,11 +382,16 @@ foreach(arch ${archs})
if(LINUX)
list(APPEND gnArgArg
+ use_gtk=false # GTK toolkit bindings
+ use_qt=false # Qt5 toolkit bindings
use_cups=false
use_gio=false
use_gnome_keyring=false
- use_udev=true
use_bundled_fontconfig=false
+ use_glib=false
+ use_bluez=false
+ use_vaapi=false
+ use_udev=true
enable_session_service=false
is_cfi=false
use_ozone=true
@@ -395,9 +400,6 @@ foreach(arch ${archs})
ozone_platform_external=true
ozone_platform="qt"
ozone_extra_path="${CMAKE_CURRENT_LIST_DIR}/ozone/ozone_extra.gni"
- use_glib=false
- use_bluez=false
- use_vaapi=false
)
set(systemLibs libjpeg libpng freetype harfbuzz libevent libwebp libxml
opus snappy libvpx icu ffmpeg re2 lcms2
diff --git a/src/core/accessibility_tree_formatter_qt.cpp b/src/core/accessibility_tree_formatter_qt.cpp
index c85605654..021ef0546 100644
--- a/src/core/accessibility_tree_formatter_qt.cpp
+++ b/src/core/accessibility_tree_formatter_qt.cpp
@@ -24,16 +24,16 @@ public:
explicit AccessibilityTreeFormatterQt();
~AccessibilityTreeFormatterQt() override;
- base::Value BuildTree(ui::AXPlatformNodeDelegate *start) const override;
- base::Value BuildTreeForSelector(const AXTreeSelector &selector) const override
+ base::Value::Dict BuildTree(ui::AXPlatformNodeDelegate *start) const override;
+ base::Value::Dict BuildTreeForSelector(const AXTreeSelector &selector) const override
{
- return base::Value{};
+ return base::Value::Dict{};
}
private:
void RecursiveBuildAccessibilityTree(const BrowserAccessibility &node, base::Value::Dict *dict) const;
void AddProperties(const BrowserAccessibility &node, base::Value::Dict *dict) const;
- std::string ProcessTreeForOutput(const base::DictionaryValue &node) const override;
+ std::string ProcessTreeForOutput(const base::Value::Dict &node) const override;
};
AccessibilityTreeFormatterQt::AccessibilityTreeFormatterQt()
@@ -44,13 +44,13 @@ AccessibilityTreeFormatterQt::~AccessibilityTreeFormatterQt()
{
}
-base::Value AccessibilityTreeFormatterQt::BuildTree(ui::AXPlatformNodeDelegate *start) const
+base::Value::Dict AccessibilityTreeFormatterQt::BuildTree(ui::AXPlatformNodeDelegate *start) const
{
BrowserAccessibility *root_internal =
BrowserAccessibility::FromAXPlatformNodeDelegate(start);
base::Value::Dict dict;
RecursiveBuildAccessibilityTree(*root_internal, &dict);
- return base::Value(std::move(dict));
+ return dict;
}
void AccessibilityTreeFormatterQt::RecursiveBuildAccessibilityTree(const BrowserAccessibility &node, base::Value::Dict *dict) const
@@ -135,36 +135,33 @@ void AccessibilityTreeFormatterQt::AddProperties(const BrowserAccessibility &nod
dict->Set("description", iface->text(QAccessible::Description).toStdString());
}
-std::string AccessibilityTreeFormatterQt::ProcessTreeForOutput(const base::DictionaryValue &node) const
+std::string AccessibilityTreeFormatterQt::ProcessTreeForOutput(const base::Value::Dict &node) const
{
std::string error_value;
- if (node.GetString("error", &error_value))
- return error_value;
+ if (auto error_value = node.FindString("error"))
+ return *error_value;
std::string line;
std::string role_value;
- node.GetString("role", &role_value);
- if (!role_value.empty())
- WriteAttribute(true, base::StringPrintf("%s", role_value.c_str()), &line);
+ if (auto role_value = node.FindString("role"))
+ WriteAttribute(true, base::StringPrintf("%s", role_value->c_str()), &line);
- const base::ListValue *states_value = nullptr;
- if (node.GetList("states", &states_value)) {
- for (const auto &state : states_value->GetList()) {
+ if (const auto states_value = node.FindList("states")) {
+ for (const auto &state : *states_value) {
if (auto *state_value = state.GetIfString())
WriteAttribute(false, *state_value, &line);
}
}
- std::string name_value;
- if (node.GetString("name", &name_value))
- WriteAttribute(true, base::StringPrintf("name='%s'", name_value.c_str()), &line);
+ if (auto name_value = node.FindString("name"))
+ WriteAttribute(true, base::StringPrintf("name='%s'", name_value->c_str()), &line);
- std::string description_value;
- if (node.GetString("description", &description_value))
- WriteAttribute(false, base::StringPrintf("description='%s'", description_value.c_str()), &line);
+ if (auto description_value = node.FindString("description"))
+ WriteAttribute(false, base::StringPrintf("description='%s'", description_value->c_str()), &line);
int id_value;
- node.GetInteger("id", &id_value);
+ if (auto maybe_id = node.FindInt("id"))
+ id_value = *maybe_id;
WriteAttribute(false, base::StringPrintf("id=%d", id_value), &line);
return line + "\n";
diff --git a/src/core/autofill_client_qt.cpp b/src/core/autofill_client_qt.cpp
index 01b5be768..aaf775d60 100644
--- a/src/core/autofill_client_qt.cpp
+++ b/src/core/autofill_client_qt.cpp
@@ -39,7 +39,7 @@ autofill::AutocompleteHistoryManager *AutofillClientQt::GetAutocompleteHistoryMa
PrefService *AutofillClientQt::GetPrefs()
{
- return const_cast<PrefService *>(base::as_const(*this).GetPrefs());
+ return const_cast<PrefService *>(std::as_const(*this).GetPrefs());
}
const PrefService *AutofillClientQt::GetPrefs() const
diff --git a/src/core/autofill_popup_controller.cpp b/src/core/autofill_popup_controller.cpp
index f13188a99..6e5890e47 100644
--- a/src/core/autofill_popup_controller.cpp
+++ b/src/core/autofill_popup_controller.cpp
@@ -26,7 +26,7 @@ void AutofillPopupController::setCurrentIndex(const QModelIndex &index)
if (m_currentIndex.isValid()) {
const autofill::Suggestion &suggestion = d->suggestions[m_currentIndex.row()];
- d->delegate->DidSelectSuggestion(suggestion.main_text.value, suggestion.frontend_id, suggestion.GetPayload<std::string>());
+ d->delegate->DidSelectSuggestion(suggestion.main_text.value, suggestion.frontend_id, autofill::Suggestion::BackendId());
}
Q_EMIT currentIndexChanged(index);
@@ -79,8 +79,7 @@ void AutofillPopupController::acceptSuggestion()
const int index = m_currentIndex.row();
const autofill::Suggestion &suggestion = d->suggestions[index];
- d->delegate->DidAcceptSuggestion(suggestion.main_text.value, suggestion.frontend_id,
- suggestion.payload, index);
+ d->delegate->DidAcceptSuggestion(suggestion, index);
}
void AutofillPopupController::notifyPopupShown()
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 7c16d54a0..205ca6edf 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -24,7 +24,7 @@ namespace content {
// static
BrowserAccessibilityManager *BrowserAccessibilityManager::Create(
const ui::AXTreeUpdate &initialTree,
- BrowserAccessibilityDelegate *delegate)
+ WebAXPlatformTreeManagerDelegate *delegate)
{
#if QT_CONFIG(accessibility)
Q_ASSERT(delegate);
@@ -49,7 +49,7 @@ BrowserAccessibilityManager *BrowserAccessibilityManager::Create(
// static
BrowserAccessibilityManager *BrowserAccessibilityManager::Create(
- BrowserAccessibilityDelegate *delegate)
+ WebAXPlatformTreeManagerDelegate *delegate)
{
#if QT_CONFIG(accessibility)
return BrowserAccessibilityManager::Create(BrowserAccessibilityManagerQt::GetEmptyDocument(), delegate);
@@ -62,7 +62,7 @@ BrowserAccessibilityManager *BrowserAccessibilityManager::Create(
BrowserAccessibilityManagerQt::BrowserAccessibilityManagerQt(
QtWebEngineCore::WebContentsAccessibilityQt *webContentsAccessibility,
const ui::AXTreeUpdate &initialTree,
- BrowserAccessibilityDelegate* delegate)
+ WebAXPlatformTreeManagerDelegate* delegate)
: BrowserAccessibilityManager(delegate)
, m_webContentsAccessibility(webContentsAccessibility)
{
@@ -148,9 +148,13 @@ void BrowserAccessibilityManagerQt::FireBlinkEvent(ax::mojom::Event event_type,
}
void BrowserAccessibilityManagerQt::FireGeneratedEvent(ui::AXEventGenerator::Event event_type,
- BrowserAccessibility* node)
+ const ui::AXNode *node)
{
- auto *iface = toQAccessibleInterface(node);
+ BrowserAccessibilityManager::FireGeneratedEvent(event_type, node);
+
+ BrowserAccessibility *wrapper = GetFromAXNode(node);
+ DCHECK(wrapper);
+ auto *iface = toQAccessibleInterface(wrapper);
switch (event_type) {
case ui::AXEventGenerator::Event::VALUE_IN_TEXT_FIELD_CHANGED:
diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h
index 6cd3c84de..839f6da20 100644
--- a/src/core/browser_accessibility_manager_qt.h
+++ b/src/core/browser_accessibility_manager_qt.h
@@ -24,13 +24,13 @@ class BrowserAccessibilityManagerQt : public BrowserAccessibilityManager
public:
BrowserAccessibilityManagerQt(QtWebEngineCore::WebContentsAccessibilityQt *webContentsAccessibility,
const ui::AXTreeUpdate &initialTree,
- BrowserAccessibilityDelegate *delegate);
+ WebAXPlatformTreeManagerDelegate *delegate);
~BrowserAccessibilityManagerQt() override;
void FireBlinkEvent(ax::mojom::Event event_type,
BrowserAccessibility *node,
int action_request_id) override;
void FireGeneratedEvent(ui::AXEventGenerator::Event event_type,
- BrowserAccessibility* node) override;
+ const ui::AXNode *node) override;
QAccessibleInterface *rootParentAccessible();
bool isValid() const { return m_valid; }
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index dd40eaf49..7c9111c56 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -357,6 +357,8 @@ QAccessible::Role BrowserAccessibilityInterface::role() const
case ax::mojom::Role::kComboBoxMenuButton:
case ax::mojom::Role::kTextFieldWithComboBox:
return QAccessible::ComboBox;
+ case ax::mojom::Role::kComboBoxSelect:
+ return QAccessible::PopupMenu;
case ax::mojom::Role::kComplementary:
return QAccessible::ComplementaryContent;
case ax::mojom::Role::kComment:
diff --git a/src/core/client_hints.cpp b/src/core/client_hints.cpp
index f80fa5797..2a30bb51b 100644
--- a/src/core/client_hints.cpp
+++ b/src/core/client_hints.cpp
@@ -161,4 +161,13 @@ blink::UserAgentMetadata ClientHints::GetUserAgentMetadata()
return embedder_support::GetUserAgentMetadata();
}
+void ClientHints::SetMostRecentMainFrameViewportSize(
+ const gfx::Size& viewport_size) {
+ viewport_size_ = viewport_size;
+}
+
+gfx::Size
+ClientHints::GetMostRecentMainFrameViewportSize() {
+ return viewport_size_;
+}
} // namespace
diff --git a/src/core/client_hints.h b/src/core/client_hints.h
index 841f41993..a80629fc9 100644
--- a/src/core/client_hints.h
+++ b/src/core/client_hints.h
@@ -70,6 +70,9 @@ public:
void ClearAdditionalClientHints() override;
+ void SetMostRecentMainFrameViewportSize(const gfx::Size&) override;
+ gfx::Size GetMostRecentMainFrameViewportSize() override;
+
private:
SEQUENCE_CHECKER(sequence_checker_);
@@ -87,6 +90,11 @@ private:
std::unique_ptr<network::NetworkQualityTracker> network_quality_tracker_
GUARDED_BY_CONTEXT(sequence_checker_);
+
+ // This stores the viewport size of the most recent visible main frame tree
+ // node. This value is only used when the viewport size cannot be directly
+ // queried such as for prefetch requests and for tab restores.
+ gfx::Size viewport_size_;
};
} // namespace QtWebEngineCore
diff --git a/src/core/compositor/vulkan_implementation_qt.cpp b/src/core/compositor/vulkan_implementation_qt.cpp
index 3090a945a..f24ec334b 100644
--- a/src/core/compositor/vulkan_implementation_qt.cpp
+++ b/src/core/compositor/vulkan_implementation_qt.cpp
@@ -142,10 +142,9 @@ bool VulkanImplementationQt::CanImportGpuMemoryBuffer(
return false;
}
-std::unique_ptr<VulkanImage>
-VulkanImplementationQt::CreateImageFromGpuMemoryHandle(VulkanDeviceQueue * /*device_queue*/,
- gfx::GpuMemoryBufferHandle /*gmb_handle*/,
- gfx::Size /*size*/, VkFormat /*vk_format*/)
+std::unique_ptr<VulkanImage> VulkanImplementationQt::CreateImageFromGpuMemoryHandle(VulkanDeviceQueue *, gfx::GpuMemoryBufferHandle,
+ gfx::Size, VkFormat,
+ const gfx::ColorSpace &)
{
NOTREACHED();
return nullptr;
diff --git a/src/core/compositor/vulkan_implementation_qt.h b/src/core/compositor/vulkan_implementation_qt.h
index db48acead..56a61e086 100644
--- a/src/core/compositor/vulkan_implementation_qt.h
+++ b/src/core/compositor/vulkan_implementation_qt.h
@@ -34,10 +34,10 @@ public:
VkExternalMemoryHandleTypeFlagBits GetExternalImageHandleType() override;
bool CanImportGpuMemoryBuffer(VulkanDeviceQueue* device_queue,
gfx::GpuMemoryBufferType memory_buffer_type) override;
- std::unique_ptr<VulkanImage>
- CreateImageFromGpuMemoryHandle(VulkanDeviceQueue *device_queue,
- gfx::GpuMemoryBufferHandle gmb_handle, gfx::Size size,
- VkFormat vk_format) override;
+ std::unique_ptr<VulkanImage> CreateImageFromGpuMemoryHandle(VulkanDeviceQueue *device_queue,
+ gfx::GpuMemoryBufferHandle gmb_handle,
+ gfx::Size size, VkFormat vk_format,
+ const gfx::ColorSpace &color_space) override;
private:
VulkanInstance vulkan_instance_;
diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in
index bf0454863..71e188a76 100644
--- a/src/core/configure/BUILD.root.gn.in
+++ b/src/core/configure/BUILD.root.gn.in
@@ -368,7 +368,7 @@ source_set("qtwebengine_sources") {
"//extensions/common/url_pattern.h",
]
}
- if (is_linux) {
+ if (is_linux || is_win) {
sources += [
"//chrome/browser/ui/webui/sandbox/sandbox_internals_ui.cc",
"//chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h",
@@ -378,6 +378,8 @@ source_set("qtwebengine_sources") {
sources += [
"//chrome/browser/net/chrome_mojo_proxy_resolver_win.cc",
"//chrome/browser/net/chrome_mojo_proxy_resolver_win.h",
+ "//chrome/browser/ui/webui/sandbox/sandbox_handler.cc",
+ "//chrome/browser/ui/webui/sandbox/sandbox_handler.h",
]
deps += [ "//services/proxy_resolver_win",
"//services/proxy_resolver_win/public/mojom",
@@ -508,6 +510,7 @@ repack("qtwebengine_repack_resources") {
"$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
+ "$root_gen_dir/content/indexed_db_resources.pak",
"$root_gen_dir/content/quota_internals_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
"$root_gen_dir/net/net_resources.pak",
@@ -525,6 +528,7 @@ repack("qtwebengine_repack_resources") {
"//content/browser/resources/media:resources",
"//content/browser/tracing:resources",
"//content:content_resources",
+ "//content/browser/resources/indexed_db:resources",
"//content/browser/resources/quota:resources",
"//content:dev_ui_content_resources_grit",
"//mojo/public/js:resources",
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 075530bdd..553228ffc 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -1231,8 +1231,7 @@ bool ContentBrowserClientQt::WillCreateURLLoaderFactory(
std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>>
ContentBrowserClientQt::WillCreateURLLoaderRequestInterceptors(content::NavigationUIData* navigation_ui_data,
- int frame_tree_node_id,
- const scoped_refptr<network::SharedURLLoaderFactory>& network_loader_factory)
+ int frame_tree_node_id)
{
std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>> interceptors;
#if BUILDFLAG(ENABLE_PDF) && BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index cb0fbe46c..b81b96ce1 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -193,8 +193,7 @@ public:
const std::string &scheme) override;
std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>>
WillCreateURLLoaderRequestInterceptors(content::NavigationUIData *navigation_ui_data,
- int frame_tree_node_id,
- const scoped_refptr<network::SharedURLLoaderFactory> &network_loader_factory) override;
+ int frame_tree_node_id) override;
bool WillCreateURLLoaderFactory(content::BrowserContext *browser_context,
content::RenderFrameHost *frame,
int render_process_id,
diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp
index 67faabde8..4a67dc029 100644
--- a/src/core/content_client_qt.cpp
+++ b/src/core/content_client_qt.cpp
@@ -50,8 +50,8 @@ const char kWidevineCdmFileName[] =
#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS)
#if QT_CONFIG(webengine_printing_and_pdf)
+#include "components/pdf/common/internal_plugin_helpers.h"
#include "pdf/pdf.h"
-const char kPdfPluginMimeType[] = "application/x-google-chrome-pdf";
const char kPdfPluginPath[] = "internal-pdf-viewer";
#endif // QT_CONFIG(webengine_printing_and_pdf)
@@ -98,7 +98,7 @@ static QString getProgramFilesDir(bool x86Dir = false)
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE.Chromium file.
-#include "content/public/common/pepper_plugin_info.h"
+#include "content/public/common/content_plugin_info.h"
#include "ppapi/shared_impl/ppapi_permissions.h"
static QString ppapiPluginsPath()
@@ -114,16 +114,19 @@ static QString ppapiPluginsPath()
return potentialPluginsPath;
}
-void ComputeBuiltInPlugins(std::vector<content::PepperPluginInfo>* plugins)
+void ComputeBuiltInPlugins(std::vector<content::ContentPluginInfo> *plugins)
{
#if QT_CONFIG(webengine_printing_and_pdf)
- content::PepperPluginInfo pdf_info;
+ static constexpr char kPDFPluginExtension[] = "pdf";
+ static constexpr char kPDFPluginDescription[] = "Portable Document Format";
+ content::ContentPluginInfo pdf_info;
pdf_info.is_internal = true;
pdf_info.is_out_of_process = true;
pdf_info.name = "Chromium PDF Viewer";
- pdf_info.description = "Portable Document Format";
+ pdf_info.description = kPDFPluginDescription;
pdf_info.path = base::FilePath::FromUTF8Unsafe(kPdfPluginPath);
- content::WebPluginMimeType pdf_mime_type(kPdfPluginMimeType, "pdf", "Portable Document Format");
+ content::WebPluginMimeType pdf_mime_type(
+ pdf::kInternalPluginMimeType, kPDFPluginExtension, kPDFPluginDescription);
pdf_info.mime_types.push_back(pdf_mime_type);
plugins->push_back(pdf_info);
#endif // QT_CONFIG(webengine_printing_and_pdf)
@@ -131,7 +134,7 @@ void ComputeBuiltInPlugins(std::vector<content::PepperPluginInfo>* plugins)
namespace QtWebEngineCore {
-void ContentClientQt::AddPepperPlugins(std::vector<content::PepperPluginInfo>* plugins)
+void ContentClientQt::AddPlugins(std::vector<content::ContentPluginInfo> *plugins)
{
ComputeBuiltInPlugins(plugins);
}
diff --git a/src/core/content_client_qt.h b/src/core/content_client_qt.h
index f0afdcb58..92d41b748 100644
--- a/src/core/content_client_qt.h
+++ b/src/core/content_client_qt.h
@@ -14,7 +14,7 @@ namespace QtWebEngineCore {
class ContentClientQt : public content::ContentClient {
public:
#if QT_CONFIG(webengine_pepper_plugins)
- void AddPepperPlugins(std::vector<content::PepperPluginInfo>* plugins) override;
+ void AddPlugins(std::vector<content::ContentPluginInfo> *plugins) override;
#endif
void AddContentDecryptionModules(std::vector<content::CdmInfo> *cdms,
std::vector<media::CdmHostFilePath> *cdm_host_file_paths) override;
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp
index cda922ffa..73698e263 100644
--- a/src/core/devtools_frontend_qt.cpp
+++ b/src/core/devtools_frontend_qt.cpp
@@ -316,7 +316,7 @@ void DevToolsFrontendQt::WebContentsDestroyed()
void DevToolsFrontendQt::SetPreference(const std::string &name, const std::string &value)
{
DCHECK(m_prefStore);
- m_prefStore->SetValue(name, base::WrapUnique(new base::Value(value)), 0);
+ m_prefStore->SetValue(name, base::Value(value), 0);
}
void DevToolsFrontendQt::RemovePreference(const std::string &name)
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/extensions_browser_client_qt.cpp b/src/core/extensions/extensions_browser_client_qt.cpp
index df720987a..ab44c23eb 100644
--- a/src/core/extensions/extensions_browser_client_qt.cpp
+++ b/src/core/extensions/extensions_browser_client_qt.cpp
@@ -166,7 +166,7 @@ private:
if (!head->mime_type.empty()) {
head->headers->AddHeader(net::HttpRequestHeaders::kContentType, head->mime_type.c_str());
}
- client_->OnReceiveResponse(std::move(head), 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);
@@ -291,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();
diff --git a/src/core/extensions/extensions_browser_client_qt.h b/src/core/extensions/extensions_browser_client_qt.h
index a5a35175c..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;
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/file_picker_controller.cpp b/src/core/file_picker_controller.cpp
index f1b843e8a..e69db7553 100644
--- a/src/core/file_picker_controller.cpp
+++ b/src/core/file_picker_controller.cpp
@@ -179,11 +179,14 @@ void FilePickerController::filesSelectedInChooser(const QStringList &filesList)
if (d_ptr->fileDialogListener) {
QStringList files(filesList);
base::FilePath baseDir;
- if (d_ptr->mode == UploadFolder && !filesList.isEmpty()
- && QFileInfo(filesList.first()).isDir()) {
- // Enumerate the directory
- files = listRecursively(QDir(filesList.first()));
- baseDir = toFilePath(filesList.first());
+ if (d_ptr->mode == UploadFolder && !filesList.isEmpty()) {
+ if (QFileInfo(filesList.first()).isDir()) {
+ // Enumerate the directory
+ files = listRecursively(QDir(filesList.first()));
+ baseDir = toFilePath(filesList.first());
+ } else {
+ baseDir = toFilePath(filesList.first()).DirName();
+ }
}
std::vector<blink::mojom::FileChooserFileInfoPtr> chooser_files;
diff --git a/src/core/file_system_access/file_system_access_permission_context_qt.cpp b/src/core/file_system_access/file_system_access_permission_context_qt.cpp
index 6144aa9ea..a8406c8ae 100644
--- a/src/core/file_system_access/file_system_access_permission_context_qt.cpp
+++ b/src/core/file_system_access/file_system_access_permission_context_qt.cpp
@@ -258,7 +258,7 @@ FileSystemAccessPermissionContextQt::GetWritePermissionGrant(const url::Origin &
void FileSystemAccessPermissionContextQt::ConfirmSensitiveEntryAccess(
const url::Origin &origin, PathType path_type, const base::FilePath &path,
- HandleType handle_type, ui::SelectFileDialog::Type dialog_type,
+ HandleType handle_type, UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
base::OnceCallback<void(SensitiveEntryResult)> callback)
{
@@ -271,7 +271,7 @@ void FileSystemAccessPermissionContextQt::ConfirmSensitiveEntryAccess(
FROM_HERE, { base::MayBlock(), base::TaskPriority::USER_VISIBLE },
base::BindOnce(&ShouldBlockAccessToPath, path, handle_type),
base::BindOnce(&FileSystemAccessPermissionContextQt::DidConfirmSensitiveDirectoryAccess,
- m_weakFactory.GetWeakPtr(), origin, path, handle_type, dialog_type, frame_id,
+ m_weakFactory.GetWeakPtr(), origin, path, handle_type, user_action, frame_id,
std::move(callback)));
}
@@ -322,7 +322,7 @@ FileSystemAccessPermissionContextQt::GetLastPickedDirectory(const url::Origin &o
}
base::FilePath FileSystemAccessPermissionContextQt::GetWellKnownDirectoryPath(
- blink::mojom::WellKnownDirectory directory)
+ blink::mojom::WellKnownDirectory directory, const url::Origin &origin)
{
QStandardPaths::StandardLocation location = QStandardPaths::DocumentsLocation;
switch (directory) {
@@ -378,14 +378,14 @@ void FileSystemAccessPermissionContextQt::NavigatedAwayFromOrigin(const url::Ori
}
void FileSystemAccessPermissionContextQt::DidConfirmSensitiveDirectoryAccess(
- const url::Origin &origin, const base::FilePath &path, HandleType handle_type, ui::SelectFileDialog::Type dialog_type,
+ const url::Origin &origin, const base::FilePath &path, HandleType handle_type, UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
base::OnceCallback<void(SensitiveEntryResult)> callback, bool should_block)
{
Q_UNUSED(origin);
Q_UNUSED(path);
Q_UNUSED(handle_type);
- Q_UNUSED(dialog_type);
+ Q_UNUSED(user_action);
Q_UNUSED(frame_id);
if (should_block)
diff --git a/src/core/file_system_access/file_system_access_permission_context_qt.h b/src/core/file_system_access/file_system_access_permission_context_qt.h
index affe141bc..713239525 100644
--- a/src/core/file_system_access/file_system_access_permission_context_qt.h
+++ b/src/core/file_system_access/file_system_access_permission_context_qt.h
@@ -38,7 +38,7 @@ public:
HandleType handle_type, UserAction user_action) override;
void ConfirmSensitiveEntryAccess(
const url::Origin &origin, PathType path_type, const base::FilePath &path,
- HandleType handle_type, ui::SelectFileDialog::Type dialog_type,
+ HandleType handle_type, UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
base::OnceCallback<void(SensitiveEntryResult)> callback) override;
void PerformAfterWriteChecks(std::unique_ptr<content::FileSystemAccessWriteItem> item,
@@ -50,7 +50,7 @@ public:
const base::FilePath &path, const PathType type) override;
FileSystemAccessPermissionContextQt::PathInfo
GetLastPickedDirectory(const url::Origin &origin, const std::string &id) override;
- base::FilePath GetWellKnownDirectoryPath(blink::mojom::WellKnownDirectory directory) override;
+ base::FilePath GetWellKnownDirectoryPath(blink::mojom::WellKnownDirectory directory, const url::Origin &origin) override;
std::u16string GetPickerTitle(const blink::mojom::FilePickerOptionsPtr &) override;
void NavigatedAwayFromOrigin(const url::Origin &origin);
@@ -61,7 +61,7 @@ private:
void DidConfirmSensitiveDirectoryAccess(
const url::Origin &origin, const base::FilePath &path, HandleType handle_type,
- ui::SelectFileDialog::Type dialog_type, content::GlobalRenderFrameHostId frame_id,
+ UserAction user_action, content::GlobalRenderFrameHostId frame_id,
base::OnceCallback<void(SensitiveEntryResult)> callback, bool should_block);
content::BrowserContext *m_profile;
diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp
index f8baf72a5..a6ac070af 100644
--- a/src/core/media_capture_devices_dispatcher.cpp
+++ b/src/core/media_capture_devices_dispatcher.cpp
@@ -14,6 +14,7 @@
#include "base/strings/strcat.h"
#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/desktop_media_id.h"
#include "content/public/browser/desktop_streams_registry.h"
diff --git a/src/core/net/custom_url_loader_factory.cpp b/src/core/net/custom_url_loader_factory.cpp
index e35f1afb5..19a1a884f 100644
--- a/src/core/net/custom_url_loader_factory.cpp
+++ b/src/core/net/custom_url_loader_factory.cpp
@@ -285,7 +285,7 @@ private:
m_head->mime_type = m_mimeType;
m_head->charset = m_charset;
m_headerBytesRead = m_head->headers->raw_headers().length();
- m_client->OnReceiveResponse(std::move(m_head), std::move(m_pipeConsumerHandle));
+ m_client->OnReceiveResponse(std::move(m_head), std::move(m_pipeConsumerHandle), absl::nullopt);
m_head = nullptr;
m_watcher = std::make_unique<mojo::SimpleWatcher>(
@@ -335,7 +335,7 @@ private:
m_head->headers = base::MakeRefCounted<net::HttpResponseHeaders>(net::HttpUtil::AssembleRawHeaders(headers));
m_head->encoded_data_length = m_head->headers->raw_headers().length();
m_head->content_length = m_head->encoded_body_length = -1;
- m_client->OnReceiveResponse(std::move(m_head), mojo::ScopedDataPipeConsumerHandle());
+ m_client->OnReceiveResponse(std::move(m_head), mojo::ScopedDataPipeConsumerHandle(), absl::nullopt);
CompleteWithFailure(net::Error(error));
}
void notifyReadyRead() override
diff --git a/src/core/net/proxying_url_loader_factory_qt.cpp b/src/core/net/proxying_url_loader_factory_qt.cpp
index 2edf915c8..70ec61b34 100644
--- a/src/core/net/proxying_url_loader_factory_qt.cpp
+++ b/src/core/net/proxying_url_loader_factory_qt.cpp
@@ -110,10 +110,9 @@ public:
void Restart();
// network::mojom::URLLoaderClient
- void OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle) override;
+ void OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle, absl::optional<mojo_base::BigBuffer>) override;
void OnReceiveRedirect(const net::RedirectInfo &redirect_info, network::mojom::URLResponseHeadPtr head) override;
void OnUploadProgress(int64_t current_position, int64_t total_size, OnUploadProgressCallback callback) override;
- void OnReceiveCachedMetadata(mojo_base::BigBuffer data) override;
void OnTransferSizeUpdated(int32_t transfer_size_diff) override;
void OnComplete(const network::URLLoaderCompletionStatus &status) override;
void OnReceiveEarlyHints(network::mojom::EarlyHintsPtr) override {}
@@ -403,11 +402,11 @@ void InterceptedRequest::ContinueAfterIntercept()
// URLLoaderClient methods.
-void InterceptedRequest::OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle handle)
+void InterceptedRequest::OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle handle, absl::optional<mojo_base::BigBuffer> buffer)
{
current_response_ = head.Clone();
- target_client_->OnReceiveResponse(std::move(head), std::move(handle));
+ target_client_->OnReceiveResponse(std::move(head), std::move(handle), std::move(buffer));
}
void InterceptedRequest::OnReceiveRedirect(const net::RedirectInfo &redirect_info, network::mojom::URLResponseHeadPtr head)
@@ -427,11 +426,6 @@ void InterceptedRequest::OnUploadProgress(int64_t current_position, int64_t tota
target_client_->OnUploadProgress(current_position, total_size, std::move(callback));
}
-void InterceptedRequest::OnReceiveCachedMetadata(mojo_base::BigBuffer data)
-{
- target_client_->OnReceiveCachedMetadata(std::move(data));
-}
-
void InterceptedRequest::OnTransferSizeUpdated(int32_t transfer_size_diff)
{
target_client_->OnTransferSizeUpdated(transfer_size_diff);
diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp
index 66491e019..0551d9be7 100644
--- a/src/core/net/webui_controller_factory_qt.cpp
+++ b/src/core/net/webui_controller_factory_qt.cpp
@@ -128,7 +128,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI *web_ui, Profile *profile, co
if (url.host_piece() == chrome::kChromeUIWebRtcLogsHost)
return &NewWebUI<WebRtcLogsUI>;
#endif
-#if BUILDFLAG(IS_LINUX) // Consider enabling for BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
if (url.host_piece() == chrome::kChromeUISandboxHost)
return &NewWebUI<SandboxInternalsUI>;
#endif
diff --git a/src/core/ozone/gl_surface_qt.cpp b/src/core/ozone/gl_surface_qt.cpp
index 2e76110f9..fad3ccc11 100644
--- a/src/core/ozone/gl_surface_qt.cpp
+++ b/src/core/ozone/gl_surface_qt.cpp
@@ -59,7 +59,7 @@ bool GLSurfaceQt::IsOffscreen()
return true;
}
-gfx::SwapResult GLSurfaceQt::SwapBuffers(PresentationCallback callback)
+gfx::SwapResult GLSurfaceQt::SwapBuffers(PresentationCallback callback, FrameData data)
{
LOG(ERROR) << "Attempted to call SwapBuffers on a pbuffer.";
Q_UNREACHABLE();
diff --git a/src/core/ozone/gl_surface_qt.h b/src/core/ozone/gl_surface_qt.h
index f9d18a0ae..0ef8fbbca 100644
--- a/src/core/ozone/gl_surface_qt.h
+++ b/src/core/ozone/gl_surface_qt.h
@@ -21,7 +21,7 @@ public:
GLDisplay *GetGLDisplay() override;
void *GetConfig() override;
bool IsOffscreen() override;
- gfx::SwapResult SwapBuffers(PresentationCallback callback) override;
+ gfx::SwapResult SwapBuffers(PresentationCallback callback, FrameData data) override;
gfx::Size GetSize() override;
GLSurfaceFormat GetFormat() override;
diff --git a/src/core/ozone/ozone_platform_qt.cpp b/src/core/ozone/ozone_platform_qt.cpp
index 4971ef847..c4929295e 100644
--- a/src/core/ozone/ozone_platform_qt.cpp
+++ b/src/core/ozone/ozone_platform_qt.cpp
@@ -84,7 +84,6 @@ const ui::OzonePlatform::PlatformProperties &OzonePlatformQt::GetPlatformPropert
static base::NoDestructor<ui::OzonePlatform::PlatformProperties> properties;
static bool initialized = false;
if (!initialized) {
- properties->uses_external_vulkan_image_factory = true;
properties->fetch_buffer_formats_for_gmb_on_gpu = true;
initialized = true;
diff --git a/src/core/pref_service_adapter.cpp b/src/core/pref_service_adapter.cpp
index 14fa31ce4..34251880e 100644
--- a/src/core/pref_service_adapter.cpp
+++ b/src/core/pref_service_adapter.cpp
@@ -122,8 +122,6 @@ void PrefServiceAdapter::setup(const ProfileAdapter &profileAdapter)
registry->RegisterBooleanPref(autofill::prefs::kAutofillCreditCardEnabled, false);
registry->RegisterBooleanPref(autofill::prefs::kAutofillCreditCardFidoAuthEnabled, false);
registry->RegisterBooleanPref(autofill::prefs::kAutofillWalletImportEnabled, false);
- registry->RegisterBooleanPref(autofill::prefs::kAutofillJapanCityFieldMigratedDeprecated,
- false);
// devtools
registry->RegisterDictionaryPref(prefs::kDevToolsFileSystemPaths);
@@ -190,7 +188,7 @@ QStringList PrefServiceAdapter::spellCheckLanguages() const
{
QStringList spellcheck_dictionaries;
const auto &list = m_prefService->GetList(spellcheck::prefs::kSpellCheckDictionaries);
- for (const auto &dictionary : list->GetList()) {
+ for (const auto &dictionary : list) {
spellcheck_dictionaries.append(QString::fromStdString(dictionary.GetString()));
}
diff --git a/src/core/printing/pdf_web_contents_helper_client_qt.cpp b/src/core/printing/pdf_web_contents_helper_client_qt.cpp
index cbeb7d112..4deb398c6 100644
--- a/src/core/printing/pdf_web_contents_helper_client_qt.cpp
+++ b/src/core/printing/pdf_web_contents_helper_client_qt.cpp
@@ -24,15 +24,14 @@ content::RenderFrameHost *FindPdfChildFrame(content::RenderFrameHost *rfh)
content::RenderFrameHost *pdf_rfh = nullptr;
rfh->ForEachRenderFrameHost(
- base::BindRepeating(
- [](content::RenderFrameHost *&pdf_rfh, content::RenderFrameHost *rfh) {
+ [&pdf_rfh](content::RenderFrameHost *rfh) {
if (!rfh->GetProcess()->IsPdf())
return;
DCHECK(IsPdfExtensionOrigin(rfh->GetParent()->GetLastCommittedOrigin()));
DCHECK(!pdf_rfh);
pdf_rfh = rfh;
- }, std::ref(pdf_rfh)));
+ });
return pdf_rfh;
}
@@ -48,9 +47,13 @@ content::RenderFrameHost *PDFWebContentsHelperClientQt::FindPdfFrame(content::We
return pdf_frame ? pdf_frame : main_frame;
}
-void PDFWebContentsHelperClientQt::SetPluginCanSave(content::WebContents *contents, bool can_save)
+void PDFWebContentsHelperClientQt::SetPluginCanSave(content::RenderFrameHost *render_frame_host, bool can_save)
{
- auto *guest_view = extensions::MimeHandlerViewGuest::FromWebContents(contents);
+ auto *guest_view = extensions::MimeHandlerViewGuest::FromRenderFrameHost(render_frame_host);
if (guest_view)
guest_view->SetPluginCanSave(can_save);
}
+
+void PDFWebContentsHelperClientQt::UpdateContentRestrictions(content::RenderFrameHost *, int)
+{
+}
diff --git a/src/core/printing/pdf_web_contents_helper_client_qt.h b/src/core/printing/pdf_web_contents_helper_client_qt.h
index ccc552986..10df8a746 100644
--- a/src/core/printing/pdf_web_contents_helper_client_qt.h
+++ b/src/core/printing/pdf_web_contents_helper_client_qt.h
@@ -18,10 +18,10 @@ public:
private:
// pdf::PDFWebContentsHelperClient:
content::RenderFrameHost* FindPdfFrame(content::WebContents *contents) override;
- void UpdateContentRestrictions(content::WebContents *contents, int content_restrictions) override {}
void OnPDFHasUnsupportedFeature(content::WebContents *contents) override {}
void OnSaveURL(content::WebContents *contents) override {}
- void SetPluginCanSave(content::WebContents *contents, bool can_save) override;
+ void SetPluginCanSave(content::RenderFrameHost *render_frame_host, bool can_save) override;
+ void UpdateContentRestrictions(content::RenderFrameHost *, int) override;
};
#endif // PDF_WEB_CONTENTS_HELPER_CLIENT_QT_H
diff --git a/src/core/printing/print_view_manager_base_qt.cpp b/src/core/printing/print_view_manager_base_qt.cpp
index db557715a..f071b59ad 100644
--- a/src/core/printing/print_view_manager_base_qt.cpp
+++ b/src/core/printing/print_view_manager_base_qt.cpp
@@ -188,9 +188,9 @@ void PrintViewManagerBaseQt::UpdatePrintingEnabled()
#if QT_CONFIG(webengine_printing_and_pdf)
enabled = true;
#endif
- web_contents()->ForEachRenderFrameHost(
- base::BindRepeating(&PrintViewManagerBaseQt::SendPrintingEnabled,
- base::Unretained(this), enabled));
+ web_contents()->ForEachRenderFrameHost([this, enabled](content::RenderFrameHost *rfh) {
+ SendPrintingEnabled(enabled, rfh);
+ });
}
void PrintViewManagerBaseQt::NavigationStopped()
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index 4c175768d..80bbabf63 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -14,7 +14,8 @@
#include "components/autofill/content/renderer/autofill_assistant_agent.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 +26,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"
@@ -71,13 +73,14 @@
#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 "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"
@@ -204,6 +207,16 @@ void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_fr
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)
{
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -464,7 +477,7 @@ 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::KeySystemInfoVector *key_systems)
{
Q_UNUSED(capability);
if (!base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting)) {
@@ -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::KeySystemInfoVector *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,7 +658,7 @@ static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability,
void OnKeySystemSupportUpdated(media::GetSupportedKeySystemsCB cb,
content::KeySystemCapabilityPtrMap key_system_capabilities)
{
- media::KeySystemPropertiesVector key_systems;
+ media::KeySystemInfoVector key_systems;
for (const auto &entry : key_system_capabilities) {
const auto &key_system = entry.first;
const auto &capability = entry.second;
diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h
index 2e16a0dc6..b2231f00a 100644
--- a/src/core/renderer/content_renderer_client_qt.h
+++ b/src/core/renderer/content_renderer_client_qt.h
@@ -51,6 +51,9 @@ public:
void RenderThreadStarted() override;
void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override;
void RenderFrameCreated(content::RenderFrame *render_frame) override;
+ void WebViewCreated(blink::WebView *web_view,
+ bool was_created_by_renderer,
+ const url::Origin *outermost_origin) override;
void PrepareErrorPage(content::RenderFrame *render_frame,
const blink::WebURLError &error,
diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp
index b29892b68..b36ed9e8b 100644
--- a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp
+++ b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp
@@ -16,6 +16,7 @@
#include "base/command_line.h"
#include "base/lazy_instance.h"
#include "base/stl_util.h"
+#include "base/types/optional_util.h"
#include "content/public/common/content_constants.h"
#include "content/public/common/content_switches.h"
#include "content/public/renderer/render_frame.h"
@@ -26,6 +27,7 @@
#include "extensions/common/switches.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/extension_frame_helper.h"
+#include "extensions/renderer/extension_web_view_helper.h"
#include "extensions/renderer/extensions_render_frame_observer.h"
#include "extensions/renderer/renderer_extension_registry.h"
#include "extensions/renderer/script_context.h"
@@ -114,6 +116,11 @@ void ExtensionsRendererClientQt::RenderThreadStarted()
thread->AddObserver(extension_dispatcher_.get());
}
+void ExtensionsRendererClientQt::WebViewCreated(blink::WebView *web_view, const url::Origin *outermost_origin)
+{
+ new extensions::ExtensionWebViewHelper(web_view, outermost_origin);
+}
+
void ExtensionsRendererClientQt::RenderFrameCreated(content::RenderFrame *render_frame,
service_manager::BinderRegistry *registry)
{
diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.h b/src/core/renderer/extensions/extensions_renderer_client_qt.h
index f9cac443c..163819cbc 100644
--- a/src/core/renderer/extensions/extensions_renderer_client_qt.h
+++ b/src/core/renderer/extensions/extensions_renderer_client_qt.h
@@ -16,6 +16,7 @@ namespace blink {
class WebLocalFrame;
struct WebPluginParams;
class WebURL;
+class WebView;
}
namespace content {
@@ -55,6 +56,8 @@ public:
// Match ContentRendererClientQt's method names...
void RenderThreadStarted();
+ void WebViewCreated(blink::WebView *web_view,
+ const url::Origin *outermost_origin);
void RenderFrameCreated(content::RenderFrame *, service_manager::BinderRegistry *);
bool OverrideCreatePlugin(content::RenderFrame *render_frame,
const blink::WebPluginParams &params);
diff --git a/src/core/renderer_host/web_channel_ipc_transport_host.cpp b/src/core/renderer_host/web_channel_ipc_transport_host.cpp
index 8fd59cbc2..0824ed56d 100644
--- a/src/core/renderer_host/web_channel_ipc_transport_host.cpp
+++ b/src/core/renderer_host/web_channel_ipc_transport_host.cpp
@@ -30,10 +30,9 @@ WebChannelIPCTransportHost::WebChannelIPCTransportHost(content::WebContents *con
, m_worldId(worldId)
, m_receiver(contents, this)
{
- contents->ForEachRenderFrameHost(base::BindRepeating([](WebChannelIPCTransportHost *that, uint32_t worldId, content::RenderFrameHost *frame) {
- that->setWorldId(frame, worldId);
- },
- base::Unretained(this), worldId));
+ contents->ForEachRenderFrameHost([this, worldId](content::RenderFrameHost *frame) {
+ setWorldId(frame, worldId);
+ });
}
WebChannelIPCTransportHost::~WebChannelIPCTransportHost()
@@ -60,10 +59,9 @@ void WebChannelIPCTransportHost::setWorldId(uint32_t worldId)
{
if (m_worldId == worldId)
return;
- web_contents()->ForEachRenderFrameHost(base::BindRepeating([](WebChannelIPCTransportHost *that, uint32_t worldId, content::RenderFrameHost *frame) {
- that->setWorldId(frame, worldId);
- },
- base::Unretained(this), worldId));
+ web_contents()->ForEachRenderFrameHost([this, worldId](content::RenderFrameHost *frame) {
+ setWorldId(frame, worldId);
+ });
m_worldId = worldId;
}
@@ -77,11 +75,11 @@ void WebChannelIPCTransportHost::setWorldId(content::RenderFrameHost *frame, uin
void WebChannelIPCTransportHost::resetWorldId()
{
- web_contents()->ForEachRenderFrameHost(base::BindRepeating([](WebChannelIPCTransportHost *that, content::RenderFrameHost *frame) {
+ web_contents()->ForEachRenderFrameHost([this] (content::RenderFrameHost *frame) {
if (!frame->IsRenderFrameLive())
return;
- that->GetWebChannelIPCTransportRemote(frame)->ResetWorldId();
- }, this));
+ GetWebChannelIPCTransportRemote(frame)->ResetWorldId();
+ });
}
void WebChannelIPCTransportHost::DispatchWebChannelMessage(const std::vector<uint8_t> &json)
diff --git a/src/core/sandbox_win.cpp b/src/core/sandbox_win.cpp
index 81fecc62c..bc70bced7 100644
--- a/src/core/sandbox_win.cpp
+++ b/src/core/sandbox_win.cpp
@@ -11,7 +11,7 @@
#endif
namespace QtWebEngineSandbox {
-// A duplicate of the function by same name in startup_helper_win.cc
+// A duplicate of the function by same name in sandbox_helper_win.cc
static void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo *info)
{
info->broker_services = sandbox::SandboxFactory::GetBrokerServices();
@@ -19,7 +19,7 @@ static void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo *info)
info->target_services = sandbox::SandboxFactory::GetTargetServices();
} else {
// Ensure the proper mitigations are enforced for the browser process.
- sandbox::ApplyProcessMitigationsToCurrentProcess(
+ info->broker_services->RatchetDownSecurityMitigations(
sandbox::MITIGATION_DEP | sandbox::MITIGATION_DEP_NO_ATL_THUNK |
sandbox::MITIGATION_HARDEN_TOKEN_IL_POLICY);
// Note: these mitigations are "post-startup". Some mitigations that need
diff --git a/src/core/select_file_dialog_factory_qt.cpp b/src/core/select_file_dialog_factory_qt.cpp
index 1bf20918d..9da27a4cf 100644
--- a/src/core/select_file_dialog_factory_qt.cpp
+++ b/src/core/select_file_dialog_factory_qt.cpp
@@ -65,7 +65,8 @@ public:
void SelectFileImpl(Type type, const std::u16string &title, const base::FilePath &default_path,
const FileTypeInfo *file_types, int file_type_index,
const base::FilePath::StringType &default_extension,
- gfx::NativeWindow owning_window, void *params) override;
+ gfx::NativeWindow owning_window, void *params, const GURL *) override;
+
bool HasMultipleFileTypeChoicesImpl() override;
private:
@@ -105,13 +106,14 @@ void SelectFileDialogQt::SelectFileImpl(Type type, const std::u16string &title,
const base::FilePath &default_path,
const FileTypeInfo *file_types, int file_type_index,
const base::FilePath::StringType &default_extension,
- gfx::NativeWindow owning_window, void *params)
+ gfx::NativeWindow owning_window, void *params, const GURL *caller)
{
Q_UNUSED(title);
Q_UNUSED(file_type_index);
Q_UNUSED(default_extension);
Q_UNUSED(owning_window);
Q_UNUSED(params);
+ Q_UNUSED(caller);
QStringList acceptedSuffixes;
if (file_types) {
diff --git a/src/core/user_script.cpp b/src/core/user_script.cpp
index 47c4fd528..c33fb9081 100644
--- a/src/core/user_script.cpp
+++ b/src/core/user_script.cpp
@@ -20,7 +20,7 @@ bool GetDeclarationValue(const base::StringPiece& line,
std::string temp(line.data() + index + prefix.length(),
line.length() - index - prefix.length());
- if (temp.empty() || !base::IsUnicodeWhitespace(temp[0]))
+ if (temp.empty() || !base::IsWhitespace(temp[0]))
return false;
base::TrimWhitespaceASCII(temp, base::TRIM_ALL, value);
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 1458c25ff..467266ee6 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -153,14 +153,10 @@ static QVariant fromJSValue(const base::Value *result)
}
case base::Value::Type::DICTIONARY:
{
- const base::DictionaryValue *out;
- if (result->GetAsDictionary(&out)) {
+ if (const auto dict = result->GetIfDict()) {
QVariantMap map;
- base::DictionaryValue::Iterator it(*out);
- while (!it.IsAtEnd()) {
- map.insert(toQt(it.key()), fromJSValue(&it.value()));
- it.Advance();
- }
+ for (const auto pair : *dict)
+ map.insert(toQt(pair.first), fromJSValue(&pair.second));
ret.setValue(map);
}
break;
@@ -1026,7 +1022,7 @@ QAccessibleInterface *WebContentsAdapter::browserAccessible()
content::BrowserAccessibilityManager *manager = rfh->GetOrCreateBrowserAccessibilityManager();
if (!manager) // FIXME!
return nullptr;
- content::BrowserAccessibility *acc = manager->GetRoot();
+ content::BrowserAccessibility *acc = manager->GetFromAXNode(manager->GetRoot());
return content::toQAccessibleInterface(acc);
}
diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index 75ab0c6f9..21c370098 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -205,11 +205,11 @@ QUrl WebContentsDelegateQt::url(content::WebContents *source) const
m_pendingUrlUpdate = false;
return newUrl;
}
-void WebContentsDelegateQt::AddNewContents(content::WebContents* source, std::unique_ptr<content::WebContents> new_contents, const GURL &target_url,
- WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture, bool* was_blocked)
+void WebContentsDelegateQt::AddNewContents(content::WebContents *source, std::unique_ptr<content::WebContents> new_contents, const GURL &target_url,
+ WindowOpenDisposition disposition, const blink::mojom::WindowFeatures &window_features, bool user_gesture, bool *was_blocked)
{
Q_UNUSED(source)
- QSharedPointer<WebContentsAdapter> newAdapter = createWindow(std::move(new_contents), disposition, initial_pos, toQt(target_url), user_gesture);
+ QSharedPointer<WebContentsAdapter> newAdapter = createWindow(std::move(new_contents), disposition, window_features.bounds, toQt(target_url), user_gesture);
// Chromium can forget to pass user-agent override settings to new windows (see QTBUG-61774 and QTBUG-76249),
// so set it here. Note the actual value doesn't really matter here. Only the second value does, but we try
// to give the correct user-agent anyway.
diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h
index 0840fbc45..eda4e1e57 100644
--- a/src/core/web_contents_delegate_qt.h
+++ b/src/core/web_contents_delegate_qt.h
@@ -81,7 +81,7 @@ public:
content::WebContents *OpenURLFromTab(content::WebContents *source, const content::OpenURLParams &params) override;
void NavigationStateChanged(content::WebContents* source, content::InvalidateTypes changed_flags) override;
void AddNewContents(content::WebContents *source, std::unique_ptr<content::WebContents> new_contents, const GURL &target_url,
- WindowOpenDisposition disposition, const gfx::Rect &initial_pos, bool user_gesture, bool *was_blocked) override;
+ WindowOpenDisposition disposition, const blink::mojom::WindowFeatures &window_features, bool user_gesture, bool *was_blocked) override;
void CloseContents(content::WebContents *source) override;
void LoadProgressChanged(double progress) override;
bool HandleKeyboardEvent(content::WebContents *source, const content::NativeWebKeyboardEvent &event) override;
diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp
index 286fc198c..023f9e99f 100644
--- a/src/core/web_contents_view_qt.cpp
+++ b/src/core/web_contents_view_qt.cpp
@@ -230,8 +230,9 @@ void WebContentsViewQt::StartDragging(const content::DropData &drop_data,
blink::DragOperationsMask allowed_ops,
const gfx::ImageSkia &image,
const gfx::Vector2d &image_offset,
+ const gfx::Rect &drag_obj_rect,
const blink::mojom::DragEventSourceInfo &event_info,
- content::RenderWidgetHostImpl* source_rwh)
+ content::RenderWidgetHostImpl *source_rwh)
{
#if QT_CONFIG(draganddrop)
Q_UNUSED(event_info);
diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h
index 2e236f2b2..15528b41d 100644
--- a/src/core/web_contents_view_qt.h
+++ b/src/core/web_contents_view_qt.h
@@ -72,6 +72,7 @@ public:
void FocusThroughTabTraversal(bool reverse) override;
void OnCapturerCountChanged() override { QT_NOT_YET_IMPLEMENTED }
+ void FullscreenStateChanged(bool) override { }
#if BUILDFLAG(IS_MAC)
bool CloseTabAfterEventTrackingIfNeeded() override { QT_NOT_YET_IMPLEMENTED return false; }
@@ -80,6 +81,7 @@ public:
// content::RenderViewHostDelegateView overrides:
void StartDragging(const content::DropData& drop_data, blink::DragOperationsMask allowed_ops,
const gfx::ImageSkia& image, const gfx::Vector2d& image_offset,
+ const gfx::Rect& drag_obj_rect,
const blink::mojom::DragEventSourceInfo &event_info,
content::RenderWidgetHostImpl *source_rwh) override;
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index 29189bc72..390ac2638 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -900,7 +900,7 @@ const char *qWebEngineChromiumVersion() noexcept
}
const char *qWebEngineChromiumSecurityPatchVersion() noexcept
{
- return "107.0.5304.88"; // FIXME: Remember to update
+ return "108.0.5359.109"; // FIXME: Remember to update
}
QT_END_NAMESPACE
diff --git a/src/pdf/configure/BUILD.root.gn.in b/src/pdf/configure/BUILD.root.gn.in
index 5420e8581..da41d80cc 100644
--- a/src/pdf/configure/BUILD.root.gn.in
+++ b/src/pdf/configure/BUILD.root.gn.in
@@ -59,4 +59,10 @@ static_library("QtPdf") {
deps = [
"//third_party/pdfium"
]
+ if (is_win) {
+ libs = [
+ "dloadhelper.lib",
+ "winmm.lib",
+ ]
+ }
}