From fae023b184f6c044e85f4ca6052c306d519e2e85 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 16 May 2022 18:34:48 +0200 Subject: Adaptations for Chromium 100 Pick-to: 6.4 Change-Id: I217c87657f544a2e868de7291353ff1143e20902 Reviewed-by: Allan Sandfeld Jensen --- src/core/CMakeLists.txt | 3 + src/core/accessibility_tree_formatter_qt.cpp | 9 ++- src/core/browser_accessibility_manager_qt.cpp | 3 +- src/core/browser_accessibility_manager_qt.h | 3 +- src/core/browser_main_parts_qt.cpp | 14 ++-- src/core/browser_main_parts_qt.h | 4 +- src/core/chromium_overrides.cpp | 2 +- .../common/extensions/extensions_client_qt.cpp | 2 +- src/core/common/extensions/extensions_client_qt.h | 2 +- src/core/configure/BUILD.root.gn.in | 21 ++---- src/core/content_browser_client_qt.cpp | 74 ++++++++++++---------- src/core/content_browser_client_qt.h | 8 +-- src/core/content_client_qt.cpp | 10 +-- src/core/content_main_delegate_qt.cpp | 20 +++--- src/core/devtools_frontend_qt.cpp | 7 +- src/core/devtools_frontend_qt.h | 2 +- src/core/download_manager_delegate_qt.cpp | 4 +- src/core/extensions/extension_host_delegate_qt.cpp | 6 +- src/core/extensions/extension_host_delegate_qt.h | 4 +- src/core/extensions/extension_system_qt.cpp | 5 +- src/core/extensions/extension_system_qt.h | 3 +- .../extension_web_contents_observer_qt.cpp | 1 + .../extensions/extensions_browser_client_qt.cpp | 3 +- .../pdf_iframe_navigation_throttle_qt.cpp | 3 +- src/core/file_picker_controller.cpp | 10 +-- src/core/media_capture_devices_dispatcher.cpp | 6 +- src/core/net/client_cert_override.cpp | 10 +-- src/core/net/custom_url_loader_factory.cpp | 4 +- ...in_response_interceptor_url_loader_throttle.cpp | 10 ++- .../net/proxying_restricted_cookie_manager_qt.cpp | 12 +++- .../net/proxying_restricted_cookie_manager_qt.h | 3 + src/core/net/proxying_url_loader_factory_qt.cpp | 6 +- src/core/net/system_network_context_manager.cpp | 21 ++++-- src/core/net/webui_controller_factory_qt.cpp | 8 +-- src/core/ozone/gl_context_qt.cpp | 8 +-- src/core/ozone/gl_surface_egl_qt.cpp | 8 +-- src/core/ozone/gl_surface_qt.cpp | 19 +++--- src/core/ozone/gl_surface_wgl_qt.cpp | 4 +- src/core/ozone/gl_surface_wgl_qt.h | 4 +- src/core/ozone/ozone_platform_qt.cpp | 5 +- src/core/ozone/ozone_platform_qt.h | 8 +-- src/core/printing/print_view_manager_qt.cpp | 1 + src/core/process_main.cpp | 12 ++-- src/core/render_widget_host_view_qt.h | 4 +- src/core/renderer/content_renderer_client_qt.cpp | 60 +++++++++++------- src/core/renderer/content_renderer_client_qt.h | 6 +- .../extensions/extensions_renderer_client_qt.cpp | 3 - .../extensions/extensions_renderer_client_qt.h | 5 -- src/core/resource_bundle_qt.cpp | 6 +- src/core/tools/main.cpp | 4 +- src/core/type_conversion.cpp | 1 + src/core/type_conversion.h | 4 +- src/core/web_contents_adapter.cpp | 20 ++---- src/core/web_contents_view_qt.h | 4 +- src/core/web_engine_context.cpp | 9 ++- src/core/web_engine_library_info.cpp | 28 ++++---- src/core/web_engine_library_info.h | 2 +- src/core/web_engine_settings.cpp | 1 + 58 files changed, 275 insertions(+), 254 deletions(-) (limited to 'src/core') diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 130949934..a9c31f911 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -293,6 +293,7 @@ foreach(arch ${archs}) enable_swiftshader=false enable_swiftshader_vulkan=false angle_enable_swiftshader=false + dawn_use_swiftshader=false enable_web_speech=false enable_widevine=true fatal_linker_warnings=false @@ -306,6 +307,8 @@ foreach(arch ${archs}) v8_use_external_startup_data=false strip_absolute_paths_from_debug_symbols=false enable_oop_printing=false + devtools_fast_bundle=false + devtools_skip_typecheck=false ) extend_gn_list(gnArgArg diff --git a/src/core/accessibility_tree_formatter_qt.cpp b/src/core/accessibility_tree_formatter_qt.cpp index 0f642b947..6167bc73b 100644 --- a/src/core/accessibility_tree_formatter_qt.cpp +++ b/src/core/accessibility_tree_formatter_qt.cpp @@ -7,10 +7,10 @@ #include "base/strings/stringprintf.h" #include "base/values.h" -#include "content/browser/accessibility/accessibility_event_recorder.h" #include "content/browser/accessibility/accessibility_tree_formatter_blink.h" #include "content/browser/accessibility/browser_accessibility.h" #include "content/public/browser/ax_inspect_factory.h" +#include "ui/accessibility/platform/inspect/ax_event_recorder.h" #include "browser_accessibility_qt.h" @@ -150,9 +150,8 @@ std::string AccessibilityTreeFormatterQt::ProcessTreeForOutput(const base::Dicti const base::ListValue *states_value = nullptr; if (node.GetList("states", &states_value)) { for (const auto &state : states_value->GetList()) { - std::string state_value; - if (state.GetAsString(&state_value)) - WriteAttribute(false, state_value, &line); + if (auto *state_value = state.GetIfString()) + WriteAttribute(false, *state_value, &line); } } @@ -214,7 +213,7 @@ std::unique_ptr AXInspectFactory::CreateRecorder(ui::AXApiT { switch (type) { case ui::AXApiType::kQt: - return std::make_unique(manager); + return std::make_unique(); default: NOTREACHED() << "Unsupported inspect type " << type; } diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp index 01ec3fa58..dcbb3a006 100644 --- a/src/core/browser_accessibility_manager_qt.cpp +++ b/src/core/browser_accessibility_manager_qt.cpp @@ -72,7 +72,8 @@ QAccessibleInterface *BrowserAccessibilityManagerQt::rootParentAccessible() } void BrowserAccessibilityManagerQt::FireBlinkEvent(ax::mojom::Event event_type, - BrowserAccessibility* node) + BrowserAccessibility *node, + int action_request_id) { auto *iface = toQAccessibleInterface(node); diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h index 188d9f81b..6cd3c84de 100644 --- a/src/core/browser_accessibility_manager_qt.h +++ b/src/core/browser_accessibility_manager_qt.h @@ -27,7 +27,8 @@ public: BrowserAccessibilityDelegate *delegate); ~BrowserAccessibilityManagerQt() override; void FireBlinkEvent(ax::mojom::Event event_type, - BrowserAccessibility* node) override; + BrowserAccessibility *node, + int action_request_id) override; void FireGeneratedEvent(ui::AXEventGenerator::Event event_type, BrowserAccessibility* node) override; diff --git a/src/core/browser_main_parts_qt.cpp b/src/core/browser_main_parts_qt.cpp index b135e55cc..1c6c469ce 100644 --- a/src/core/browser_main_parts_qt.cpp +++ b/src/core/browser_main_parts_qt.cpp @@ -50,7 +50,7 @@ #include #endif -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) #include "base/message_loop/message_pump_mac.h" #include "services/device/public/cpp/geolocation/geolocation_manager.h" #include "ui/base/idle/idle.h" @@ -191,7 +191,7 @@ private: QWebEngineMessagePumpScheduler m_scheduler; }; -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) class FakeGeolocationManager : public device::GeolocationManager { public: @@ -206,7 +206,7 @@ public: return device::LocationSystemPermissionStatus::kDenied; } }; -#endif // defined(OS_MAC) +#endif // BUILDFLAG(IS_MAC) std::unique_ptr messagePumpFactory() { @@ -215,7 +215,7 @@ std::unique_ptr messagePumpFactory() madePrimaryPump = true; return std::make_unique(); } -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) return base::MessagePumpMac::Create(); #else return std::make_unique(); @@ -232,7 +232,7 @@ int BrowserMainPartsQt::PreEarlyInitialization() void BrowserMainPartsQt::PreCreateMainMessageLoop() { -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) m_geolocationManager = std::make_unique(); #endif } @@ -279,7 +279,7 @@ void BrowserMainPartsQt::PostMainMessageLoopRun() int BrowserMainPartsQt::PreCreateThreads() { -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) ui::InitIdleMonitor(); #endif @@ -307,7 +307,7 @@ void BrowserMainPartsQt::PostCreateThreads() base::BindOnce(&QtWebEngineCore::CreatePoliciesAndDecorators)); } -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) device::GeolocationManager *BrowserMainPartsQt::GetGeolocationManager() { return m_geolocationManager.get(); diff --git a/src/core/browser_main_parts_qt.h b/src/core/browser_main_parts_qt.h index 7e21240cb..6828552b7 100644 --- a/src/core/browser_main_parts_qt.h +++ b/src/core/browser_main_parts_qt.h @@ -42,14 +42,14 @@ public: int PreCreateThreads() override; void PostCreateThreads() override; -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) device::GeolocationManager *GetGeolocationManager(); #endif private: std::unique_ptr performance_manager_lifetime_; std::unique_ptr m_webUsbDetector; -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) std::unique_ptr m_geolocationManager; #endif }; diff --git a/src/core/chromium_overrides.cpp b/src/core/chromium_overrides.cpp index 9fced7915..ca05a0709 100644 --- a/src/core/chromium_overrides.cpp +++ b/src/core/chromium_overrides.cpp @@ -39,7 +39,7 @@ WebContentsView* CreateWebContentsView(WebContentsImpl *web_contents, return rv; } -#if defined(OS_MAC) +#if defined(Q_OS_DARWIN) #if defined(QT_MAC_FRAMEWORK_BUILD) base::FilePath getSandboxPath() { diff --git a/src/core/common/extensions/extensions_client_qt.cpp b/src/core/common/extensions/extensions_client_qt.cpp index f621bfb8a..30d1836ca 100644 --- a/src/core/common/extensions/extensions_client_qt.cpp +++ b/src/core/common/extensions/extensions_client_qt.cpp @@ -117,7 +117,7 @@ const GURL &ExtensionsClientQt::GetWebstoreUpdateURL() const // Returns a flag indicating whether or not a given URL is a valid // extension blacklist URL. -bool ExtensionsClientQt::IsBlacklistUpdateURL(const GURL &url) const +bool ExtensionsClientQt::IsBlocklistUpdateURL(const GURL &url) const { return true; } diff --git a/src/core/common/extensions/extensions_client_qt.h b/src/core/common/extensions/extensions_client_qt.h index 32a752d95..b0069db22 100644 --- a/src/core/common/extensions/extensions_client_qt.h +++ b/src/core/common/extensions/extensions_client_qt.h @@ -72,7 +72,7 @@ public: // Returns a flag indicating whether or not a given URL is a valid // extension blacklist URL. - bool IsBlacklistUpdateURL(const GURL &url) const override; + bool IsBlocklistUpdateURL(const GURL &url) const override; // Returns the set of file paths corresponding to any images within an // extension's contents that may be displayed directly within the browser UI diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in index de490ffc1..398e945aa 100644 --- a/src/core/configure/BUILD.root.gn.in +++ b/src/core/configure/BUILD.root.gn.in @@ -211,13 +211,13 @@ source_set("qtwebengine_sources") { "//build:branding_buildflags", "//chrome/browser:dev_ui_browser_resources_grit", "//chrome/browser/resources/net_internals:resources", - "//chrome/browser/resources/quota_internals:resources", "//chrome/common:buildflags", "//chromeos/components/chromebox_for_meetings/buildflags", "//components/custom_handlers", "//components/nacl/common:buildflags", "//components/performance_manager", "//components/plugins/renderer/", + "//content/browser/resources/quota:resources", "//extensions/buildflags:buildflags", "//printing/buildflags:buildflags", "//qtwebengine/common:mojo_bindings", @@ -248,14 +248,6 @@ source_set("qtwebengine_sources") { "//chrome/browser/ui/webui/devtools_ui_data_source.h", "//chrome/browser/ui/webui/net_internals/net_internals_ui.cc", "//chrome/browser/ui/webui/net_internals/net_internals_ui.h", - "//chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc", - "//chrome/browser/ui/webui/quota_internals/quota_internals_handler.h", - "//chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc", - "//chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h", - "//chrome/browser/ui/webui/quota_internals/quota_internals_types.cc", - "//chrome/browser/ui/webui/quota_internals/quota_internals_types.h", - "//chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc", - "//chrome/browser/ui/webui/quota_internals/quota_internals_ui.h", "//chrome/browser/ui/webui/user_actions/user_actions_ui.cc", "//chrome/browser/ui/webui/user_actions/user_actions_ui.h", "//chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc", @@ -277,7 +269,6 @@ source_set("qtwebengine_sources") { "//chrome/app:generated_resources", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/resources:component_extension_resources_grit", - "//chrome/common/extensions/api", "//chrome/common/extensions/api:api", "//chrome/common/extensions/api:extensions_features", "//components/crx_file", @@ -452,13 +443,13 @@ repack("qtwebengine_repack_resources") { "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/chrome/dev_ui_browser_resources.pak", "$root_gen_dir/chrome/net_internals_resources.pak", - "$root_gen_dir/chrome/quota_internals_resources.pak", "$root_gen_dir/components/components_resources.pak", "$root_gen_dir/components/dev_ui_components_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", "$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/quota_internals_resources.pak", "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", "$root_gen_dir/net/net_resources.pak", "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", @@ -470,13 +461,13 @@ repack("qtwebengine_repack_resources") { "//qtwebengine/browser:qt_webengine_resources", "//chrome/browser:dev_ui_browser_resources_grit", "//chrome/browser/resources/net_internals:resources", - "//chrome/browser/resources/quota_internals:resources", "//chrome/common:resources_grit", "//components/resources:components_resources_grit", "//components/resources:dev_ui_components_resources_grit", "//content/browser/resources/media:resources", "//content/browser/tracing:resources", - "//content:content_resources_grit", + "//content:content_resources", + "//content/browser/resources/quota:resources", "//content:dev_ui_content_resources_grit", "//mojo/public/js:resources", "//net:net_resources_grit", @@ -587,9 +578,9 @@ repack("qtwebengine_repack_resources_devtools") { } chrome_repack_locales("qtwebengine_repack_locales_pack") { - input_locales = locales + input_locales = platform_pak_locales output_dir = "$root_out_dir/qtwebengine_locales" - output_locales = locales + output_locales = platform_pak_locales } if (enable_extensions) { diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 72bd34d5d..3c576a572 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -116,7 +116,7 @@ #include "extensions/browser/extension_protocols.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_util.h" -#include "extensions/browser/guest_view/extensions_guest_view_message_filter.h" +#include "extensions/browser/guest_view/extensions_guest_view.h" #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h" #include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/process_map.h" @@ -227,7 +227,6 @@ void ContentBrowserClientQt::RenderProcessWillLaunch(content::RenderProcessHost host->AddFilter(new BrowserMessageFilterQt(id, profile)); #if BUILDFLAG(ENABLE_EXTENSIONS) host->AddFilter(new extensions::ExtensionMessageFilter(id, profile)); - host->AddFilter(new extensions::ExtensionsGuestViewMessageFilter(id, profile)); #endif //ENABLE_EXTENSIONS bool is_incognito_process = profile->IsOffTheRecord(); @@ -457,50 +456,53 @@ void ContentBrowserClientQt::ExposeInterfacesToRenderer(service_manager::BinderR #if BUILDFLAG(ENABLE_EXTENSIONS) associated_registry->AddInterface(base::BindRepeating(&extensions::EventRouter::BindForRenderer, render_process_host->GetID())); + associated_registry->AddInterface(base::BindRepeating(&extensions::ExtensionsGuestView::CreateForComponents, + render_process_host->GetID())); + associated_registry->AddInterface(base::BindRepeating(&extensions::ExtensionsGuestView::CreateForExtensions, + render_process_host->GetID())); #else Q_UNUSED(associated_registry); #endif } -// TODO: BindAssociatedReceiverForFrame -> RegisterAssociatedInterfaceBindersForRenderFrameHost -// https://chromium-review.googlesource.com/c/chromium/src/+/3281481 -bool ContentBrowserClientQt::BindAssociatedReceiverFromFrame(content::RenderFrameHost *rfh, - const std::string &interface_name, - mojo::ScopedInterfaceEndpointHandle *handle) +void ContentBrowserClientQt::RegisterAssociatedInterfaceBindersForRenderFrameHost( + content::RenderFrameHost &rfh, + blink::AssociatedInterfaceRegistry &associated_registry) { #if QT_CONFIG(webengine_webchannel) - if (interface_name == qtwebchannel::mojom::WebChannelTransportHost::Name_) { - auto *web_contents = content::WebContents::FromRenderFrameHost(rfh); - auto *adapter = static_cast(web_contents->GetDelegate())->webContentsAdapter(); - adapter->webChannelTransport()->BindReceiver( - mojo::PendingAssociatedReceiver(std::move(*handle)), rfh); - return true; - } + associated_registry.AddInterface( + base::BindRepeating( + [](content::RenderFrameHost *render_frame_host, + mojo::PendingAssociatedReceiver receiver) { + auto *web_contents = content::WebContents::FromRenderFrameHost(render_frame_host); + auto *adapter = static_cast(web_contents->GetDelegate())->webContentsAdapter(); + adapter->webChannelTransport()->BindReceiver(std::move(receiver), render_frame_host); + }, &rfh)); #endif #if BUILDFLAG(ENABLE_PRINTING) && BUILDFLAG(ENABLE_PRINT_PREVIEW) - if (interface_name == printing::mojom::PrintManagerHost::Name_) { - mojo::PendingAssociatedReceiver receiver(std::move(*handle)); - PrintViewManagerQt::BindPrintManagerHost(std::move(receiver), rfh); - return true; - } + associated_registry.AddInterface( + base::BindRepeating( + [](content::RenderFrameHost* render_frame_host, + mojo::PendingAssociatedReceiver receiver) { + PrintViewManagerQt::BindPrintManagerHost(std::move(receiver), render_frame_host); + }, &rfh)); #endif #if BUILDFLAG(ENABLE_EXTENSIONS) - if (interface_name == extensions::mojom::LocalFrameHost::Name_) { - extensions::ExtensionWebContentsObserverQt::BindLocalFrameHost( - mojo::PendingAssociatedReceiver(std::move(*handle)), rfh); - return true; - } + associated_registry.AddInterface( + base::BindRepeating( + [](content::RenderFrameHost *render_frame_host, + mojo::PendingAssociatedReceiver receiver) { + extensions::ExtensionWebContentsObserverQt::BindLocalFrameHost(std::move(receiver), render_frame_host); + }, &rfh)); #endif + associated_registry.AddInterface( + base::BindRepeating( + [](content::RenderFrameHost *render_frame_host, + mojo::PendingAssociatedReceiver receiver) { + autofill::ContentAutofillDriverFactory::BindAutofillDriver(std::move(receiver), render_frame_host); + }, &rfh)); - if (interface_name == autofill::mojom::AutofillDriver::Name_) { - mojo::PendingAssociatedReceiver receiver( - std::move(*handle)); - autofill::ContentAutofillDriverFactory::BindAutofillDriver(std::move(receiver), rfh); - return true; - } - - DCHECK(!ContentBrowserClient::BindAssociatedReceiverFromFrame(rfh, interface_name, handle)); - return false; + ContentBrowserClient::RegisterAssociatedInterfaceBindersForRenderFrameHost(rfh, associated_registry); } bool ContentBrowserClientQt::CanCreateWindow( @@ -554,7 +556,7 @@ std::unique_ptr ContentBrowserClientQt::OverrideSystem device::GeolocationManager *ContentBrowserClientQt::GetGeolocationManager() { -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) return m_browserMainParts->GetGeolocationManager(); #else return nullptr; @@ -683,12 +685,14 @@ bool ContentBrowserClientQt::HandleExternalProtocol(const GURL &url, ui::PageTransition page_transition, bool has_user_gesture, const absl::optional &initiating_origin, + content::RenderFrameHost *initiator_document, mojo::PendingRemote *out_factory) { Q_UNUSED(child_id); Q_UNUSED(frame_tree_node_id); Q_UNUSED(navigation_data); Q_UNUSED(initiating_origin); + Q_UNUSED(initiator_document); Q_UNUSED(out_factory); base::PostTask(FROM_HERE, {content::BrowserThread::UI}, @@ -1054,8 +1058,10 @@ void ContentBrowserClientQt::RegisterNonNetworkServiceWorkerUpdateURLLoaderFacto } void ContentBrowserClientQt::RegisterNonNetworkSubresourceURLLoaderFactories(int render_process_id, int render_frame_id, + const absl::optional &request_initiator_origin, NonNetworkURLLoaderFactoryMap *factories) { + Q_UNUSED(request_initiator_origin); content::RenderProcessHost *process_host = content::RenderProcessHost::FromID(render_process_id); Profile *profile = Profile::FromBrowserContext(process_host->GetBrowserContext()); ProfileAdapter *profileAdapter = static_cast(profile)->profileAdapter(); diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h index 220ab43f9..c55c4f044 100644 --- a/src/core/content_browser_client_qt.h +++ b/src/core/content_browser_client_qt.h @@ -80,9 +80,8 @@ public: void ExposeInterfacesToRenderer(service_manager::BinderRegistry *registry, blink::AssociatedInterfaceRegistry *associated_registry, content::RenderProcessHost *render_process_host) override; - bool BindAssociatedReceiverFromFrame(content::RenderFrameHost *render_frame_host, - const std::string &interface_name, - mojo::ScopedInterfaceEndpointHandle *handle) override; + void RegisterAssociatedInterfaceBindersForRenderFrameHost(content::RenderFrameHost &render_frame_host, + blink::AssociatedInterfaceRegistry &associated_registry) override; bool CanCreateWindow(content::RenderFrameHost *opener, const GURL &opener_url, @@ -178,8 +177,8 @@ public: ui::PageTransition page_transition, bool has_user_gesture, const absl::optional &initiating_origin, + content::RenderFrameHost *initiator_document, mojo::PendingRemote *out_factory) override; - std::vector> CreateURLLoaderThrottles( const network::ResourceRequest &request, content::BrowserContext *browser_context, const base::RepeatingCallback &wc_getter, @@ -219,6 +218,7 @@ public: ukm::SourceIdObj ukm_source_id, NonNetworkURLLoaderFactoryMap *factories) override; void RegisterNonNetworkSubresourceURLLoaderFactories(int render_process_id, int render_frame_id, + const absl::optional& request_initiator_origin, NonNetworkURLLoaderFactoryMap *factories) override; void RegisterNonNetworkWorkerMainResourceURLLoaderFactories(content::BrowserContext* browser_context, NonNetworkURLLoaderFactoryMap* factories) override; diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp index 553e4b4c8..f0b89e2da 100644 --- a/src/core/content_client_qt.cpp +++ b/src/core/content_client_qt.cpp @@ -37,9 +37,9 @@ // File name of the CDM on different platforms. const char kWidevineCdmFileName[] = -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) "widevinecdm.plugin"; -#elif defined(OS_WIN) +#elif BUILDFLAG(IS_WIN) "widevinecdm.dll"; #else // OS_LINUX, etc. "libwidevinecdm.so"; @@ -312,7 +312,7 @@ void ContentClientQt::AddContentDecryptionModules(std::vector const base::Version version; cdms->push_back(content::CdmInfo(kWidevineKeySystem, Robustness::kSoftwareSecure, std::move(capability), /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName, - kWidevineCdmType, version, cdm_path, kWidevineCdmFileSystemId)); + kWidevineCdmType, version, cdm_path)); } #endif // defined(WIDEVINE_CDM_AVAILABLE_NOT_COMPONENT) @@ -343,13 +343,13 @@ void ContentClientQt::AddContentDecryptionModules(std::vector Robustness::kSoftwareSecure, capability, /*supports_sub_key_systems=*/false, media::kClearKeyCdmDisplayName, media::kClearKeyCdmDifferentCdmType, base::Version("0.1.0.0"), - clear_key_cdm_path, media::kClearKeyCdmFileSystemId)); + clear_key_cdm_path)); cdms->push_back(content::CdmInfo(kExternalClearKeyKeySystem, Robustness::kSoftwareSecure, capability, /*supports_sub_key_systems=*/true, media::kClearKeyCdmDisplayName, media::kClearKeyCdmType, base::Version("0.1.0.0"), - clear_key_cdm_path, media::kClearKeyCdmFileSystemId)); + clear_key_cdm_path)); } #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) } diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp index 6a5f61168..bd117deb8 100644 --- a/src/core/content_main_delegate_qt.cpp +++ b/src/core/content_main_delegate_qt.cpp @@ -29,11 +29,11 @@ #include "web_engine_context.h" #include "web_engine_library_info.h" -#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX)) +#if defined(ARCH_CPU_ARM_FAMILY) && (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)) #include "base/cpu.h" #endif -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) #include "media/audio/audio_manager.h" #include "ui/base/ui_base_switches.h" #endif @@ -41,12 +41,12 @@ // must be included before vaapi_wrapper.h #include -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) #include "media/gpu/windows/dxva_video_decode_accelerator_win.h" #include "media/gpu/windows/media_foundation_video_encode_accelerator_win.h" #endif -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) #include "base/trace_event/trace_event.h" #include "content/public/common/content_features.h" #include "media/gpu/mac/vt_video_decode_accelerator_mac.h" @@ -133,7 +133,7 @@ static logging::LoggingDestination DetermineLogMode(const base::CommandLine& com void ContentMainDelegateQt::PreSandboxStartup() { -#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX)) +#if defined(ARCH_CPU_ARM_FAMILY) && (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)) // Create an instance of the CPU class to parse /proc/cpuinfo and cache // cpu_brand info. base::CPU cpu_info; @@ -166,7 +166,7 @@ void ContentMainDelegateQt::PreSandboxStartup() } } -#if defined(OS_POSIX) && !defined(OS_ANDROID) +#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) if (parsedCommandLine->HasSwitch(switches::kSingleProcess)) setlocale(LC_NUMERIC, "C"); #endif @@ -175,12 +175,12 @@ void ContentMainDelegateQt::PreSandboxStartup() #if BUILDFLAG(USE_VAAPI) media::VaapiWrapper::PreSandboxInitialization(); #endif -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) media::DXVAVideoDecodeAccelerator::PreSandboxInitialization(); media::MediaFoundationVideoEncodeAccelerator::PreSandboxInitialization(); #endif -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) { TRACE_EVENT0("gpu", "Initialize VideoToolbox"); media::InitializeVideoToolbox(); @@ -191,7 +191,7 @@ void ContentMainDelegateQt::PreSandboxStartup() std::string appName = parsedCommandLine->GetSwitchValueASCII(switches::kApplicationName); appName = QByteArray::fromPercentEncoding(QByteArray::fromStdString(appName)).toStdString(); QCoreApplication::setApplicationName(QString::fromStdString(appName)); -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) media::AudioManager::SetGlobalAppName(appName); #endif } @@ -221,7 +221,7 @@ content::ContentGpuClient *ContentMainDelegateQt::CreateContentGpuClient() content::ContentRendererClient *ContentMainDelegateQt::CreateContentRendererClient() { -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) base::CommandLine *parsedCommandLine = base::CommandLine::ForCurrentProcess(); std::string process_type = parsedCommandLine->GetSwitchValueASCII(switches::kProcessType); bool no_sandbox = parsedCommandLine->HasSwitch(sandbox::policy::switches::kNoSandbox); diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp index 7f0168976..007efe728 100644 --- a/src/core/devtools_frontend_qt.cpp +++ b/src/core/devtools_frontend_qt.cpp @@ -267,7 +267,7 @@ void DevToolsFrontendQt::ReadyToCommitNavigation(content::NavigationHandle *navi } } -void DevToolsFrontendQt::DocumentAvailableInMainFrame(content::RenderFrameHost * /*render_frame_host*/) +void DevToolsFrontendQt::DocumentOnLoadCompletedInPrimaryMainFrame() { if (!m_inspectedContents) return; @@ -354,9 +354,10 @@ void DevToolsFrontendQt::HandleMessageFromDevToolsFrontend(base::Value message) int request_id = message.FindIntKey("id").value_or(0); const std::string &method = *method_ptr; - base::Value::ListView params; + base::Value::List *paramsPtr; if (params_value) - params = params_value->GetList(); + paramsPtr = params_value->GetIfList(); + base::Value::List ¶ms = *paramsPtr; if (method == "dispatchProtocolMessage" && params.size() == 1) { const std::string *protocol_message = params[0].GetIfString(); diff --git a/src/core/devtools_frontend_qt.h b/src/core/devtools_frontend_qt.h index bbc867862..78a3aaefc 100644 --- a/src/core/devtools_frontend_qt.h +++ b/src/core/devtools_frontend_qt.h @@ -67,7 +67,7 @@ protected: private: // WebContentsObserver overrides void ReadyToCommitNavigation(content::NavigationHandle* navigation_handle) override; - void DocumentAvailableInMainFrame(content::RenderFrameHost *render_frame_host) override; + void DocumentOnLoadCompletedInPrimaryMainFrame() override; void WebContentsDestroyed() override; void SendMessageAck(int request_id, base::Value arg1); diff --git a/src/core/download_manager_delegate_qt.cpp b/src/core/download_manager_delegate_qt.cpp index b5ac6868c..866ded680 100644 --- a/src/core/download_manager_delegate_qt.cpp +++ b/src/core/download_manager_delegate_qt.cpp @@ -164,14 +164,14 @@ bool DownloadManagerDelegateQt::DetermineDownloadTarget(download::DownloadItem * QFileInfo suggestedFile(info.path); if (info.accepted && !suggestedFile.absoluteDir().mkpath(suggestedFile.absolutePath())) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) // TODO: Remove this when https://bugreports.qt.io/browse/QTBUG-85997 is fixed. QDir suggestedDir = QDir(suggestedFile.absolutePath()); if (!suggestedDir.isRoot() || !suggestedDir.exists()) { #endif qWarning("Creating download path failed, download cancelled: %s", suggestedFile.absolutePath().toUtf8().data()); info.accepted = false; -#if defined(OS_WIN) +#if defined(Q_OS_WIN) } #endif } diff --git a/src/core/extensions/extension_host_delegate_qt.cpp b/src/core/extensions/extension_host_delegate_qt.cpp index 7468cd9c5..6cc268e75 100644 --- a/src/core/extensions/extension_host_delegate_qt.cpp +++ b/src/core/extensions/extension_host_delegate_qt.cpp @@ -69,13 +69,9 @@ bool ExtensionHostDelegateQt::CheckMediaAccessPermission(content::RenderFrameHos return false; } -content::PictureInPictureResult ExtensionHostDelegateQt::EnterPictureInPicture(content::WebContents *web_contents, - const viz::SurfaceId &surface_id, - const gfx::Size &natural_size) +content::PictureInPictureResult ExtensionHostDelegateQt::EnterPictureInPicture(content::WebContents *web_contents) { Q_UNUSED(web_contents); - Q_UNUSED(surface_id); - Q_UNUSED(natural_size); Q_UNREACHABLE(); return content::PictureInPictureResult::kNotSupported; diff --git a/src/core/extensions/extension_host_delegate_qt.h b/src/core/extensions/extension_host_delegate_qt.h index a9eed6462..e5577b3fd 100644 --- a/src/core/extensions/extension_host_delegate_qt.h +++ b/src/core/extensions/extension_host_delegate_qt.h @@ -30,9 +30,7 @@ public: const GURL &security_origin, blink::mojom::MediaStreamType type, const Extension *extension) override; - content::PictureInPictureResult EnterPictureInPicture(content::WebContents *web_contents, - const viz::SurfaceId &surface_id, - const gfx::Size &natural_size) override; + content::PictureInPictureResult EnterPictureInPicture(content::WebContents *web_contents) override; void ExitPictureInPicture() override; }; diff --git a/src/core/extensions/extension_system_qt.cpp b/src/core/extensions/extension_system_qt.cpp index 99abc497a..20b3b7bf3 100644 --- a/src/core/extensions/extension_system_qt.cpp +++ b/src/core/extensions/extension_system_qt.cpp @@ -378,12 +378,11 @@ void ExtensionSystemQt::RegisterExtensionWithRequestContexts(const Extension *ex std::move(callback)); } -void ExtensionSystemQt::UnregisterExtensionWithRequestContexts(const std::string &extension_id, - const UnloadedExtensionReason reason) +void ExtensionSystemQt::UnregisterExtensionWithRequestContexts(const std::string &extension_id) { base::PostTask( FROM_HERE, {BrowserThread::IO}, - base::BindOnce(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); + base::BindOnce(&InfoMap::RemoveExtension, info_map(), extension_id)); } bool ExtensionSystemQt::is_ready() const diff --git a/src/core/extensions/extension_system_qt.h b/src/core/extensions/extension_system_qt.h index 59a91b5c4..68ea7ecfe 100644 --- a/src/core/extensions/extension_system_qt.h +++ b/src/core/extensions/extension_system_qt.h @@ -65,8 +65,7 @@ public: void RegisterExtensionWithRequestContexts(const Extension *extension, base::OnceClosure callback) override; - void UnregisterExtensionWithRequestContexts(const std::string &extension_id, - const UnloadedExtensionReason reason) override; + void UnregisterExtensionWithRequestContexts(const std::string &extension_id) override; ContentVerifier *content_verifier() override; std::unique_ptr GetDependentExtensions(const Extension *extension) override; diff --git a/src/core/extensions/extension_web_contents_observer_qt.cpp b/src/core/extensions/extension_web_contents_observer_qt.cpp index acb05e147..03f608227 100644 --- a/src/core/extensions/extension_web_contents_observer_qt.cpp +++ b/src/core/extensions/extension_web_contents_observer_qt.cpp @@ -22,6 +22,7 @@ namespace extensions { ExtensionWebContentsObserverQt::ExtensionWebContentsObserverQt(content::WebContents *web_contents) : ExtensionWebContentsObserver(web_contents) + , content::WebContentsUserData(*web_contents) { } diff --git a/src/core/extensions/extensions_browser_client_qt.cpp b/src/core/extensions/extensions_browser_client_qt.cpp index fae252282..9470a2546 100644 --- a/src/core/extensions/extensions_browser_client_qt.cpp +++ b/src/core/extensions/extensions_browser_client_qt.cpp @@ -167,7 +167,8 @@ private: if (!head->mime_type.empty()) { head->headers->AddHeader(net::HttpRequestHeaders::kContentType, head->mime_type.c_str()); } - client_->OnReceiveResponse(std::move(head)); + client_->OnReceiveResponse(std::move(head), + mojo::ScopedDataPipeConsumerHandle()); client_->OnStartLoadingResponseBody(std::move(consumer_handle)); uint32_t write_size = data->size(); diff --git a/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp b/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp index d3c5c7a63..a55294981 100644 --- a/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp +++ b/src/core/extensions/pdf_iframe_navigation_throttle_qt.cpp @@ -36,7 +36,8 @@ class PdfWebContentsLifetimeHelper : public content::WebContentsUserData(*web_contents) + , web_contents_(web_contents) {} base::WeakPtr GetWeakPtr() diff --git a/src/core/file_picker_controller.cpp b/src/core/file_picker_controller.cpp index b81d7788a..84b5740d6 100644 --- a/src/core/file_picker_controller.cpp +++ b/src/core/file_picker_controller.cpp @@ -78,16 +78,16 @@ void FilePickerController::accepted(const QStringList &files) base::FilePath filePath = toFilePath(urlString).NormalizePathSeparators(); std::vector pathComponents; // Splits the file URL into scheme, host name, path and file name. - filePath.GetComponents(&pathComponents); + pathComponents = filePath.GetComponents(); QString absolutePath; -#if !defined(OS_WIN) +#if !defined(Q_OS_WIN) absolutePath = "/"; #endif QString scheme = toQt(pathComponents[0]); if (scheme.size() > 5) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) // There is no slash at the end of the file scheme and it is valid on Windows: file:C:/ if (scheme.size() == 7 && scheme.at(5).isLetter() && scheme.at(6) == ':') { absolutePath += scheme.at(5) + ":/"; @@ -95,7 +95,7 @@ void FilePickerController::accepted(const QStringList &files) #endif qWarning("Ignoring invalid item in FilePickerController::accepted(QStringList): %s", qPrintable(urlString)); continue; -#if defined(OS_WIN) +#if defined(Q_OS_WIN) } #endif } @@ -104,7 +104,7 @@ void FilePickerController::accepted(const QStringList &files) if (base::FilePath::IsSeparator(urlString.at(5).toLatin1()) && base::FilePath::IsSeparator(urlString.at(6).toLatin1()) && !base::FilePath::IsSeparator(urlString.at(7).toLatin1())) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) if (urlString.at(8) != ':' && pathComponents.size() > 2) { absolutePath += "//"; #else diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp index 7a080aabf..d0df48c0a 100644 --- a/src/core/media_capture_devices_dispatcher.cpp +++ b/src/core/media_capture_devices_dispatcher.cpp @@ -215,7 +215,7 @@ public: } private: - gfx::NativeViewId OnStarted(base::OnceClosure stop, SourceCallback source, + gfx::NativeViewId OnStarted(base::RepeatingClosure stop, SourceCallback source, const std::string& label, std::vector screen_capture_ids, StateChangeCallback state_change) override @@ -241,7 +241,7 @@ private: base::WeakPtr m_delegate; const blink::MediaStreamDevices m_devices; bool m_started = false; - base::OnceClosure m_onStop; // currently unused + base::RepeatingClosure m_onStop; // currently unused }; } // namespace @@ -332,7 +332,7 @@ MediaCaptureDevicesDispatcher *MediaCaptureDevicesDispatcher::GetInstance() MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() : m_webContentsCollection(this) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) // Currently loopback audio capture is supported only on Windows. m_loopbackAudioSupported = true; #endif diff --git a/src/core/net/client_cert_override.cpp b/src/core/net/client_cert_override.cpp index 875918c57..f79aae482 100644 --- a/src/core/net/client_cert_override.cpp +++ b/src/core/net/client_cert_override.cpp @@ -24,11 +24,11 @@ #include "net/ssl/client_cert_store_nss.h" #endif -#if defined(OS_WIN) +#if defined(Q_OS_WIN) #include "net/ssl/client_cert_store_win.h" #endif -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) #include "net/ssl/client_cert_store_mac.h" #endif @@ -46,7 +46,7 @@ public: std::move(private_key_callback).Run(m_key); } -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) SecIdentityRef sec_identity_ref() const override { return nullptr; @@ -125,9 +125,9 @@ std::unique_ptr ClientCertOverrideStore::createNativeStore { #if defined(USE_NSS_CERTS) return std::unique_ptr(new net::ClientCertStoreNSS(net::ClientCertStoreNSS::PasswordDelegateFactory())); -#elif defined(OS_WIN) +#elif defined(Q_OS_WIN) return std::unique_ptr(new net::ClientCertStoreWin()); -#elif defined(OS_MAC) +#elif BUILDFLAG(IS_MAC) return std::unique_ptr(new net::ClientCertStoreMac()); #else return nullptr; diff --git a/src/core/net/custom_url_loader_factory.cpp b/src/core/net/custom_url_loader_factory.cpp index a41ece61b..e06d55373 100644 --- a/src/core/net/custom_url_loader_factory.cpp +++ b/src/core/net/custom_url_loader_factory.cpp @@ -286,7 +286,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)); + m_client->OnReceiveResponse(std::move(m_head), mojo::ScopedDataPipeConsumerHandle()); m_client->OnStartLoadingResponseBody(std::move(m_pipeConsumerHandle)); m_head = nullptr; @@ -338,7 +338,7 @@ private: m_head->headers = base::MakeRefCounted(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)); + m_client->OnReceiveResponse(std::move(m_head), mojo::ScopedDataPipeConsumerHandle()); CompleteWithFailure(net::Error(error)); } void notifyReadyRead() override diff --git a/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp b/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp index e0e9bc80a..2a063cd7c 100644 --- a/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp +++ b/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp @@ -28,6 +28,7 @@ #include "web_engine_settings.h" #include +#include namespace QtWebEngineCore { @@ -81,7 +82,7 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL std::string payload = view_id; mojo::PendingRemote dummy_new_loader; - ignore_result(dummy_new_loader.InitWithNewPipeAndPassReceiver()); + std::ignore = dummy_new_loader.InitWithNewPipeAndPassReceiver(); mojo::Remote new_client; mojo::PendingReceiver new_client_receiver = new_client.BindNewPipeAndPassReceiver(); @@ -115,9 +116,11 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL mojo::PendingRemote original_loader; mojo::PendingReceiver original_client; + mojo::ScopedDataPipeConsumerHandle body; delegate_->InterceptResponse(std::move(dummy_new_loader), - std::move(new_client_receiver), &original_loader, - &original_client); + std::move(new_client_receiver), + &original_loader, &original_client, + &body); // Make a deep copy of URLResponseHead before passing it cross-thread. auto deep_copied_response = response_head->Clone(); @@ -135,6 +138,7 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL transferrable_loader->url_loader_client = std::move(original_client); transferrable_loader->head = std::move(deep_copied_response); transferrable_loader->head->intercepted_by_plugin = true; + transferrable_loader->body = std::move(body); bool embedded = m_request_destination != network::mojom::RequestDestination::kDocument; diff --git a/src/core/net/proxying_restricted_cookie_manager_qt.cpp b/src/core/net/proxying_restricted_cookie_manager_qt.cpp index 0109f5697..02de152fa 100644 --- a/src/core/net/proxying_restricted_cookie_manager_qt.cpp +++ b/src/core/net/proxying_restricted_cookie_manager_qt.cpp @@ -69,12 +69,14 @@ void ProxyingRestrictedCookieManagerQt::GetAllForUrl(const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, network::mojom::CookieManagerGetOptionsPtr options, + bool partitioned_cookies_runtime_feature_enabled, GetAllForUrlCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); if (allowCookies(url, site_for_cookies)) { - underlying_restricted_cookie_manager_->GetAllForUrl(url, site_for_cookies, top_frame_origin, std::move(options), std::move(callback)); + underlying_restricted_cookie_manager_->GetAllForUrl(url, site_for_cookies, top_frame_origin, std::move(options), + partitioned_cookies_runtime_feature_enabled, std::move(callback)); } else { std::move(callback).Run(std::vector()); } @@ -109,12 +111,14 @@ void ProxyingRestrictedCookieManagerQt::SetCookieFromString(const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, const std::string &cookie, + bool partitioned_cookies_runtime_feature_enabled, SetCookieFromStringCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); if (allowCookies(url, site_for_cookies)) { - underlying_restricted_cookie_manager_->SetCookieFromString(url, site_for_cookies, top_frame_origin, cookie, std::move(callback)); + underlying_restricted_cookie_manager_->SetCookieFromString(url, site_for_cookies, top_frame_origin, cookie, + partitioned_cookies_runtime_feature_enabled, std::move(callback)); } else { std::move(callback).Run(); } @@ -123,12 +127,14 @@ void ProxyingRestrictedCookieManagerQt::SetCookieFromString(const GURL &url, void ProxyingRestrictedCookieManagerQt::GetCookiesString(const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, + bool partitioned_cookies_runtime_feature_enabled, GetCookiesStringCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); if (allowCookies(url, site_for_cookies)) { - underlying_restricted_cookie_manager_->GetCookiesString(url, site_for_cookies, top_frame_origin, std::move(callback)); + underlying_restricted_cookie_manager_->GetCookiesString(url, site_for_cookies, top_frame_origin, + partitioned_cookies_runtime_feature_enabled, std::move(callback)); } else { std::move(callback).Run(""); } diff --git a/src/core/net/proxying_restricted_cookie_manager_qt.h b/src/core/net/proxying_restricted_cookie_manager_qt.h index 7b897e5a4..bd7bc300f 100644 --- a/src/core/net/proxying_restricted_cookie_manager_qt.h +++ b/src/core/net/proxying_restricted_cookie_manager_qt.h @@ -28,6 +28,7 @@ public: const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, network::mojom::CookieManagerGetOptionsPtr options, + bool partitioned_cookies_runtime_feature_enabled, GetAllForUrlCallback callback) override; void SetCanonicalCookie(const net::CanonicalCookie& cookie, const GURL &url, @@ -43,10 +44,12 @@ public: const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, const std::string &cookie, + bool partitioned_cookies_runtime_feature_enabled, SetCookieFromStringCallback callback) override; void GetCookiesString(const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, + bool partitioned_cookies_runtime_feature_enabled, GetCookiesStringCallback callback) override; void CookiesEnabledFor(const GURL &url, const net::SiteForCookies &site_for_cookies, diff --git a/src/core/net/proxying_url_loader_factory_qt.cpp b/src/core/net/proxying_url_loader_factory_qt.cpp index 43fba5583..a4713150b 100644 --- a/src/core/net/proxying_url_loader_factory_qt.cpp +++ b/src/core/net/proxying_url_loader_factory_qt.cpp @@ -86,7 +86,7 @@ public: void Restart(); // network::mojom::URLLoaderClient - void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override; + void OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle) 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; @@ -376,11 +376,11 @@ void InterceptedRequest::ContinueAfterIntercept() // URLLoaderClient methods. -void InterceptedRequest::OnReceiveResponse(network::mojom::URLResponseHeadPtr head) +void InterceptedRequest::OnReceiveResponse(network::mojom::URLResponseHeadPtr head, mojo::ScopedDataPipeConsumerHandle handle) { current_response_ = head.Clone(); - target_client_->OnReceiveResponse(std::move(head)); + target_client_->OnReceiveResponse(std::move(head), std::move(handle)); } void InterceptedRequest::OnReceiveRedirect(const net::RedirectInfo &redirect_info, network::mojom::URLResponseHeadPtr head) diff --git a/src/core/net/system_network_context_manager.cpp b/src/core/net/system_network_context_manager.cpp index a804ff8f7..beafa6a6d 100644 --- a/src/core/net/system_network_context_manager.cpp +++ b/src/core/net/system_network_context_manager.cpp @@ -39,7 +39,7 @@ network::mojom::HttpAuthStaticParamsPtr CreateHttpAuthStaticParams() { network::mojom::HttpAuthStaticParamsPtr auth_static_params = network::mojom::HttpAuthStaticParams::New(); - auth_static_params->supported_schemes = { "basic", "digest", "ntlm", "negotiate" }; + auth_static_params->allowed_schemes = { "basic", "digest", "ntlm", "negotiate" }; return auth_static_params; } @@ -186,22 +186,33 @@ void SystemNetworkContextManager::OnNetworkServiceCreated(network::mojom::Networ network_service->ConfigureHttpAuthPrefs(CreateHttpAuthDynamicParams()); // Configure the Certificate Transparency logs. - std::vector> disqualified_logs = + std::vector> disqualified_logs = certificate_transparency::GetDisqualifiedLogs(); std::vector log_list_mojo; for (const auto &ct_log : certificate_transparency::GetKnownLogs()) { network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New(); log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length); + log_info->id = crypto::SHA256HashString(log_info->public_key); log_info->name = ct_log.log_name; + log_info->current_operator = ct_log.current_operator; - std::string log_id = crypto::SHA256HashString(log_info->public_key); auto it = std::lower_bound( - std::begin(disqualified_logs), std::end(disqualified_logs), log_id, + std::begin(disqualified_logs), std::end(disqualified_logs), log_info->id, [](const auto& disqualified_log, const std::string& log_id) { return disqualified_log.first < log_id; }); - if (it != std::end(disqualified_logs) && it->first == log_id) + if (it != std::end(disqualified_logs) && it->first == log_info->id) log_info->disqualified_at = it->second; + + for (size_t i = 0; i < ct_log.previous_operators_length; i++) { + const auto& op = ct_log.previous_operators[i]; + network::mojom::PreviousOperatorEntryPtr previous_operator = + network::mojom::PreviousOperatorEntry::New(); + previous_operator->name = op.name; + previous_operator->end_time = op.end_time; + log_info->previous_operators.push_back(std::move(previous_operator)); + } + log_list_mojo.push_back(std::move(log_info)); } network_service->UpdateCtLogList( diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp index acb0b3fcc..68bbb42fa 100644 --- a/src/core/net/webui_controller_factory_qt.cpp +++ b/src/core/net/webui_controller_factory_qt.cpp @@ -17,7 +17,6 @@ #include "chrome/browser/ui/webui/device_log_ui.h" #include "chrome/browser/ui/webui/devtools_ui.h" #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" -#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" #include "chrome/browser/ui/webui/user_actions/user_actions_ui.h" #include "chrome/common/url_constants.h" #include "content/public/browser/web_ui.h" @@ -27,7 +26,7 @@ #include "printing/buildflags/buildflags.h" #include "url/gurl.h" -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) #include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h" #endif @@ -93,9 +92,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI *web_ui, Profile *profile, co if (url.host() == chrome::kChromeUINetInternalsHost) return &NewWebUI; - if (url.host() == chrome::kChromeUIQuotaInternalsHost) - return &NewWebUI; - if (url.SchemeIs(content::kChromeDevToolsScheme)) { // if (!DevToolsUIBindings::IsValidFrontendURL(url)) // return nullptr; @@ -131,7 +127,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI *web_ui, Profile *profile, co if (url.host_piece() == chrome::kChromeUIWebRtcLogsHost) return &NewWebUI; #endif -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if BUILDFLAG(IS_LINUX) // Consider enabling for BUILDFLAG(IS_WIN) if (url.host_piece() == chrome::kChromeUISandboxHost) return &NewWebUI; #endif diff --git a/src/core/ozone/gl_context_qt.cpp b/src/core/ozone/gl_context_qt.cpp index ab6c5ca8c..75f8e8422 100644 --- a/src/core/ozone/gl_context_qt.cpp +++ b/src/core/ozone/gl_context_qt.cpp @@ -11,7 +11,7 @@ #include "ui/gl/gl_context_egl.h" #include "ui/gl/gl_implementation.h" -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) #include "ui/gl/gl_context_wgl.h" #endif @@ -94,7 +94,7 @@ void* GLContextHelper::getGlXConfig() void* GLContextHelper::getEGLDisplay() { -#ifdef Q_OS_WIN +#if BUILDFLAG(IS_WIN) // Windows QPA plugin does not implement resourceForIntegration for "egldisplay". // Use resourceForContext instead. return resourceForContext(QByteArrayLiteral("egldisplay")); @@ -165,7 +165,7 @@ bool GLContextHelper::isCreateContextRobustnessSupported() QT_END_NAMESPACE -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) namespace gl { namespace init { @@ -192,4 +192,4 @@ scoped_refptr CreateGLContext(GLShareGroup* share_group, } // namespace init } // namespace gl -#endif // defined(OS_WIN) +#endif // BUILDFLAG(IS_WIN) diff --git a/src/core/ozone/gl_surface_egl_qt.cpp b/src/core/ozone/gl_surface_egl_qt.cpp index 9b3e0b8ad..a5821ae0d 100644 --- a/src/core/ozone/gl_surface_egl_qt.cpp +++ b/src/core/ozone/gl_surface_egl_qt.cpp @@ -8,7 +8,7 @@ #include "gl_context_qt.h" #include "ozone/gl_surface_egl_qt.h" -#if !defined(OS_MAC) +#if !BUILDFLAG(IS_MAC) #include "ui/gl/egl_util.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_surface_egl.h" @@ -107,9 +107,9 @@ bool GLSurfaceEGL::IsANGLEContextVirtualizationSupported() return false; } -bool GLSurfaceEGL::IsANGLEVulkanImageClientBufferSupported() +bool GLSurfaceEGL::IsANGLEVulkanImageSupported() { - return false; + return false; } bool GLSurfaceEGL::IsEGLQueryDeviceSupported() @@ -367,4 +367,4 @@ std::string DriverEGL::GetPlatformExtensions() return ""; } } // namespace gl -#endif // !defined(OS_MAC) +#endif // !BUILDFLAG(IS_MAC) diff --git a/src/core/ozone/gl_surface_qt.cpp b/src/core/ozone/gl_surface_qt.cpp index 1985f50ca..c7c2295f7 100644 --- a/src/core/ozone/gl_surface_qt.cpp +++ b/src/core/ozone/gl_surface_qt.cpp @@ -5,12 +5,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE.Chromium file. -#if !defined(OS_MAC) +#include "qtwebenginecoreglobal_p.h" + +#if !defined(Q_OS_MACOS) #include "gl_surface_qt.h" -#include "qtwebenginecoreglobal_p.h" -#if defined(OS_WIN) +#include "base/logging.h" + +#if BUILDFLAG(IS_WIN) #include "web_engine_context.h" #include "ozone/gl_surface_wgl_qt.h" #include "ozone/gl_surface_egl_qt.h" @@ -83,7 +86,7 @@ void* GLSurfaceQt::GetConfig() return g_config; } -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) namespace init { bool InitializeGLOneOffPlatform() { @@ -153,10 +156,10 @@ CreateViewGLSurface(gfx::AcceleratedWidget window) } } // namespace init -#endif // defined(OS_WIN) +#endif // BUILDFLAG(IS_WIN) } // namespace gl -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) namespace gpu { class GpuCommandBufferStub; class GpuChannelManager; @@ -209,5 +212,5 @@ void DirectCompositionSurfaceWin::DisableSoftwareOverlays() { } } // namespace gl -#endif -#endif // !defined(OS_MAC) +#endif // BUILDFLAG(IS_WIN) +#endif // !defined(Q_OS_MACOS) diff --git a/src/core/ozone/gl_surface_wgl_qt.cpp b/src/core/ozone/gl_surface_wgl_qt.cpp index 0d830451a..7598732c3 100644 --- a/src/core/ozone/gl_surface_wgl_qt.cpp +++ b/src/core/ozone/gl_surface_wgl_qt.cpp @@ -3,7 +3,7 @@ #include "gl_surface_wgl_qt.h" -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) #include "ui/gl/gl_surface_wgl.h" namespace gl { @@ -53,4 +53,4 @@ void *GLSurfaceWGLQt::GetConfig() } //namespace gl -#endif // defined(OS_WIN) +#endif // BUILDFLAG(IS_WIN) diff --git a/src/core/ozone/gl_surface_wgl_qt.h b/src/core/ozone/gl_surface_wgl_qt.h index 667a94f84..60fc78499 100644 --- a/src/core/ozone/gl_surface_wgl_qt.h +++ b/src/core/ozone/gl_surface_wgl_qt.h @@ -6,7 +6,7 @@ #include "gl_surface_qt.h" -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) namespace gl { @@ -32,6 +32,6 @@ private: }; } -#endif // defined(OS_WIN) +#endif // BUILDFLAG(IS_WIN) #endif // GL_SURFACE_WGL_QT_H diff --git a/src/core/ozone/ozone_platform_qt.cpp b/src/core/ozone/ozone_platform_qt.cpp index f3ba7dc50..8ab3aa1a7 100644 --- a/src/core/ozone/ozone_platform_qt.cpp +++ b/src/core/ozone/ozone_platform_qt.cpp @@ -53,7 +53,7 @@ public: std::unique_ptr CreateInputMethod(internal::InputMethodDelegate *delegate, gfx::AcceleratedWidget widget) override; std::unique_ptr CreateScreen() override { return nullptr; } private: - void InitializeUI(const ui::OzonePlatform::InitParams &) override; + bool InitializeUI(const ui::OzonePlatform::InitParams &) override; void InitializeGPU(const ui::OzonePlatform::InitParams &) override; void InitScreen(ui::PlatformScreen *) override {} @@ -162,7 +162,7 @@ static std::string getCurrentKeyboardLayout() } #endif // BUILDFLAG(USE_XKBCOMMON) -void OzonePlatformQt::InitializeUI(const ui::OzonePlatform::InitParams &) +bool OzonePlatformQt::InitializeUI(const ui::OzonePlatform::InitParams &) { #if BUILDFLAG(USE_XKBCOMMON) std::string layout = getCurrentKeyboardLayout(); @@ -182,6 +182,7 @@ void OzonePlatformQt::InitializeUI(const ui::OzonePlatform::InitParams &) input_controller_ = CreateStubInputController(); cursor_factory_.reset(new BitmapCursorFactory()); gpu_platform_support_host_.reset(ui::CreateStubGpuPlatformSupportHost()); + return true; } void OzonePlatformQt::InitializeGPU(const ui::OzonePlatform::InitParams &) diff --git a/src/core/ozone/ozone_platform_qt.h b/src/core/ozone/ozone_platform_qt.h index ca1dea917..23629b2eb 100644 --- a/src/core/ozone/ozone_platform_qt.h +++ b/src/core/ozone/ozone_platform_qt.h @@ -4,16 +4,12 @@ #ifndef OZONE_PLATFORM_QT_H #define OZONE_PLATFORM_QT_H -#if defined(USE_OZONE) - -#include "ui/ozone/public/ozone_platform.h" - namespace ui { +class OzonePlatform; // Constructor hook for use in ozone_platform_list.cc -OzonePlatform* CreateOzonePlatformQt(); +OzonePlatform *CreateOzonePlatformQt(); } // namespace ui -#endif // defined(USE_OZONE) #endif // OZONE_PLATFORM_QT_H diff --git a/src/core/printing/print_view_manager_qt.cpp b/src/core/printing/print_view_manager_qt.cpp index 0cda52940..6eb3d7419 100644 --- a/src/core/printing/print_view_manager_qt.cpp +++ b/src/core/printing/print_view_manager_qt.cpp @@ -250,6 +250,7 @@ bool PrintViewManagerQt::PrintToPDFInternal(const QPageLayout &pageLayout, PrintViewManagerQt::PrintViewManagerQt(content::WebContents *contents) : PrintViewManagerBaseQt(contents) + , content::WebContentsUserData(*contents) , m_printPreviewRfh(nullptr) { diff --git a/src/core/process_main.cpp b/src/core/process_main.cpp index 70c4a0970..ce92db083 100644 --- a/src/core/process_main.cpp +++ b/src/core/process_main.cpp @@ -4,10 +4,10 @@ #include "qtwebenginecoreglobal_p.h" #include "content_main_delegate_qt.h" #include "content/public/app/content_main.h" -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) #include "sandbox/win/src/sandbox_types.h" #include "content/public/app/sandbox_helper_win.h" -#elif defined(OS_MAC) +#elif BUILDFLAG(IS_MAC) #include "sandbox/mac/seatbelt_exec.h" #endif @@ -19,7 +19,7 @@ int processMain(int argc, const char **argv) ContentMainDelegateQt delegate; content::ContentMainParams params(&delegate); -#if defined(OS_WIN) +#if BUILDFLAG(IS_WIN) HINSTANCE instance_handle = NULL; params.sandbox_info = QtWebEngineSandbox::staticSandboxInterfaceInfo(); sandbox::SandboxInterfaceInfo sandbox_info = {nullptr}; @@ -31,14 +31,14 @@ int processMain(int argc, const char **argv) #else params.argc = argc; params.argv = argv; -#endif // OS_WIN -#if defined(OS_MAC) +#endif // IS_WIN +#if BUILDFLAG(IS_MAC) sandbox::SeatbeltExecServer::CreateFromArgumentsResult seatbelt = sandbox::SeatbeltExecServer::CreateFromArguments(argv[0], argc, const_cast(argv)); if (seatbelt.sandbox_required) { CHECK(seatbelt.server->InitializeSandbox()); } -#endif // defined(OS_MAC) +#endif // IS_MAC return content::ContentMain(std::move(params)); } diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h index dfb451b4d..75b0515f0 100644 --- a/src/core/render_widget_host_view_qt.h +++ b/src/core/render_widget_host_view_qt.h @@ -120,7 +120,7 @@ public: ui::Compositor *GetCompositor() override; absl::optional GetDisplayFeature() override; void SetDisplayFeatureForTesting(const content::DisplayFeature*) override; -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) void ShowSharePicker( const std::string &title, const std::string &text, @@ -131,7 +131,7 @@ public: void SpeakSelection() override { QT_NOT_YET_IMPLEMENTED } void ShowDefinitionForSelection() override { QT_NOT_YET_IMPLEMENTED } void SetWindowFrameInScreen(const gfx::Rect&) override { QT_NOT_YET_IMPLEMENTED } -#endif // defined(OS_MAC) +#endif // BUILDFLAG(IS_MAC) void NotifyHostAndDelegateOnWasShown(blink::mojom::RecordContentToVisibleTimeRequestPtr) override { QT_NOT_YET_IMPLEMENTED } void RequestPresentationTimeFromHostOrDelegate(blink::mojom::RecordContentToVisibleTimeRequestPtr) override { QT_NOT_YET_IMPLEMENTED } void CancelPresentationTimeRequestForHostAndDelegate() override { QT_NOT_YET_IMPLEMENTED } diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 372c519f1..eeb0c3de9 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -238,6 +238,7 @@ void ContentRendererClientQt::RunScriptsAtDocumentIdle(content::RenderFrame *ren void ContentRendererClientQt::PrepareErrorPage(content::RenderFrame *renderFrame, const blink::WebURLError &web_error, const std::string &httpMethod, + content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, std::string *errorHtml) { GetNavigationErrorStringsInternal( @@ -251,6 +252,7 @@ void ContentRendererClientQt::PrepareErrorPageForHttpStatusError(content::Render const blink::WebURLError &error, const std::string &httpMethod, int http_status, + content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, std::string *errorHtml) { GetNavigationErrorStringsInternal(renderFrame, httpMethod, @@ -381,18 +383,19 @@ 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(std::vector> *key_systems) +static void AddExternalClearKey(const media::mojom::KeySystemCapabilityPtr &capability, + media::KeySystemPropertiesVector *key_systems) { - static const char kExternalClearKeyKeySystem[] = "org.chromium.externalclearkey"; - - // TODO(xhwang): Actually use `capability` to determine capabilities. - media::mojom::KeySystemCapabilityPtr capability; - if (!content::IsKeySystemSupported(kExternalClearKeyKeySystem, &capability)) { - DVLOG(1) << "External Clear Key not supported"; + Q_UNUSED(capability); + if (!base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting)) { + DLOG(ERROR) << "ExternalClearKey supported despite not enabled."; return; } + // TODO(xhwang): Actually use `capability` to determine capabilities. key_systems->push_back(std::make_unique()); } @@ -509,14 +512,9 @@ static media::SupportedCodecs GetSupportedCodecs(const media::CdmCapability& cap return supported_codecs; } -static void AddWidevine(std::vector> *key_systems) +static void AddWidevine(const media::mojom::KeySystemCapabilityPtr &capability, + media::KeySystemPropertiesVector *key_systems) { - media::mojom::KeySystemCapabilityPtr capability; - if (!content::IsKeySystemSupported(kWidevineKeySystem, &capability)) { - DVLOG(1) << "Widevine CDM is not currently available."; - return; - } - // Codecs and encryption schemes. media::SupportedCodecs codecs = media::EME_CODEC_NONE; media::SupportedCodecs hw_secure_codecs = media::EME_CODEC_NONE; @@ -565,17 +563,35 @@ static void AddWidevine(std::vector> #endif // BUILDFLAG(ENABLE_WIDEVINE) #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) -void ContentRendererClientQt::AddSupportedKeySystems(std::vector> *key_systems) +void OnKeySystemSupportUpdated(media::GetSupportedKeySystemsCB cb, + content::KeySystemCapabilityPtrMap key_system_capabilities) { -#if BUILDFLAG(ENABLE_LIBRARY_CDMS) - if (base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting)) - AddExternalClearKey(key_systems); - + media::KeySystemPropertiesVector key_systems; + for (const auto &entry : key_system_capabilities) { + const auto &key_system = entry.first; + const auto &capability = entry.second; #if BUILDFLAG(ENABLE_WIDEVINE) - AddWidevine(key_systems); -#endif // BUILDFLAG(ENABLE_WIDEVINE) + if (key_system == kWidevineKeySystem) { + AddWidevine(capability, &key_systems); + continue; + } +#endif // BUILDFLAG(ENABLE_WIDEVINE) -#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) + if (key_system == kExternalClearKeyKeySystem) { + AddExternalClearKey(capability, &key_systems); + continue; + } + + DLOG(ERROR) << "Unrecognized key system: " << key_system; + } + + cb.Run(std::move(key_systems)); +} + +void ContentRendererClientQt::GetSupportedKeySystems(media::GetSupportedKeySystemsCB cb) +{ + content::ObserveKeySystemSupportUpdate( + base::BindRepeating(&OnKeySystemSupportUpdated, std::move(cb))); } #if QT_CONFIG(webengine_spellchecker) diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h index 8ecb0c831..6c4cdf0ee 100644 --- a/src/core/renderer/content_renderer_client_qt.h +++ b/src/core/renderer/content_renderer_client_qt.h @@ -56,18 +56,18 @@ public: void PrepareErrorPage(content::RenderFrame *render_frame, const blink::WebURLError &error, const std::string &http_method, + content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, std::string *error_html) override; void PrepareErrorPageForHttpStatusError(content::RenderFrame *render_frame, const blink::WebURLError &error, const std::string &http_method, int http_status, + content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, std::string *error_html) override; - uint64_t VisitedLinkHash(const char *canonical_url, size_t length) override; bool IsLinkVisited(uint64_t linkHash) override; std::unique_ptr CreatePrescientNetworking(content::RenderFrame *render_frame) override; - void AddSupportedKeySystems(std::vector> *key_systems) override; - + void GetSupportedKeySystems(media::GetSupportedKeySystemsCB cb) override; void RunScriptsAtDocumentStart(content::RenderFrame *render_frame) override; void RunScriptsAtDocumentEnd(content::RenderFrame *render_frame) override; void RunScriptsAtDocumentIdle(content::RenderFrame *render_frame) override; diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp index 4f1ec5ba2..b29892b68 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp @@ -16,7 +16,6 @@ #include "base/command_line.h" #include "base/lazy_instance.h" #include "base/stl_util.h" -#include "components/guest_view/renderer/guest_view_container_dispatcher.h" #include "content/public/common/content_constants.h" #include "content/public/common/content_switches.h" #include "content/public/renderer/render_frame.h" @@ -111,10 +110,8 @@ void ExtensionsRendererClientQt::RenderThreadStarted() extension_dispatcher_->OnRenderThreadStarted(thread); permissions_policy_delegate_.reset(new RendererPermissionsPolicyDelegateQt(extension_dispatcher_.get())); resource_request_policy_.reset(new extensions::ResourceRequestPolicyQt(extension_dispatcher_.get())); - guest_view_container_dispatcher_.reset(new guest_view::GuestViewContainerDispatcher()); thread->AddObserver(extension_dispatcher_.get()); - thread->AddObserver(guest_view_container_dispatcher_.get()); } void ExtensionsRendererClientQt::RenderFrameCreated(content::RenderFrame *render_frame, diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.h b/src/core/renderer/extensions/extensions_renderer_client_qt.h index 33395a615..f9cac443c 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.h +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.h @@ -35,10 +35,6 @@ class Dispatcher; class ResourceRequestPolicyQt; } -namespace guest_view { -class GuestViewContainerDispatcher; -} - namespace QtWebEngineCore { class ExtensionsDispatcherDelegateQt; @@ -90,7 +86,6 @@ private: std::unique_ptr extension_dispatcher_delegate_; std::unique_ptr permissions_policy_delegate_; std::unique_ptr extension_dispatcher_; - std::unique_ptr guest_view_container_dispatcher_; std::unique_ptr resource_request_policy_; }; diff --git a/src/core/resource_bundle_qt.cpp b/src/core/resource_bundle_qt.cpp index 8c01fa8f8..693d1291f 100644 --- a/src/core/resource_bundle_qt.cpp +++ b/src/core/resource_bundle_qt.cpp @@ -15,7 +15,7 @@ #include "web_engine_library_info.h" -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) #include "base/posix/global_descriptors.h" #include "global_descriptors_qt.h" #endif @@ -39,7 +39,7 @@ gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id) // static bool ResourceBundle::LocaleDataPakExists(const std::string& locale) { -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) base::CommandLine *parsed_command_line = base::CommandLine::ForCurrentProcess(); std::string process_type = parsed_command_line->GetSwitchValueASCII(switches::kProcessType); bool no_sandbox = parsed_command_line->HasSwitch(sandbox::policy::switches::kNoSandbox); @@ -64,7 +64,7 @@ std::string ResourceBundle::LoadLocaleResources(const std::string &pref_locale, std::string app_locale = l10n_util::GetApplicationLocale(pref_locale, false /* set_icu_locale */); -#if defined(OS_LINUX) +#if BUILDFLAG(IS_LINUX) int locale_fd = base::GlobalDescriptors::GetInstance()->MaybeGet(kWebEngineLocale); if (locale_fd > -1) { std::unique_ptr data_pack(new DataPack(ui::k100Percent)); diff --git a/src/core/tools/main.cpp b/src/core/tools/main.cpp index 725ac9134..4b6c82997 100644 --- a/src/core/tools/main.cpp +++ b/src/core/tools/main.cpp @@ -128,7 +128,7 @@ inline bool VerifyWords(const convert_dict::DicReader::WordList& org_words, return true; } -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) QString frameworkIcuDataPath() { return QLibraryInfo::location(QLibraryInfo::LibrariesPath) + @@ -168,7 +168,7 @@ int main(int argc, char *argv[]) icuDataDir = icuPossibleEnvDataDir; icuDataDirFound = true; } -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) // In a macOS Qt framework build, the resources are inside the QtWebEngineCore framework // Resources directory, rather than in the Qt install location. else if (QFileInfo::exists(frameworkIcuDataPath())) { diff --git a/src/core/type_conversion.cpp b/src/core/type_conversion.cpp index ffd1f6c16..bae08ff3e 100644 --- a/src/core/type_conversion.cpp +++ b/src/core/type_conversion.cpp @@ -30,6 +30,7 @@ QImage toQImage(const SkBitmap &bitmap) case kA16_unorm_SkColorType: case kR16G16_float_SkColorType: case kR16G16_unorm_SkColorType: + case kR8_unorm_SkColorType: qWarning("Unknown or unsupported skia image format"); break; case kAlpha_8_SkColorType: diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h index d88fce42f..52eb4d184 100644 --- a/src/core/type_conversion.h +++ b/src/core/type_conversion.h @@ -39,7 +39,7 @@ class X509Certificate; namespace QtWebEngineCore { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) inline QString toQt(const std::wstring &string) { return QString::fromStdWString(string); @@ -215,7 +215,7 @@ inline QNetworkCookie toQt(const net::CanonicalCookie & cookie) inline base::FilePath::StringType toFilePathString(const QString &str) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) return QDir::toNativeSeparators(str).toStdWString(); #else return str.toStdString(); diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 3521bb547..d8db4471e 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -129,22 +129,19 @@ static QVariant fromJSValue(const base::Value *result) } case base::Value::Type::STRING: { - std::u16string out; - if (result->GetAsString(&out)) - ret.setValue(toQt(out)); + if (auto out = result->GetIfString()) + ret.setValue(toQt(*out)); break; } case base::Value::Type::LIST: { - const base::ListValue *out; - if (result->GetAsList(&out)) { - size_t size = out->GetList().size(); + if (const auto out = result->GetIfList()) { + size_t size = out->size(); QVariantList list; list.reserve(size); for (size_t i = 0; i < size; ++i) { - const base::Value *outVal = 0; - if (out->Get(i, &outVal) && outVal) - list.insert(i, fromJSValue(outVal)); + auto &outVal = (*out)[i]; + list.insert(i, fromJSValue(&outVal)); } ret.setValue(list); } @@ -1779,13 +1776,10 @@ WebContentsAdapterClient::renderProcessExitStatus(int terminationStatus) { status = WebContentsAdapterClient::AbnormalTerminationStatus; break; case base::TERMINATION_STATUS_PROCESS_WAS_KILLED: -#if defined(OS_CHROMEOS) - case base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM: -#endif status = WebContentsAdapterClient::KilledTerminationStatus; break; case base::TERMINATION_STATUS_PROCESS_CRASHED: -#if defined(OS_ANDROID) +#if BUILDFLAG(IS_ANDROID) case base::TERMINATION_STATUS_OOM_PROTECTED: #endif status = WebContentsAdapterClient::CrashedTerminationStatus; diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h index 605caa7d4..2e236f2b2 100644 --- a/src/core/web_contents_view_qt.h +++ b/src/core/web_contents_view_qt.h @@ -73,9 +73,9 @@ public: void FocusThroughTabTraversal(bool reverse) override; void OnCapturerCountChanged() override { QT_NOT_YET_IMPLEMENTED } -#if defined(OS_MAC) +#if BUILDFLAG(IS_MAC) bool CloseTabAfterEventTrackingIfNeeded() override { QT_NOT_YET_IMPLEMENTED return false; } -#endif // defined(OS_MAC) +#endif // content::RenderViewHostDelegateView overrides: void StartDragging(const content::DropData& drop_data, blink::DragOperationsMask allowed_ops, diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index d81e1b86b..b16afc28d 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -70,10 +70,10 @@ #include "ui/events/event_switches.h" #include "ui/native_theme/native_theme_features.h" #include "ui/gl/gl_switches.h" -#if defined(OS_WIN) +#if defined(Q_OS_WIN) #include "sandbox/win/src/sandbox_types.h" #include "content/public/app/sandbox_helper_win.h" -#endif // OS_WIN +#endif // Q_OS_WIN #if defined(Q_OS_MACOS) #include "base/mac/foundation_util.h" @@ -680,7 +680,6 @@ WebEngineContext::WebEngineContext() // embedded switches are based on the switches for Android, see content/browser/android/content_startup_flags.cc enableFeatures.push_back(features::kOverlayScrollbar.name); parsedCommandLine->AppendSwitch(switches::kEnableViewport); - parsedCommandLine->AppendSwitch(switches::kMainFrameResizesAreOrientationChanges); parsedCommandLine->AppendSwitch(cc::switches::kDisableCompositedAntialiasing); } @@ -729,7 +728,7 @@ WebEngineContext::WebEngineContext() content::ContentMainParams contentMainParams(m_mainDelegate.get()); contentMainParams.setup_signal_handlers = false; -#if defined(OS_WIN) +#if defined(Q_OS_WIN) contentMainParams.sandbox_info = QtWebEngineSandbox::staticSandboxInterfaceInfo(); sandbox::SandboxInterfaceInfo sandbox_info = {nullptr}; if (!contentMainParams.sandbox_info) { @@ -776,7 +775,7 @@ WebEngineContext::WebEngineContext() // Initialize WebCacheManager here to ensure its subscription to render process creation events. web_cache::WebCacheManager::GetInstance(); -#if defined(OS_LINUX) +#if defined(Q_OS_LINUX) media::AudioManager::SetGlobalAppName(QCoreApplication::applicationName().toStdString()); #endif diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp index 4e6a51a03..8654518ca 100644 --- a/src/core/web_engine_library_info.cpp +++ b/src/core/web_engine_library_info.cpp @@ -26,9 +26,9 @@ #include #include -#if defined(OS_WIN) +#if defined(Q_OS_WIN) #include -#endif // OS_WIN +#endif #ifndef QTWEBENGINEPROCESS_NAME #error "No name defined for QtWebEngine's process" @@ -45,7 +45,7 @@ QString fallbackDir() { return directory; } -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) static inline CFBundleRef frameworkBundle() { return CFBundleGetBundleWithIdentifier(CFSTR("org.qt-project.QtWebEngineCore")); @@ -88,7 +88,7 @@ static QString getResourcesPath(CFBundleRef frameworkBundle) } #endif -#if defined(OS_MAC) +#if defined(Q_OS_DARWIN) static QString getMainApplicationResourcesPath() { QString resourcesPath; @@ -120,7 +120,7 @@ QString subProcessPath() { static QString processPath; if (processPath.isEmpty()) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) const QString processBinary = QLatin1String(QTWEBENGINEPROCESS_NAME) % QLatin1String(".exe"); #else const QString processBinary = QLatin1String(QTWEBENGINEPROCESS_NAME); @@ -132,7 +132,7 @@ QString subProcessPath() // Only search in QTWEBENGINEPROCESS_PATH if set candidatePaths << fromEnv; } else { -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) candidatePaths << getBundlePath(frameworkBundle()) % QStringLiteral("/Helpers/" QTWEBENGINEPROCESS_NAME ".app/Contents/MacOS/" QTWEBENGINEPROCESS_NAME); #else @@ -168,7 +168,7 @@ QString subProcessPath() qFatal(qPrintable(errorMessage.join('\n'))); } -#if defined(OS_WIN) +#if defined(Q_OS_WIN) base::CommandLine *parsedCommandLine = base::CommandLine::ForCurrentProcess(); if (!parsedCommandLine->HasSwitch(sandbox::policy::switches::kNoSandbox)) { if (WebEngineLibraryInfo::isUNCPath(processPath) || WebEngineLibraryInfo::isRemoteDrivePath(processPath)) @@ -194,7 +194,7 @@ QString localesPath() // Only search in QTWEBENGINE_LOCALES_PATH if set candidatePaths << fromEnv; } else { -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) candidatePaths << getResourcesPath(frameworkBundle()) % QDir::separator() % QLatin1String("qtwebengine_locales"); #endif @@ -250,7 +250,7 @@ QString dictionariesPath() candidatePaths << fromEnv; } else { // First try to find dictionaries near the application. -#ifdef OS_MAC +#ifdef Q_OS_DARWIN QString resourcesDictionariesPath = getMainApplicationResourcesPath() % QDir::separator() % QLatin1String("qtwebengine_dictionaries"); candidatePaths << resourcesDictionariesPath; @@ -260,7 +260,7 @@ QString dictionariesPath() candidatePaths << applicationDictionariesPath; // Then try to find dictionaries near the installed library. -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) QString frameworkDictionariesPath = getResourcesPath(frameworkBundle()) % QLatin1String("/qtwebengine_dictionaries"); candidatePaths << frameworkDictionariesPath; @@ -296,7 +296,7 @@ QString resourcesPath() // Only search in QTWEBENGINE_RESOURCES_PATH if set candidatePaths << fromEnv; } else { -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) candidatePaths << getResourcesPath(frameworkBundle()); #endif candidatePaths << QLibraryInfo::path(QLibraryInfo::DataPath) % QDir::separator() @@ -347,14 +347,14 @@ base::FilePath WebEngineLibraryInfo::getPath(int key) return toFilePath(resourcesPath() % QLatin1String("/qtwebengine_resources_200p.pak")); case QT_RESOURCES_DEVTOOLS_PAK: return toFilePath(resourcesPath() % QLatin1String("/qtwebengine_devtools_resources.pak")); -#if defined(OS_MAC) && defined(QT_MAC_FRAMEWORK_BUILD) +#if defined(Q_OS_DARWIN) && defined(QT_MAC_FRAMEWORK_BUILD) case QT_FRAMEWORK_BUNDLE: return toFilePath(getBundlePath(frameworkBundle())); #endif case base::FILE_EXE: case content::CHILD_PROCESS_EXE: return toFilePath(subProcessPath()); -#if defined(OS_POSIX) +#if BUILDFLAG(IS_POSIX) case base::DIR_CACHE: directory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); break; @@ -412,7 +412,7 @@ std::string WebEngineLibraryInfo::getApplicationLocale() : QLocale().bcp47Name().toStdString(); } -#if defined(OS_WIN) +#if defined(Q_OS_WIN) bool WebEngineLibraryInfo::isRemoteDrivePath(const QString &path) { WCHAR wDriveLetter[4] = { 0 }; diff --git a/src/core/web_engine_library_info.h b/src/core/web_engine_library_info.h index a81a433ca..b7503f2df 100644 --- a/src/core/web_engine_library_info.h +++ b/src/core/web_engine_library_info.h @@ -23,7 +23,7 @@ public: static std::u16string getApplicationName(); static std::string getResolvedLocale(); static std::string getApplicationLocale(); -#if defined(OS_WIN) +#if defined(Q_OS_WIN) static bool isRemoteDrivePath(const QString &path); static bool isUNCPath(const QString &path); #endif diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 3fdb48cb5..e7cc57ba4 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -332,6 +332,7 @@ void WebEngineSettings::applySettingsToWebPreferences(blink::web_pref::WebPrefer // to enable them separately. With viewport-enabled we match Android defaults. prefs->viewport_meta_enabled = true; prefs->shrinks_viewport_contents_to_fit = true; + prefs->main_frame_resizes_are_orientation_changes = true; } // Attributes mapping. -- cgit v1.2.3