From d15569d3a1bb3d391ddeeede9aac62a203c9604a Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 19 May 2022 12:45:29 +0200 Subject: Adaptations for Chromium 102 Change-Id: I7ef0ad616f2ea0fae482253335e95998aa2d360e Reviewed-by: Michal Klocek (cherry picked from commit 00e2201264e3839570fbf64817eeca931a630b01) Reviewed-by: Allan Sandfeld Jensen --- cmake/Functions.cmake | 4 +- src/3rdparty | 2 +- src/core/autofill_client_qt.cpp | 8 +- src/core/autofill_client_qt.h | 2 + src/core/autofill_popup_controller.cpp | 2 +- src/core/browser_accessibility_qt.cpp | 1 + src/core/browser_main_parts_qt.cpp | 8 +- src/core/chromium_overrides.cpp | 9 ++ src/core/compositor/display_skia_output_device.cpp | 27 ++--- src/core/compositor/display_skia_output_device.h | 16 +-- src/core/configure/BUILD.root.gn.in | 19 +-- src/core/content_browser_client_qt.cpp | 24 ++-- src/core/content_browser_client_qt.h | 5 +- src/core/content_client_qt.cpp | 5 - src/core/content_main_delegate_qt.cpp | 1 + .../protocol_handler_registry_factory.cpp | 2 +- ...er_protocol_handler_request_controller_impl.cpp | 2 +- ...ster_protocol_handler_request_controller_impl.h | 8 +- src/core/desktop_screen_qt.cpp | 2 + src/core/desktop_screen_qt.h | 2 + src/core/devtools_frontend_qt.cpp | 2 +- src/core/download_manager_delegate_qt.cpp | 3 + .../component_extension_resource_manager_qt.cpp | 2 +- src/core/extensions/extension_system_qt.cpp | 5 +- src/core/extensions/extension_system_qt.h | 1 - .../extensions/extensions_browser_client_qt.cpp | 1 - .../file_system_access_permission_context_qt.cpp | 3 +- ...system_access_permission_request_manager_qt.cpp | 6 +- ...e_system_access_permission_request_manager_qt.h | 2 +- src/core/find_text_helper.cpp | 2 +- src/core/media_capture_devices_dispatcher.cpp | 2 + src/core/net/client_cert_override.cpp | 7 -- src/core/net/cookie_monster_delegate_qt.cpp | 2 +- src/core/net/cookie_monster_delegate_qt.h | 5 +- src/core/net/custom_url_loader_factory.cpp | 14 +-- ...in_response_interceptor_url_loader_throttle.cpp | 1 - .../net/proxying_restricted_cookie_manager_qt.cpp | 3 +- .../net/proxying_restricted_cookie_manager_qt.h | 1 + src/core/net/system_network_context_manager.cpp | 12 +- src/core/ozone/gl_surface_egl_qt.cpp | 19 +-- src/core/ozone/gl_surface_glx_qt.cpp | 13 +- src/core/ozone/gl_surface_qt.cpp | 11 +- src/core/ozone/gl_surface_qt.h | 4 +- src/core/ozone/gl_surface_wgl_qt.cpp | 4 +- src/core/ozone/gl_surface_wgl_qt.h | 2 +- src/core/permission_manager_qt.cpp | 21 +++- src/core/permission_manager_qt.h | 5 + src/core/printing/print_view_manager_base_qt.cpp | 135 +++++++++++---------- src/core/printing/print_view_manager_base_qt.h | 9 +- src/core/profile_io_data_qt.cpp | 4 +- src/core/renderer/content_renderer_client_qt.cpp | 1 + .../pepper/pepper_renderer_host_factory_qt.cpp | 33 ----- .../user_resource_controller_host.cpp | 2 + src/core/touch_handle_drawable_qt.cpp | 9 +- src/core/type_conversion.cpp | 5 +- src/core/type_conversion.h | 5 + src/core/web_contents_adapter.cpp | 24 ++-- src/core/web_contents_delegate_qt.cpp | 8 +- src/core/web_engine_context.cpp | 2 - .../widgets/qwebengineview/tst_qwebengineview.cpp | 15 ++- tools/scripts/take_snapshot.py | 2 + tools/scripts/version_resolver.py | 4 +- 62 files changed, 292 insertions(+), 268 deletions(-) diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index c2478622f..75ba48352 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -431,6 +431,8 @@ function(add_linker_options target buildDir completeStatic) set_target_properties(${cmakeTarget} PROPERTIES STATIC_LIBRARY_OPTIONS "@${objects_rsp}") if(LINUX) target_link_options(${cmakeTarget} PRIVATE "$<$:@${objects_rsp}>") + # Chromium is meant for linking with gc-sections, which seems to not always get applied otherwise + target_link_options(${cmakeTarget} PRIVATE "-Wl,--gc-sections") if(NOT completeStatic) target_link_libraries(${cmakeTarget} PRIVATE "$<1:-Wl,--start-group $<$:@${archives_rsp}> -Wl,--end-group>" @@ -833,7 +835,7 @@ macro(append_build_type_setup) #TODO: refactor to not check for IOS here if(NOT QT_FEATURE_webengine_full_debug_info AND NOT IOS) - list(APPEND gnArgArg blink_symbol_level=0 remove_v8base_debug_symbols=true) + list(APPEND gnArgArg blink_symbol_level=0 v8_symbol_level=0) endif() extend_gn_list(gnArgArg ARGS use_jumbo_build CONDITION QT_FEATURE_webengine_jumbo_build) diff --git a/src/3rdparty b/src/3rdparty index fa380f444..aa9dfe6c0 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit fa380f444774efae3b9c51ebb80629d969e6cfee +Subproject commit aa9dfe6c05f968a3d6323e7b63983bd43fecea59 diff --git a/src/core/autofill_client_qt.cpp b/src/core/autofill_client_qt.cpp index 7908b516c..fb3f726ae 100644 --- a/src/core/autofill_client_qt.cpp +++ b/src/core/autofill_client_qt.cpp @@ -19,7 +19,8 @@ namespace QtWebEngineCore { AutofillClientQt::AutofillClientQt(content::WebContents *webContents) - : content::WebContentsObserver(webContents) + : content::WebContentsUserData(*webContents) + , content::WebContentsObserver(webContents) , m_popupController(new AutofillPopupController(new AutofillPopupControllerPrivate)) { } @@ -107,6 +108,11 @@ bool AutofillClientQt::IsAutocompleteEnabled() return autofill::prefs::IsAutocompleteEnabled(GetPrefs()); } +bool AutofillClientQt::IsPasswordManagerEnabled() +{ + return false; +} + void AutofillClientQt::PropagateAutofillPredictions(content::RenderFrameHost *, const std::vector &) { diff --git a/src/core/autofill_client_qt.h b/src/core/autofill_client_qt.h index d00b01c27..967c4b227 100644 --- a/src/core/autofill_client_qt.h +++ b/src/core/autofill_client_qt.h @@ -53,9 +53,11 @@ public: void UpdatePopup(const std::vector &, autofill::PopupType) override; void HideAutofillPopup(autofill::PopupHidingReason reason) override; bool IsAutocompleteEnabled() override; + bool IsPasswordManagerEnabled() override; void PropagateAutofillPredictions(content::RenderFrameHost *, const std::vector &) override; + private: explicit AutofillClientQt(content::WebContents *webContents); diff --git a/src/core/autofill_popup_controller.cpp b/src/core/autofill_popup_controller.cpp index b3faa7e6b..260b1ca8a 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.value, suggestion.frontend_id); + d->delegate->DidSelectSuggestion(suggestion.value, suggestion.frontend_id, suggestion.backend_id); } Q_EMIT currentIndexChanged(index); diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index da0fd559b..1d4fb06af 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -292,6 +292,7 @@ QRect BrowserAccessibilityInterface::rect() const if (!q->manager()) // needed implicitly by GetScreenBoundsRect() return QRect(); gfx::Rect bounds = q->GetUnclippedScreenBoundsRect(); + bounds = gfx::ScaleToRoundedRect(bounds, 1.f / q->manager()->device_scale_factor()); // FIXME: check return QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height()); } diff --git a/src/core/browser_main_parts_qt.cpp b/src/core/browser_main_parts_qt.cpp index 1c6c469ce..f23fc7d31 100644 --- a/src/core/browser_main_parts_qt.cpp +++ b/src/core/browser_main_parts_qt.cpp @@ -5,6 +5,7 @@ #include "api/qwebenginemessagepumpscheduler_p.h" +#include "base/message_loop/message_pump.h" #include "base/message_loop/message_pump_for_ui.h" #include "base/process/process.h" #include "base/task/current_thread.h" @@ -111,9 +112,14 @@ public: m_scheduler.scheduleWork(); } - void ScheduleDelayedWork(const base::TimeTicks &delayed_work_time) override + void ScheduleDelayedWork(const Delegate::NextWorkInfo &next_work_info) override { // NOTE: This method may called from any thread at any time. + ScheduleDelayedWork(next_work_info.delayed_run_time); + } + + void ScheduleDelayedWork(const base::TimeTicks &delayed_work_time) + { ensureDelegate(); m_scheduler.scheduleDelayedWork(GetTimeIntervalMilliseconds(delayed_work_time)); } diff --git a/src/core/chromium_overrides.cpp b/src/core/chromium_overrides.cpp index ca05a0709..3a183d0d8 100644 --- a/src/core/chromium_overrides.cpp +++ b/src/core/chromium_overrides.cpp @@ -6,9 +6,12 @@ #include "qtwebenginecoreglobal_p.h" #include "web_contents_view_qt.h" #include "web_engine_library_info.h" + #include "base/values.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/common/font_list.h" +#include "extensions/buildflags/buildflags.h" +#include "extensions/common/constants.h" #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/base/dragdrop/os_exchange_data_provider_factory.h" @@ -95,6 +98,12 @@ std::unique_ptr ui::OSExchangeDataProviderFactory::C return nullptr; } +#if !BUILDFLAG(ENABLE_EXTENSIONS) +namespace extensions { + const char kExtensionScheme[] = "chrome-extension"; +} +#endif + #if !QT_CONFIG(webengine_webrtc) && QT_CONFIG(webengine_extensions) namespace extensions { ExtensionFunction::ResponseAction WebrtcLoggingPrivateSetMetaDataFunction::Run() diff --git a/src/core/compositor/display_skia_output_device.cpp b/src/core/compositor/display_skia_output_device.cpp index 246a846fa..ee693ed81 100644 --- a/src/core/compositor/display_skia_output_device.cpp +++ b/src/core/compositor/display_skia_output_device.cpp @@ -17,13 +17,11 @@ public: : m_parent(parent) , m_shape(m_parent->m_shape) { - auto formatIndex = static_cast(m_shape.format); - const auto &colorType = m_parent->capabilities_.sk_color_types[formatIndex]; - DCHECK(colorType != kUnknown_SkColorType) - << "SkColorType is invalid for format: " << formatIndex; + const auto &colorType = m_shape.characterization.colorType(); + DCHECK(colorType != kUnknown_SkColorType); m_texture = m_parent->m_contextState->gr_context()->createBackendTexture( - m_shape.sizeInPixels.width(), m_shape.sizeInPixels.height(), colorType, + m_shape.characterization.width(), m_shape.characterization.height(), colorType, GrMipMapped::kNo, GrRenderable::kYes); DCHECK(m_texture.isValid()); @@ -37,7 +35,7 @@ public: NOTREACHED(); #endif } else { - auto info = SkImageInfo::Make(m_shape.sizeInPixels.width(), m_shape.sizeInPixels.height(), + auto info = SkImageInfo::Make(m_shape.characterization.width(), m_shape.characterization.height(), colorType, kUnpremul_SkAlphaType); m_estimatedSize = info.computeMinByteSize(); } @@ -118,13 +116,12 @@ void DisplaySkiaOutputDevice::SetFrameSinkId(const viz::FrameSinkId &id) bind(id); } -bool DisplaySkiaOutputDevice::Reshape(const gfx::Size& sizeInPixels, - float devicePixelRatio, - const gfx::ColorSpace& colorSpace, - gfx::BufferFormat format, +bool DisplaySkiaOutputDevice::Reshape(const SkSurfaceCharacterization &characterization, + const gfx::ColorSpace &colorSpace, + float device_scale_factor, gfx::OverlayTransform transform) { - m_shape = Shape{sizeInPixels, devicePixelRatio, colorSpace, format}; + m_shape = Shape{characterization, device_scale_factor, colorSpace}; DCHECK_EQ(transform, gfx::OVERLAY_TRANSFORM_NONE); return true; } @@ -157,10 +154,8 @@ void DisplaySkiaOutputDevice::DiscardBackbuffer() { } -SkSurface *DisplaySkiaOutputDevice::BeginPaint(bool allocate_frame_buffer, - std::vector *) +SkSurface *DisplaySkiaOutputDevice::BeginPaint(std::vector *) { - Q_UNUSED(allocate_frame_buffer); // FIXME? if (!m_backBuffer || m_backBuffer->shape() != m_shape) m_backBuffer = std::make_unique(this); return m_backBuffer->surface(); @@ -203,7 +198,7 @@ int DisplaySkiaOutputDevice::textureId() QSize DisplaySkiaOutputDevice::size() { - return m_frontBuffer ? toQt(m_frontBuffer->shape().sizeInPixels) : QSize(); + return m_frontBuffer ? toQt(m_frontBuffer->shape().characterization.dimensions()) : QSize(); } bool DisplaySkiaOutputDevice::hasAlphaChannel() @@ -224,7 +219,7 @@ void DisplaySkiaOutputDevice::SwapBuffersFinished() } FinishSwapBuffers(gfx::SwapCompletionResult(gfx::SwapResult::SWAP_ACK), - gfx::Size(m_shape.sizeInPixels.width(), m_shape.sizeInPixels.height()), + gfx::Size(m_shape.characterization.width(), m_shape.characterization.height()), std::move(m_frame)); } diff --git a/src/core/compositor/display_skia_output_device.h b/src/core/compositor/display_skia_output_device.h index efb665ddb..943d37214 100644 --- a/src/core/compositor/display_skia_output_device.h +++ b/src/core/compositor/display_skia_output_device.h @@ -25,17 +25,15 @@ public: // Overridden from SkiaOutputDevice. void SetFrameSinkId(const viz::FrameSinkId &frame_sink_id) override; - bool Reshape(const gfx::Size& size, - float devicePixelRatio, + bool Reshape(const SkSurfaceCharacterization &characterization, const gfx::ColorSpace& colorSpace, - gfx::BufferFormat format, + float device_scale_factor, gfx::OverlayTransform transform) override; void SwapBuffers(BufferPresentedCallback feedback, viz::OutputSurfaceFrame frame) override; void EnsureBackbuffer() override; void DiscardBackbuffer() override; - SkSurface *BeginPaint(bool allocate_frame_buffer, - std::vector *semaphores) override; + SkSurface *BeginPaint(std::vector *semaphores) override; void EndPaint() override; // Overridden from Compositor. @@ -49,17 +47,15 @@ public: private: struct Shape { - gfx::Size sizeInPixels; + SkSurfaceCharacterization characterization; float devicePixelRatio; gfx::ColorSpace colorSpace; - gfx::BufferFormat format; bool operator==(const Shape &that) const { - return (sizeInPixels == that.sizeInPixels && + return (characterization == that.characterization && devicePixelRatio == that.devicePixelRatio && - colorSpace == that.colorSpace && - format == that.format); + colorSpace == that.colorSpace); } bool operator!=(const Shape &that) const { return !(*this == that); } }; diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in index 398e945aa..9a49d6465 100644 --- a/src/core/configure/BUILD.root.gn.in +++ b/src/core/configure/BUILD.root.gn.in @@ -151,6 +151,7 @@ shared_library("QtWebEngineCore") { } if (is_win) { + configs += [ "//build/config/compiler:rtti" ] data_deps = [ ":QtWebEngineCoreSandbox" ] } @@ -185,10 +186,9 @@ source_set("qtwebengine_spellcheck_sources") { "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h", "//chrome/browser/spellchecker/spellcheck_service.cc", "//chrome/browser/spellchecker/spellcheck_service.h", - "//components/language/core/browser/pref_names.cc", - "//components/language/core/browser/pref_names.h", ] deps = [ + "//components/language/core/browser", "//components/spellcheck/browser", "//components/spellcheck/renderer", "//third_party/blink/public:blink", @@ -300,9 +300,6 @@ source_set("qtwebengine_sources") { "//chrome/common/extensions/permissions/chrome_permission_message_rules.h", ] } else { - deps += [ - "//extensions/common:common_constants", - ] sources += [ "//extensions/common/url_pattern.cc", "//extensions/common/url_pattern.h", @@ -326,15 +323,6 @@ source_set("qtwebengine_sources") { "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc", "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h", ] - if (enable_pdf) { - sources += [ - "//chrome/renderer/pepper/pepper_flash_font_file_host.cc", - "//chrome/renderer/pepper/pepper_flash_font_file_host.h", - ] - if (is_linux) { - deps += [ "//pdf:font_table_linux" ] - } - } } if (enable_basic_printing || enable_print_preview) { sources += [ @@ -352,7 +340,6 @@ source_set("qtwebengine_sources") { deps += [ "//pdf", "//pdf:buildflags", - "//pdf:pdf_ppapi", "//chrome/browser/resources/pdf:resources", "//components/pdf/browser", "//components/pdf/common", @@ -453,7 +440,6 @@ repack("qtwebengine_repack_resources") { "$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", - "$root_gen_dir/ui/resources/webui_resources.pak", "$root_gen_dir/ui/resources/webui_generated_resources.pak", ] output = "$root_out_dir/qtwebengine_resources.pak" @@ -472,7 +458,6 @@ repack("qtwebengine_repack_resources") { "//mojo/public/js:resources", "//net:net_resources_grit", "//third_party/blink/public:resources_grit", - "//ui/resources:webui_resources_grd_grit", "//ui/resources:webui_generated_resources_grd", ] if (enable_extensions) { diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 3c576a572..973517404 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -11,7 +11,6 @@ #include "components/error_page/common/error.h" #include "components/error_page/common/localized_error.h" #include "components/navigation_interception/intercept_navigation_throttle.h" -#include "components/navigation_interception/navigation_params.h" #include "components/network_hints/browser/simple_network_hints_handler_impl.h" #include "components/performance_manager/embedder/performance_manager_lifetime.h" #include "components/performance_manager/embedder/performance_manager_registry.h" @@ -23,6 +22,7 @@ #include "content/public/browser/client_certificate_delegate.h" #include "content/public/browser/file_url_loader.h" #include "content/public/browser/media_observer.h" +#include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" @@ -677,10 +677,10 @@ static void LaunchURL(const GURL& url, bool ContentBrowserClientQt::HandleExternalProtocol(const GURL &url, base::RepeatingCallback web_contents_getter, - int child_id, int frame_tree_node_id, content::NavigationUIData *navigation_data, - bool is_main_frame, + bool is_primary_main_frame, + bool is_in_fenced_frame_tree, network::mojom::WebSandboxFlags sandbox_flags, ui::PageTransition page_transition, bool has_user_gesture, @@ -688,8 +688,8 @@ bool ContentBrowserClientQt::HandleExternalProtocol(const GURL &url, content::RenderFrameHost *initiator_document, mojo::PendingRemote *out_factory) { - Q_UNUSED(child_id); Q_UNUSED(frame_tree_node_id); + Q_UNUSED(is_in_fenced_frame_tree); Q_UNUSED(navigation_data); Q_UNUSED(initiating_origin); Q_UNUSED(initiator_document); @@ -701,7 +701,7 @@ bool ContentBrowserClientQt::HandleExternalProtocol(const GURL &url, std::move(web_contents_getter), page_transition, sandbox_flags, - is_main_frame, + is_primary_main_frame, has_user_gesture)); return true; } @@ -788,14 +788,14 @@ WebContentsAdapterClient::NavigationType pageTransitionToNavigationType(ui::Page } } -static bool navigationThrottleCallback(content::WebContents *source, - const navigation_interception::NavigationParams ¶ms) +static bool navigationThrottleCallback(content::NavigationHandle *handle) { // We call navigationRequested later in launchExternalUrl for external protocols. // The is_external_protocol parameter here is not fully accurate though, // and doesn't know about profile specific custom URL schemes. + content::WebContents *source = handle->GetWebContents(); ProfileQt *profile = static_cast(source->GetBrowserContext()); - if (params.is_external_protocol() && !profile->profileAdapter()->urlSchemeHandler(toQByteArray(params.url().scheme()))) + if (handle->IsExternalProtocol() && !profile->profileAdapter()->urlSchemeHandler(toQByteArray(handle->GetURL().scheme()))) return false; bool navigationAccepted = true; @@ -806,14 +806,14 @@ static bool navigationThrottleCallback(content::WebContents *source, return false; // Redirects might not be reflected in transition_type at this point (see also chrome/.../web_navigation_api_helpers.cc) - auto transition_type = params.transition_type(); - if (params.is_redirect()) + auto transition_type = handle->GetPageTransition(); + if (handle->WasServerRedirect()) transition_type = ui::PageTransitionFromInt(transition_type | ui::PAGE_TRANSITION_SERVER_REDIRECT); client->navigationRequested(pageTransitionToNavigationType(transition_type), - toQt(params.url()), + toQt(handle->GetURL()), navigationAccepted, - params.is_main_frame()); + handle->IsInPrimaryMainFrame()); return !navigationAccepted; } diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h index c55c4f044..cba68b5d5 100644 --- a/src/core/content_browser_client_qt.h +++ b/src/core/content_browser_client_qt.h @@ -169,16 +169,17 @@ public: bool HandleExternalProtocol( const GURL &url, base::RepeatingCallback web_contents_getter, - int child_id, int frame_tree_node_id, content::NavigationUIData *navigation_data, - bool is_main_frame, + bool is_primary_main_frame, + bool is_in_fenced_frame_tree, network::mojom::WebSandboxFlags sandbox_flags, 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, diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp index f0b89e2da..121a3769c 100644 --- a/src/core/content_client_qt.cpp +++ b/src/core/content_client_qt.cpp @@ -49,7 +49,6 @@ const char kWidevineCdmFileName[] = #if QT_CONFIG(webengine_printing_and_pdf) #include "pdf/pdf.h" -#include "pdf/pdf_ppapi.h" const char kPdfPluginMimeType[] = "application/x-google-chrome-pdf"; const char kPdfPluginPath[] = "internal-pdf-viewer"; #endif // QT_CONFIG(webengine_printing_and_pdf) @@ -124,10 +123,6 @@ void ComputeBuiltInPlugins(std::vector* plugins) pdf_info.path = base::FilePath::FromUTF8Unsafe(kPdfPluginPath); content::WebPluginMimeType pdf_mime_type(kPdfPluginMimeType, "pdf", "Portable Document Format"); pdf_info.mime_types.push_back(pdf_mime_type); - pdf_info.internal_entry_points.get_interface = chrome_pdf::PPP_GetInterface; - pdf_info.internal_entry_points.initialize_module = chrome_pdf::PPP_InitializeModule; - pdf_info.internal_entry_points.shutdown_module = chrome_pdf::PPP_ShutdownModule; - pdf_info.permissions = ppapi::PERMISSION_DEV | ppapi::PERMISSION_PDF; plugins->push_back(pdf_info); #endif // QT_CONFIG(webengine_printing_and_pdf) } diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp index bd117deb8..bd7a23497 100644 --- a/src/core/content_main_delegate_qt.cpp +++ b/src/core/content_main_delegate_qt.cpp @@ -6,6 +6,7 @@ #include "base/command_line.h" #include "base/i18n/rtl.h" #include "base/logging.h" +#include "base/memory/ref_counted_memory.h" #include "base/no_destructor.h" #include "base/path_service.h" #include "base/strings/string_number_conversions.h" diff --git a/src/core/custom_handlers/protocol_handler_registry_factory.cpp b/src/core/custom_handlers/protocol_handler_registry_factory.cpp index 14af1ed28..50b17006b 100644 --- a/src/core/custom_handlers/protocol_handler_registry_factory.cpp +++ b/src/core/custom_handlers/protocol_handler_registry_factory.cpp @@ -63,7 +63,7 @@ bool ProtocolHandlerRegistryFactory::ServiceIsNULLWhileTesting() const KeyedService *ProtocolHandlerRegistryFactory::BuildServiceInstanceFor(content::BrowserContext *context) const { custom_handlers::ProtocolHandlerRegistry *registry = - new custom_handlers::ProtocolHandlerRegistry(context, + new custom_handlers::ProtocolHandlerRegistry(/*prefs*/ nullptr, std::make_unique()); // Must be called as a part of the creation process. diff --git a/src/core/custom_handlers/register_protocol_handler_request_controller_impl.cpp b/src/core/custom_handlers/register_protocol_handler_request_controller_impl.cpp index fe6dcdd32..efaf54cd2 100644 --- a/src/core/custom_handlers/register_protocol_handler_request_controller_impl.cpp +++ b/src/core/custom_handlers/register_protocol_handler_request_controller_impl.cpp @@ -12,7 +12,7 @@ namespace QtWebEngineCore { RegisterProtocolHandlerRequestControllerImpl::RegisterProtocolHandlerRequestControllerImpl( content::WebContents *webContents, - content::ProtocolHandler handler) + custom_handlers::ProtocolHandler handler) : RegisterProtocolHandlerRequestController( toQt(handler.url()), toQt(handler.protocol())) diff --git a/src/core/custom_handlers/register_protocol_handler_request_controller_impl.h b/src/core/custom_handlers/register_protocol_handler_request_controller_impl.h index feb2cf0b8..073ca9bf8 100644 --- a/src/core/custom_handlers/register_protocol_handler_request_controller_impl.h +++ b/src/core/custom_handlers/register_protocol_handler_request_controller_impl.h @@ -4,10 +4,10 @@ #ifndef REGISTER_PROTOCOL_HANDLER_REQUEST_CONTROLLER_IMPL_H #define REGISTER_PROTOCOL_HANDLER_REQUEST_CONTROLLER_IMPL_H -#include "custom_handlers/register_protocol_handler_request_controller.h" +#include "register_protocol_handler_request_controller.h" #include "content/public/browser/web_contents_observer.h" -#include "content/public/common/custom_handlers/protocol_handler.h" +#include "components/custom_handlers/protocol_handler.h" namespace custom_handlers { class ProtocolHandlerRegistry; @@ -20,7 +20,7 @@ class RegisterProtocolHandlerRequestControllerImpl final : public RegisterProtoc public: RegisterProtocolHandlerRequestControllerImpl( content::WebContents *webContents, - content::ProtocolHandler handler); + custom_handlers::ProtocolHandler handler); ~RegisterProtocolHandlerRequestControllerImpl(); @@ -30,7 +30,7 @@ protected: private: custom_handlers::ProtocolHandlerRegistry *protocolHandlerRegistry(); - content::ProtocolHandler m_handler; + custom_handlers::ProtocolHandler m_handler; }; } // namespace QtWebEngineCore diff --git a/src/core/desktop_screen_qt.cpp b/src/core/desktop_screen_qt.cpp index 9d4bc71e2..7cabe4881 100644 --- a/src/core/desktop_screen_qt.cpp +++ b/src/core/desktop_screen_qt.cpp @@ -110,6 +110,7 @@ display::Display DesktopScreenQt::GetDisplayNearestWindow(gfx::NativeWindow /*wi return GetPrimaryDisplay(); } +#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) bool DesktopScreenQt::SetScreenSaverSuspended(bool suspend) { #if defined(USE_XSCREENSAVER) @@ -118,6 +119,7 @@ bool DesktopScreenQt::SetScreenSaverSuspended(bool suspend) return false; #endif } +#endif bool DesktopScreenQt::IsScreenSaverActive() const { diff --git a/src/core/desktop_screen_qt.h b/src/core/desktop_screen_qt.h index 385ffcfc1..33f0cf870 100644 --- a/src/core/desktop_screen_qt.h +++ b/src/core/desktop_screen_qt.h @@ -17,7 +17,9 @@ public: ~DesktopScreenQt() override; display::Display GetDisplayNearestWindow(gfx::NativeWindow /*window*/) const override; +#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) bool SetScreenSaverSuspended(bool suspend) override; +#endif bool IsScreenSaverActive() const override; private: diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp index 007efe728..e706c680a 100644 --- a/src/core/devtools_frontend_qt.cpp +++ b/src/core/devtools_frontend_qt.cpp @@ -576,7 +576,7 @@ void DevToolsFrontendQt::CallClientFunction(const std::string &object_name, base::OnceCallback cb) { - base::Value arguments(base::Value::Type::LIST); + base::Value::List arguments; if (!arg1.is_none()) { arguments.Append(std::move(arg1)); if (!arg2.is_none()) { diff --git a/src/core/download_manager_delegate_qt.cpp b/src/core/download_manager_delegate_qt.cpp index 866ded680..65884c9b6 100644 --- a/src/core/download_manager_delegate_qt.cpp +++ b/src/core/download_manager_delegate_qt.cpp @@ -54,6 +54,7 @@ void DownloadManagerDelegateQt::cancelDownload(content::DownloadTargetCallback c download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, download::DownloadItem::UNKNOWN, base::FilePath(), + base::FilePath(), absl::nullopt, download::DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED); } @@ -95,6 +96,7 @@ bool DownloadManagerDelegateQt::DetermineDownloadTarget(download::DownloadItem * download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, download::DownloadItem::VALIDATED, item->GetForcedFilePath(), + item->GetFileNameToReportUser(), absl::nullopt, download::DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE); return true; @@ -187,6 +189,7 @@ bool DownloadManagerDelegateQt::DetermineDownloadTarget(download::DownloadItem * download::DownloadDangerType::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, download::DownloadItem::VALIDATED, filePathForCallback.AddExtension(toFilePathString("download")), + base::FilePath(), absl::nullopt, download::DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE); } else diff --git a/src/core/extensions/component_extension_resource_manager_qt.cpp b/src/core/extensions/component_extension_resource_manager_qt.cpp index d541dea37..b2cb7e356 100644 --- a/src/core/extensions/component_extension_resource_manager_qt.cpp +++ b/src/core/extensions/component_extension_resource_manager_qt.cpp @@ -42,7 +42,7 @@ ComponentExtensionResourceManagerQt::ComponentExtensionResourceManagerQt() pdf_extension_util::AddAdditionalData(&dict); ui::TemplateReplacements pdf_viewer_replacements; - ui::TemplateReplacementsFromDictionaryValue(base::Value::AsDictionaryValue(dict), &pdf_viewer_replacements); + ui::TemplateReplacementsFromDictionaryValue(dict.GetDict(), &pdf_viewer_replacements); template_replacements_[extension_misc::kPdfExtensionId] = std::move(pdf_viewer_replacements); #endif } diff --git a/src/core/extensions/extension_system_qt.cpp b/src/core/extensions/extension_system_qt.cpp index 20b3b7bf3..b8468aab4 100644 --- a/src/core/extensions/extension_system_qt.cpp +++ b/src/core/extensions/extension_system_qt.cpp @@ -37,6 +37,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/url_data_source.h" #include "content/public/common/webplugininfo.h" +#include "extensions/browser/app_sorting.h" #include "extensions/browser/content_verifier.h" #include "extensions/browser/content_verifier_delegate.h" #include "extensions/browser/extension_pref_store.h" @@ -46,7 +47,6 @@ #include "extensions/browser/extension_registry.h" #include "extensions/browser/info_map.h" #include "extensions/browser/notification_types.h" -#include "extensions/browser/null_app_sorting.h" #include "extensions/browser/quota_service.h" #include "extensions/browser/renderer_startup_helper.h" #include "extensions/browser/service_worker_manager.h" @@ -277,7 +277,7 @@ QuotaService *ExtensionSystemQt::quota_service() AppSorting *ExtensionSystemQt::app_sorting() { - return app_sorting_.get(); + return nullptr; } ContentVerifier *ExtensionSystemQt::content_verifier() @@ -312,7 +312,6 @@ void ExtensionSystemQt::Init(bool extensions_enabled) service_worker_manager_ = std::make_unique(browser_context_); user_script_manager_ = std::make_unique(browser_context_); quota_service_ = std::make_unique(); - app_sorting_ = std::make_unique(); // Make the chrome://extension-icon/ resource available. // content::URLDataSource::Add(browser_context_, new ExtensionIconSource(browser_context_)); diff --git a/src/core/extensions/extension_system_qt.h b/src/core/extensions/extension_system_qt.h index 68ea7ecfe..02fbaee37 100644 --- a/src/core/extensions/extension_system_qt.h +++ b/src/core/extensions/extension_system_qt.h @@ -91,7 +91,6 @@ private: std::unique_ptr service_worker_manager_; std::unique_ptr quota_service_; - std::unique_ptr app_sorting_; std::unique_ptr user_script_manager_; diff --git a/src/core/extensions/extensions_browser_client_qt.cpp b/src/core/extensions/extensions_browser_client_qt.cpp index 9470a2546..f013c04a4 100644 --- a/src/core/extensions/extensions_browser_client_qt.cpp +++ b/src/core/extensions/extensions_browser_client_qt.cpp @@ -502,7 +502,6 @@ ExtensionWebContentsObserver *ExtensionsBrowserClientQt::GetExtensionWebContents KioskDelegate *ExtensionsBrowserClientQt::GetKioskDelegate() { - NOTREACHED(); return nullptr; } 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 8355444ca..3a9c80288 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 @@ -168,8 +168,7 @@ bool ShouldBlockAccessToPath(const base::FilePath &check_path, HandleType handle base::FilePath diff; nearest_ancestor.AppendRelativePath(check_path, &diff); - std::vector diff_components; - diff.GetComponents(&diff_components); + auto diff_components = diff.GetComponents(); if (diff_components.size() > 0 && toQt(diff_components[0]).contains(QCoreApplication::applicationName())) { // The relative path contains the application name. Grant access. return false; diff --git a/src/core/file_system_access/file_system_access_permission_request_manager_qt.cpp b/src/core/file_system_access/file_system_access_permission_request_manager_qt.cpp index e7471c9bd..17d7f3405 100644 --- a/src/core/file_system_access/file_system_access_permission_request_manager_qt.cpp +++ b/src/core/file_system_access/file_system_access_permission_request_manager_qt.cpp @@ -83,6 +83,7 @@ void FileSystemAccessPermissionRequestManagerQt::AddRequest( FileSystemAccessPermissionRequestManagerQt::FileSystemAccessPermissionRequestManagerQt( content::WebContents *web_contents) : content::WebContentsObserver(web_contents) + , content::WebContentsUserData(*web_contents) { } @@ -90,7 +91,7 @@ bool FileSystemAccessPermissionRequestManagerQt::CanShowRequest() const { // Delay showing requests until the main frame is fully loaded. // ScheduleShowRequest() will be called again when that happens. - return web_contents()->IsDocumentOnLoadCompletedInMainFrame() && !m_queuedRequests.empty() + return web_contents()->IsDocumentOnLoadCompletedInPrimaryMainFrame() && !m_queuedRequests.empty() && !m_currentRequest; } @@ -134,8 +135,7 @@ void FileSystemAccessPermissionRequestManagerQt::DequeueAndShowRequest() client->runFileSystemAccessRequest(std::move(request)); } -void FileSystemAccessPermissionRequestManagerQt::DocumentOnLoadCompletedInMainFrame( - content::RenderFrameHost *) +void FileSystemAccessPermissionRequestManagerQt::DocumentOnLoadCompletedInPrimaryMainFrame() { // This is scheduled because while all calls to the browser have been // issued at DOMContentLoaded, they may be bouncing around in scheduled diff --git a/src/core/file_system_access/file_system_access_permission_request_manager_qt.h b/src/core/file_system_access/file_system_access_permission_request_manager_qt.h index b88640f14..f8746eabf 100644 --- a/src/core/file_system_access/file_system_access_permission_request_manager_qt.h +++ b/src/core/file_system_access/file_system_access_permission_request_manager_qt.h @@ -58,7 +58,7 @@ private: void DequeueAndShowRequest(); // content::WebContentsObserver - void DocumentOnLoadCompletedInMainFrame(content::RenderFrameHost *) override; + void DocumentOnLoadCompletedInPrimaryMainFrame() override; void DidFinishNavigation(content::NavigationHandle *navigation_handle) override; void WebContentsDestroyed() override; diff --git a/src/core/find_text_helper.cpp b/src/core/find_text_helper.cpp index 0fe6442e7..5dc12fab7 100644 --- a/src/core/find_text_helper.cpp +++ b/src/core/find_text_helper.cpp @@ -85,7 +85,7 @@ void FindTextHelper::startFinding(const QString &findText, bool caseSensitively, m_previousFindText = findText; m_currentFindRequestId = m_findRequestIdCounter++; - m_webContents->Find(m_currentFindRequestId, toString16(findText), std::move(options)); + m_webContents->Find(m_currentFindRequestId, toString16(findText), std::move(options), /*skip_delay=*/true); } void FindTextHelper::stopFinding() diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp index d0df48c0a..cddb5a290 100644 --- a/src/core/media_capture_devices_dispatcher.cpp +++ b/src/core/media_capture_devices_dispatcher.cpp @@ -12,6 +12,7 @@ #include "web_contents_view_qt.h" #include "web_engine_settings.h" +#include "base/task/post_task.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/desktop_media_id.h" @@ -293,6 +294,7 @@ void MediaCaptureDevicesDispatcher::handleMediaAccessPermissionResponse(content: case blink::MEDIA_DEVICE_ACCESS: case blink::MEDIA_DEVICE_UPDATE: case blink::MEDIA_GENERATE_STREAM: + case blink::MEDIA_GET_OPEN_DEVICE: getDefaultDevices(request.requested_audio_device_id, request.requested_video_device_id, microphoneRequested, webcamRequested, &devices); break; diff --git a/src/core/net/client_cert_override.cpp b/src/core/net/client_cert_override.cpp index f79aae482..2ee479f3a 100644 --- a/src/core/net/client_cert_override.cpp +++ b/src/core/net/client_cert_override.cpp @@ -46,13 +46,6 @@ public: std::move(private_key_callback).Run(m_key); } -#if BUILDFLAG(IS_MAC) - SecIdentityRef sec_identity_ref() const override - { - return nullptr; - } -#endif - private: scoped_refptr m_key; }; diff --git a/src/core/net/cookie_monster_delegate_qt.cpp b/src/core/net/cookie_monster_delegate_qt.cpp index 0f82a4d1f..dc47de207 100644 --- a/src/core/net/cookie_monster_delegate_qt.cpp +++ b/src/core/net/cookie_monster_delegate_qt.cpp @@ -140,7 +140,7 @@ void CookieMonsterDelegateQt::deleteAllCookies() m_mojoCookieManager->DeleteCookies(std::move(filter), network::mojom::CookieManager::DeleteCookiesCallback()); } -void CookieMonsterDelegateQt::setMojoCookieManager(network::mojom::CookieManagerPtrInfo cookie_manager_info) +void CookieMonsterDelegateQt::setMojoCookieManager(mojo::PendingRemote cookie_manager_info) { if (m_mojoCookieManager.is_bound()) unsetMojoCookieManager(); diff --git a/src/core/net/cookie_monster_delegate_qt.h b/src/core/net/cookie_monster_delegate_qt.h index d84946bb9..4273e96ef 100644 --- a/src/core/net/cookie_monster_delegate_qt.h +++ b/src/core/net/cookie_monster_delegate_qt.h @@ -24,6 +24,7 @@ #endif #include "base/memory/ref_counted.h" #include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" #include "net/cookies/cookie_store.h" #include "services/network/public/mojom/cookie_manager.mojom-forward.h" #include "services/network/public/mojom/cookie_manager.mojom.h" @@ -46,7 +47,7 @@ class Q_WEBENGINECORE_PRIVATE_EXPORT CookieMonsterDelegateQt : public base::RefC QPointer m_client; std::vector> m_subscriptions; - network::mojom::CookieManagerPtr m_mojoCookieManager; + mojo::Remote m_mojoCookieManager; std::unique_ptr m_listener; std::unique_ptr m_filter; mojo::Receiver m_receiver; @@ -65,7 +66,7 @@ public: void deleteAllCookies(); void setClient(QWebEngineCookieStore *client); - void setMojoCookieManager(network::mojom::CookieManagerPtrInfo cookie_manager_info); + void setMojoCookieManager(mojo::PendingRemote cookie_manager_info); void unsetMojoCookieManager(); void setHasFilter(bool b); diff --git a/src/core/net/custom_url_loader_factory.cpp b/src/core/net/custom_url_loader_factory.cpp index e06d55373..d879ae478 100644 --- a/src/core/net/custom_url_loader_factory.cpp +++ b/src/core/net/custom_url_loader_factory.cpp @@ -44,13 +44,13 @@ class CustomURLLoader : public network::mojom::URLLoader { public: static void CreateAndStart(const network::ResourceRequest &request, - network::mojom::URLLoaderRequest loader, - network::mojom::URLLoaderClientPtrInfo client_info, + mojo::PendingReceiver loader, + mojo::PendingRemote client_remote, QPointer profileAdapter) { // CustomURLLoader will handle its own life-cycle, and delete when // the client lets go. - auto *customUrlLoader = new CustomURLLoader(request, std::move(loader), std::move(client_info), profileAdapter); + auto *customUrlLoader = new CustomURLLoader(request, std::move(loader), std::move(client_remote), profileAdapter); customUrlLoader->Start(); } @@ -83,14 +83,14 @@ public: private: CustomURLLoader(const network::ResourceRequest &request, - network::mojom::URLLoaderRequest loader, - network::mojom::URLLoaderClientPtrInfo client_info, + mojo::PendingReceiver loader, + mojo::PendingRemote client_remote, QPointer profileAdapter) // ### We can opt to run the url-loader on the UI thread instead : m_taskRunner(base::CreateSingleThreadTaskRunner({ content::BrowserThread::IO })) , m_proxy(new URLRequestCustomJobProxy(this, request.url.scheme(), profileAdapter)) , m_receiver(this, std::move(loader)) - , m_client(std::move(client_info)) + , m_client(std::move(client_remote)) , m_request(request) { DCHECK(m_taskRunner->RunsTasksInCurrentSequence()); @@ -418,7 +418,7 @@ private: scoped_refptr m_proxy; mojo::Receiver m_receiver; - network::mojom::URLLoaderClientPtr m_client; + mojo::Remote m_client; mojo::ScopedDataPipeProducerHandle m_pipeProducerHandle; mojo::ScopedDataPipeConsumerHandle m_pipeConsumerHandle; std::unique_ptr m_watcher; 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 2a063cd7c..f6b961018 100644 --- a/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp +++ b/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp @@ -147,7 +147,6 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL base::BindOnce( &extensions::StreamsPrivateAPI::SendExecuteMimeTypeHandlerEvent, extension_id, view_id, embedded, m_frame_tree_node_id, - -1 /* render_process_id */, -1 /* render_frame_id */, std::move(transferrable_loader), response_url)); } diff --git a/src/core/net/proxying_restricted_cookie_manager_qt.cpp b/src/core/net/proxying_restricted_cookie_manager_qt.cpp index 02de152fa..ab435f8e2 100644 --- a/src/core/net/proxying_restricted_cookie_manager_qt.cpp +++ b/src/core/net/proxying_restricted_cookie_manager_qt.cpp @@ -86,12 +86,13 @@ void ProxyingRestrictedCookieManagerQt::SetCanonicalCookie(const net::CanonicalC const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, + net::CookieInclusionStatus status, SetCanonicalCookieCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); if (allowCookies(url, site_for_cookies)) { - underlying_restricted_cookie_manager_->SetCanonicalCookie(cookie, url, site_for_cookies, top_frame_origin, std::move(callback)); + underlying_restricted_cookie_manager_->SetCanonicalCookie(cookie, url, site_for_cookies, top_frame_origin, status, std::move(callback)); } else { std::move(callback).Run(false); } diff --git a/src/core/net/proxying_restricted_cookie_manager_qt.h b/src/core/net/proxying_restricted_cookie_manager_qt.h index bd7bc300f..7ac6807ac 100644 --- a/src/core/net/proxying_restricted_cookie_manager_qt.h +++ b/src/core/net/proxying_restricted_cookie_manager_qt.h @@ -34,6 +34,7 @@ public: const GURL &url, const net::SiteForCookies &site_for_cookies, const url::Origin &top_frame_origin, + net::CookieInclusionStatus status, SetCanonicalCookieCallback callback) override; void AddChangeListener(const GURL &url, const net::SiteForCookies &site_for_cookies, diff --git a/src/core/net/system_network_context_manager.cpp b/src/core/net/system_network_context_manager.cpp index beafa6a6d..7e5de7d2b 100644 --- a/src/core/net/system_network_context_manager.cpp +++ b/src/core/net/system_network_context_manager.cpp @@ -37,9 +37,8 @@ SystemNetworkContextManager *g_system_network_context_manager = nullptr; network::mojom::HttpAuthStaticParamsPtr CreateHttpAuthStaticParams() { - network::mojom::HttpAuthStaticParamsPtr auth_static_params = network::mojom::HttpAuthStaticParams::New(); - - auth_static_params->allowed_schemes = { "basic", "digest", "ntlm", "negotiate" }; + network::mojom::HttpAuthStaticParamsPtr auth_static_params = + network::mojom::HttpAuthStaticParams::New(); return auth_static_params; } @@ -48,6 +47,8 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAuthDynamicParams() { network::mojom::HttpAuthDynamicParamsPtr auth_dynamic_params = network::mojom::HttpAuthDynamicParams::New(); + auth_dynamic_params->allowed_schemes = { "basic", "digest", "ntlm", "negotiate" }; + auto *command_line = base::CommandLine::ForCurrentProcess(); auth_dynamic_params->server_allowlist = command_line->GetSwitchValueASCII(switches::kAuthServerAllowlist); // auth_dynamic_params->delegate_allowlist = command_line->GetSwitchValueASCII(switches::kAuthNegotiateDelegateWhitelist); @@ -216,8 +217,9 @@ void SystemNetworkContextManager::OnNetworkServiceCreated(network::mojom::Networ log_list_mojo.push_back(std::move(log_info)); } network_service->UpdateCtLogList( - std::move(log_list_mojo), - certificate_transparency::GetLogListTimestamp()); + std::move(log_list_mojo), + certificate_transparency::GetLogListTimestamp(), + base::DoNothing()); // The system NetworkContext is created first network_service_network_context_.reset(); diff --git a/src/core/ozone/gl_surface_egl_qt.cpp b/src/core/ozone/gl_surface_egl_qt.cpp index a5821ae0d..bd9ec060e 100644 --- a/src/core/ozone/gl_surface_egl_qt.cpp +++ b/src/core/ozone/gl_surface_egl_qt.cpp @@ -11,6 +11,7 @@ #if !BUILDFLAG(IS_MAC) #include "ui/gl/egl_util.h" #include "ui/gl/gl_bindings.h" +#include "ui/gl/gl_display.h" #include "ui/gl/gl_surface_egl.h" #include "ui/gl/init/gl_factory.h" @@ -31,7 +32,7 @@ bool GLSurfaceEGL::InitializeExtensionSettingsOneOff() EGLDisplay GLSurfaceEGL::GetHardwareDisplay() { - return static_cast(GLSurfaceQt::g_display); + return GLSurfaceQt::g_display ? static_cast(GLSurfaceQt::g_display->GetDisplay()) : EGL_NO_DISPLAY; } bool GLSurfaceEGL::IsCreateContextRobustnessSupported() @@ -141,7 +142,7 @@ bool GLSurfaceEGL::HasEGLExtension(const char *name) return ExtensionsContain(GetEGLExtensions(), name); } -bool GLSurfaceEGL::InitializeOneOff(gl::EGLDisplayPlatform /*native_display*/) +bool GLSurfaceEGL::InitializeOneOff(gl::EGLDisplayPlatform /*native_display*/, uint64_t) { return GLSurfaceEGLQt::InitializeOneOff(); } @@ -188,8 +189,10 @@ bool GLSurfaceEGLQt::InitializeOneOff() // Must be called before initializing the display. g_driver_egl.InitializeClientExtensionBindings(); - g_display = GLContextHelper::getEGLDisplay(); - if (!g_display) { + auto *egl_display = new GLDisplayEGL(); + g_display = egl_display; + egl_display->SetDisplay(GLContextHelper::getEGLDisplay()); + if (!g_display->GetDisplay()) { LOG(ERROR) << "GLContextHelper::getEGLDisplay() failed."; return false; } @@ -200,13 +203,13 @@ bool GLSurfaceEGLQt::InitializeOneOff() return false; } - if (!eglInitialize(g_display, NULL, NULL)) { + if (!eglInitialize(g_display->GetDisplay(), NULL, NULL)) { LOG(ERROR) << "eglInitialize failed with error " << GetLastEGLErrorString(); return false; } g_client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); - g_extensions = eglQueryString(g_display, EGL_EXTENSIONS); + g_extensions = eglQueryString(g_display->GetDisplay(), EGL_EXTENSIONS); g_egl_surfaceless_context_supported = ExtensionsContain(g_extensions.c_str(), "EGL_KHR_surfaceless_context"); if (g_egl_surfaceless_context_supported) { scoped_refptr surface = new GLSurfacelessQtEGL(gfx::Size(1, 1)); @@ -242,7 +245,7 @@ bool GLSurfaceEGLQt::Initialize(GLSurfaceFormat format) Q_ASSERT(!m_surfaceBuffer); m_format = format; - EGLDisplay display = g_display; + EGLDisplay display = g_display->GetDisplay(); if (!display) { LOG(ERROR) << "Trying to create surface with invalid display."; return false; @@ -270,7 +273,7 @@ bool GLSurfaceEGLQt::Initialize(GLSurfaceFormat format) void GLSurfaceEGLQt::Destroy() { if (m_surfaceBuffer) { - if (!eglDestroySurface(g_display, m_surfaceBuffer)) + if (!eglDestroySurface(g_display->GetDisplay(), m_surfaceBuffer)) LOG(ERROR) << "eglDestroySurface failed with error " << GetLastEGLErrorString(); m_surfaceBuffer = 0; diff --git a/src/core/ozone/gl_surface_glx_qt.cpp b/src/core/ozone/gl_surface_glx_qt.cpp index 757662211..f97f3de1e 100644 --- a/src/core/ozone/gl_surface_glx_qt.cpp +++ b/src/core/ozone/gl_surface_glx_qt.cpp @@ -8,6 +8,7 @@ #include "gl_context_qt.h" #include "ozone/gl_surface_glx_qt.h" #include "ui/gl/gl_bindings.h" +#include "ui/gl/gl_display.h" #include "ui/gl/gl_surface_glx.h" namespace gl { @@ -90,8 +91,8 @@ bool GLSurfaceGLXQt::InitializeOneOff() if (s_initialized) return true; - g_display = GLContextHelper::getXDisplay(); - if (!g_display) { + g_display = new GLDisplayX11(); + if (!g_display->GetDisplay()) { LOG(ERROR) << "GLContextHelper::getXDisplay() failed."; return false; } @@ -102,7 +103,7 @@ bool GLSurfaceGLXQt::InitializeOneOff() return false; } - Display* display = static_cast(g_display); + Display* display = static_cast(g_display->GetDisplay()); int major, minor; if (!glXQueryVersion(display, &major, &minor)) { LOG(ERROR) << "glxQueryVersion failed."; @@ -124,7 +125,7 @@ bool GLSurfaceGLXQt::InitializeExtensionSettingsOneOff() if (!s_initialized) return false; - Display* display = static_cast(g_display); + Display* display = static_cast(g_display->GetDisplay()); GLSurfaceQt::g_extensions = glXQueryExtensionsString(display, 0); g_driver_glx.InitializeExtensionBindings(g_extensions.c_str()); return true; @@ -139,7 +140,7 @@ bool GLSurfaceGLXQt::Initialize(GLSurfaceFormat format) { Q_ASSERT(!m_surfaceBuffer); - Display* display = static_cast(g_display); + Display* display = static_cast(g_display->GetDisplay()); const int pbuffer_attributes[] = { GLX_PBUFFER_WIDTH, m_size.width(), GLX_PBUFFER_HEIGHT, m_size.height(), @@ -162,7 +163,7 @@ bool GLSurfaceGLXQt::Initialize(GLSurfaceFormat format) void GLSurfaceGLXQt::Destroy() { if (m_surfaceBuffer) { - glXDestroyPbuffer(static_cast(g_display), m_surfaceBuffer); + glXDestroyPbuffer(static_cast(g_display->GetDisplay()), m_surfaceBuffer); m_surfaceBuffer = 0; } } diff --git a/src/core/ozone/gl_surface_qt.cpp b/src/core/ozone/gl_surface_qt.cpp index 47bbffd95..e46b49475 100644 --- a/src/core/ozone/gl_surface_qt.cpp +++ b/src/core/ozone/gl_surface_qt.cpp @@ -27,7 +27,7 @@ namespace gl { -void *GLSurfaceQt::g_display = nullptr; +GLDisplay *GLSurfaceQt::g_display = nullptr; void *GLSurfaceQt::g_config = nullptr; std::string GLSurfaceQt::g_client_extensions; std::string GLSurfaceQt::g_extensions; @@ -76,7 +76,7 @@ GLSurfaceFormat GLSurfaceQt::GetFormat() return m_format; } -void* GLSurfaceQt::GetDisplay() +GLDisplay *GLSurfaceQt::GetGLDisplay() { return g_display; } @@ -88,7 +88,7 @@ void* GLSurfaceQt::GetConfig() #if BUILDFLAG(IS_WIN) namespace init { -bool InitializeGLOneOffPlatform() +bool InitializeGLOneOffPlatform(uint64_t system_device_id) { VSyncProviderWin::InitializeOneOff(); @@ -207,6 +207,11 @@ void DirectCompositionSurfaceWin::DisableDecodeSwapChain() void DirectCompositionSurfaceWin::DisableSoftwareOverlays() { } + +void DirectCompositionSurfaceWin::ShutdownOneOff() +{ +} + } // namespace gl #endif // BUILDFLAG(IS_WIN) #endif // !defined(Q_OS_MACOS) diff --git a/src/core/ozone/gl_surface_qt.h b/src/core/ozone/gl_surface_qt.h index c6ea79a94..f9d18a0ae 100644 --- a/src/core/ozone/gl_surface_qt.h +++ b/src/core/ozone/gl_surface_qt.h @@ -18,7 +18,7 @@ public: static bool HasEGLExtension(const char* name); // Implement GLSurface. - void *GetDisplay() override; + GLDisplay *GetGLDisplay() override; void *GetConfig() override; bool IsOffscreen() override; gfx::SwapResult SwapBuffers(PresentationCallback callback) override; @@ -34,7 +34,7 @@ protected: public: static void* g_config; - static void* g_display; + static GLDisplay *g_display; static std::string g_extensions; static std::string g_client_extensions; }; diff --git a/src/core/ozone/gl_surface_wgl_qt.cpp b/src/core/ozone/gl_surface_wgl_qt.cpp index 7598732c3..57493c14a 100644 --- a/src/core/ozone/gl_surface_wgl_qt.cpp +++ b/src/core/ozone/gl_surface_wgl_qt.cpp @@ -41,9 +41,9 @@ void *GLSurfaceWGLQt::GetHandle() return m_surfaceBuffer->GetHandle(); } -void *GLSurfaceWGLQt::GetDisplay() +GLDisplay *GLSurfaceWGLQt::GetGLDisplay() { - return m_surfaceBuffer->GetDisplay(); + return m_surfaceBuffer->GetGLDisplay(); } void *GLSurfaceWGLQt::GetConfig() diff --git a/src/core/ozone/gl_surface_wgl_qt.h b/src/core/ozone/gl_surface_wgl_qt.h index 60fc78499..e1a1253bb 100644 --- a/src/core/ozone/gl_surface_wgl_qt.h +++ b/src/core/ozone/gl_surface_wgl_qt.h @@ -21,7 +21,7 @@ public: bool Initialize(GLSurfaceFormat format) override; void Destroy() override; void *GetHandle() override; - void *GetDisplay() override; + GLDisplay *GetGLDisplay() override; void *GetConfig() override; protected: diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp index 4d0f17a49..a1727bda3 100644 --- a/src/core/permission_manager_qt.cpp +++ b/src/core/permission_manager_qt.cpp @@ -51,7 +51,7 @@ static ProfileAdapter::PermissionType toQt(content::PermissionType type) case content::PermissionType::AR: case content::PermissionType::VR: case content::PermissionType::STORAGE_ACCESS_GRANT: - case content::PermissionType::FONT_ACCESS: + case content::PermissionType::LOCAL_FONTS: case content::PermissionType::DISPLAY_CAPTURE: case content::PermissionType::NUM: LOG(INFO) << "Unexpected unsupported permission type: " << static_cast(type); @@ -289,6 +289,24 @@ blink::mojom::PermissionStatus PermissionManagerQt::GetPermissionStatusForFrame( render_frame_host->GetLastCommittedOrigin().GetURL()); } +blink::mojom::PermissionStatus PermissionManagerQt::GetPermissionStatusForCurrentDocument( + content::PermissionType permission, + content::RenderFrameHost *render_frame_host) +{ + return GetPermissionStatusForFrame( + permission, + render_frame_host, + render_frame_host->GetLastCommittedOrigin().GetURL()); +} + +blink::mojom::PermissionStatus PermissionManagerQt::GetPermissionStatusForWorker( + content::PermissionType permission, + content::RenderProcessHost *render_process_host, + const GURL &url) +{ + return GetPermissionStatus(permission, url, url); +} + void PermissionManagerQt::ResetPermission( content::PermissionType permission, const GURL& requesting_origin, @@ -304,6 +322,7 @@ void PermissionManagerQt::ResetPermission( content::PermissionControllerDelegate::SubscriptionId PermissionManagerQt::SubscribePermissionStatusChange( content::PermissionType permission, + content::RenderProcessHost * /*render_process_host*/, content::RenderFrameHost * /* render_frame_host */, const GURL& requesting_origin, base::RepeatingCallback callback) diff --git a/src/core/permission_manager_qt.h b/src/core/permission_manager_qt.h index cca94974c..566e0839b 100644 --- a/src/core/permission_manager_qt.h +++ b/src/core/permission_manager_qt.h @@ -40,6 +40,10 @@ public: content::RenderFrameHost *render_frame_host, const GURL& requesting_origin) override; + blink::mojom::PermissionStatus GetPermissionStatusForCurrentDocument(content::PermissionType, content::RenderFrameHost *) override; + + blink::mojom::PermissionStatus GetPermissionStatusForWorker(content::PermissionType, content::RenderProcessHost *, const GURL &) override; + void ResetPermission( content::PermissionType permission, const GURL& requesting_origin, @@ -55,6 +59,7 @@ public: content::PermissionControllerDelegate::SubscriptionId SubscribePermissionStatusChange( content::PermissionType permission, + content::RenderProcessHost* render_process_host, content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, const base::RepeatingCallback callback) override; diff --git a/src/core/printing/print_view_manager_base_qt.cpp b/src/core/printing/print_view_manager_base_qt.cpp index 1b412c71c..3af6ecf44 100644 --- a/src/core/printing/print_view_manager_base_qt.cpp +++ b/src/core/printing/print_view_manager_base_qt.cpp @@ -76,22 +76,29 @@ void GetDefaultPrintSettingsReplyOnIO(scoped_refptr void GetDefaultPrintSettingsOnIO(printing::mojom::PrintManagerHost::GetDefaultPrintSettingsCallback callback, scoped_refptr queue, - int process_id, int routing_id) + bool is_modifiable, + content::GlobalRenderFrameHostId rfh_id) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); std::unique_ptr printer_query = queue->PopPrinterQuery(0); if (!printer_query) - printer_query = queue->CreatePrinterQuery(process_id, routing_id); + printer_query = queue->CreatePrinterQuery(rfh_id); // Loads default settings. This is asynchronous, only the mojo message sender // will hang until the settings are retrieved. auto *printer_query_ptr = printer_query.get(); - printer_query_ptr->GetSettings( - printing::PrinterQuery::GetSettingsAskParam::DEFAULTS, 0, false, - printing::mojom::MarginType::kDefaultMargins, false, false, - base::BindOnce(&GetDefaultPrintSettingsReplyOnIO, queue, - std::move(printer_query), std::move(callback))); + printer_query_ptr->GetDefaultSettings( + base::BindOnce(&GetDefaultPrintSettingsReplyOnIO, queue, + std::move(printer_query), std::move(callback)), + is_modifiable); +} + +printing::mojom::PrintPagesParamsPtr CreateEmptyPrintPagesParamsPtr() +{ + auto params = printing::mojom::PrintPagesParams::New(); + params->params = printing::mojom::PrintParams::New(); + return params; } // Runs |callback| with |params| to reply to @@ -100,11 +107,8 @@ void UpdatePrintSettingsReply(printing::mojom::PrintManagerHost::UpdatePrintSett printing::mojom::PrintPagesParamsPtr params, bool canceled) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - if (!params) { - // Fills |params| with initial values. - params = printing::mojom::PrintPagesParams::New(); - params->params = printing::mojom::PrintParams::New(); - } + if (!params) + params = CreateEmptyPrintPagesParamsPtr(); std::move(callback).Run(std::move(params), canceled); } @@ -138,13 +142,13 @@ void UpdatePrintSettingsReplyOnIO(scoped_refptr que void UpdatePrintSettingsOnIO(int32_t cookie, printing::mojom::PrintManagerHost::UpdatePrintSettingsCallback callback, scoped_refptr queue, - base::Value job_settings, + base::Value::Dict job_settings, int process_id, int routing_id) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); std::unique_ptr printer_query = queue->PopPrinterQuery(cookie); if (!printer_query) - printer_query = queue->CreatePrinterQuery(content::ChildProcessHost::kInvalidUniqueID, MSG_ROUTING_NONE); + printer_query = queue->CreatePrinterQuery(content::GlobalRenderFrameHostId()); auto *printer_query_ptr = printer_query.get(); printer_query_ptr->SetSettings( @@ -154,37 +158,13 @@ void UpdatePrintSettingsOnIO(int32_t cookie, process_id, routing_id)); } -// Runs |callback| with |params| to reply to -// mojom::PrintManagerHost::ScriptedPrint. -void ScriptedPrintReply(printing::mojom::PrintManagerHost::ScriptedPrintCallback callback, - printing::mojom::PrintPagesParamsPtr params, - int process_id) -{ - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - - if (!content::RenderProcessHost::FromID(process_id)) { - // Early return if the renderer is not alive. - return; - } - - if (!params) { - // Fills |params| with initial values. - params = printing::mojom::PrintPagesParams::New(); - params->params = printing::mojom::PrintParams::New(); - } - std::move(callback).Run(std::move(params)); -} - void ScriptedPrintReplyOnIO(scoped_refptr queue, std::unique_ptr printer_query, - printing::mojom::PrintManagerHost::ScriptedPrintCallback callback, - int process_id) + printing::mojom::PrintManagerHost::ScriptedPrintCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); - auto params = printing::mojom::PrintPagesParams::New(); - params->params = printing::mojom::PrintParams::New(); - if (printer_query->last_status() == printing::mojom::ResultCode::kSuccess && - printer_query->settings().dpi()) { + printing::mojom::PrintPagesParamsPtr params = CreateEmptyPrintPagesParamsPtr(); + if (printer_query->last_status() == printing::mojom::ResultCode::kSuccess && printer_query->settings().dpi()) { RenderParamsFromPrintSettings(printer_query->settings(), params->params.get()); params->params->document_cookie = printer_query->cookie(); params->pages = printing::PageRange::GetPages(printer_query->settings().ranges()); @@ -192,8 +172,7 @@ void ScriptedPrintReplyOnIO(scoped_refptr queue, bool has_valid_cookie = params->params->document_cookie; bool has_dpi = !params->params->dpi.IsEmpty(); content::GetUIThreadTaskRunner({})->PostTask( - FROM_HERE, base::BindOnce(&ScriptedPrintReply, std::move(callback), - std::move(params), process_id)); + FROM_HERE, base::BindOnce(std::move(callback), std::move(params))); if (has_dpi && has_valid_cookie) { queue->QueuePrinterQuery(std::move(printer_query)); @@ -205,22 +184,20 @@ void ScriptedPrintReplyOnIO(scoped_refptr queue, void ScriptedPrintOnIO(printing::mojom::ScriptedPrintParamsPtr params, printing::mojom::PrintManagerHost::ScriptedPrintCallback callback, scoped_refptr queue, - int process_id, - int routing_id) + bool is_modifiable, + content::GlobalRenderFrameHostId rfh_id) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); std::unique_ptr printer_query = queue->PopPrinterQuery(params->cookie); if (!printer_query) - printer_query = queue->CreatePrinterQuery(process_id, routing_id); + printer_query = queue->CreatePrinterQuery(rfh_id); auto *printer_query_ptr = printer_query.get(); - printer_query_ptr->GetSettings( - printing::PrinterQuery::GetSettingsAskParam::ASK_USER, params->expected_pages_count, - params->has_selection, params->margin_type, params->is_scripted, - params->is_modifiable, - base::BindOnce(&ScriptedPrintReplyOnIO, queue, std::move(printer_query), - std::move(callback), process_id)); + printer_query_ptr->GetSettingsFromUser( + params->expected_pages_count, params->has_selection, params->margin_type, + params->is_scripted, is_modifiable, + base::BindOnce(&ScriptedPrintReplyOnIO, queue, std::move(printer_query), std::move(callback))); } } // namespace @@ -248,6 +225,25 @@ void PrintViewManagerBaseQt::SetPrintingRFH(content::RenderFrameHost *rfh) m_printingRFH = rfh; } +void PrintViewManagerBaseQt::ScriptedPrintReply(ScriptedPrintCallback callback, + int process_id, + printing::mojom::PrintPagesParamsPtr params) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + +#if BUILDFLAG(ENABLE_OOP_PRINTING) + // Finished getting all settings (defaults and from user), no further need + // to be registered as a system print client. + UnregisterSystemPrintClient(); +#endif + if (!content::RenderProcessHost::FromID(process_id)) { + // Early return if the renderer is not alive. + return; + } + +// set_cookie(params->params->document_cookie); + std::move(callback).Run(std::move(params)); +} + void PrintViewManagerBaseQt::UpdatePrintingEnabled() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -334,14 +330,15 @@ void PrintViewManagerBaseQt::DidPrintDocument(printing::mojom::DidPrintDocumentP void PrintViewManagerBaseQt::GetDefaultPrintSettings(GetDefaultPrintSettingsCallback callback) { - content::RenderFrameHost* render_frame_host = - print_manager_host_receivers_.GetCurrentTargetFrame(); - + content::RenderFrameHost *render_frame_host = + print_manager_host_receivers_.GetCurrentTargetFrame(); + content::RenderProcessHost *render_process_host = + render_frame_host->GetProcess(); content::GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&GetDefaultPrintSettingsOnIO, std::move(callback), m_printerQueriesQueue, - render_frame_host->GetProcess()->GetID(), - render_frame_host->GetRoutingID())); + !render_process_host->IsPdf(), + render_frame_host->GetGlobalId())); } void PrintViewManagerBaseQt::PrintingFailed(int32_t cookie) @@ -362,12 +359,16 @@ void PrintViewManagerBaseQt::ScriptedPrint(printing::mojom::ScriptedPrintParamsP DCHECK_CURRENTLY_ON(content::BrowserThread::UI); content::RenderFrameHost *render_frame_host = print_manager_host_receivers_.GetCurrentTargetFrame(); + content::RenderProcessHost *render_process_host = + render_frame_host->GetProcess(); + auto callback_wrapper = base::BindOnce( + &PrintViewManagerBaseQt::ScriptedPrintReply, weak_ptr_factory_.GetWeakPtr(), + std::move(callback), render_process_host->GetID()); content::GetIOThreadTaskRunner({})->PostTask( FROM_HERE, - base::BindOnce(&ScriptedPrintOnIO, std::move(params), std::move(callback), - m_printerQueriesQueue, render_frame_host->GetProcess()->GetID(), - render_frame_host->GetRoutingID())); + base::BindOnce(&ScriptedPrintOnIO, std::move(params), std::move(callback_wrapper), + m_printerQueriesQueue, !render_process_host->IsPdf(), render_frame_host->GetGlobalId())); } void PrintViewManagerBaseQt::ShowInvalidPrinterSettingsError() @@ -461,8 +462,8 @@ bool PrintViewManagerBaseQt::RenderAllMissingPagesNow() // We can't print if there is no renderer. if (!web_contents() || - !web_contents()->GetRenderViewHost() || - !web_contents()->GetRenderViewHost()->IsRenderViewLive()) { + !web_contents()->GetMainFrame() || + !web_contents()->GetMainFrame()->IsRenderFrameLive()) { return false; } @@ -504,8 +505,8 @@ bool PrintViewManagerBaseQt::CreateNewPrintJob(std::unique_ptrGetRenderViewHost() || - !web_contents()->GetRenderViewHost()->IsRenderViewLive()) { + if (!web_contents()->GetMainFrame() || + !web_contents()->GetMainFrame()->IsRenderFrameLive()) { return false; } @@ -513,7 +514,7 @@ bool PrintViewManagerBaseQt::CreateNewPrintJob(std::unique_ptr(); + m_printJob = base::MakeRefCounted(nullptr /*g_browser_process->print_job_manager()*/); m_printJob->Initialize(std::move(query), RenderSourceName(), number_pages_); m_registrar.Add(this, chrome::NOTIFICATION_PRINT_JOB_EVENT, content::Source(m_printJob.get())); @@ -682,12 +683,12 @@ void PrintViewManagerBaseQt::SendPrintingEnabled(bool enabled, content::RenderFr GetPrintRenderFrame(rfh)->SetPrintingEnabled(enabled); } -void PrintViewManagerBaseQt::UpdatePrintSettings(int32_t cookie, base::Value job_settings, +void PrintViewManagerBaseQt::UpdatePrintSettings(int32_t cookie, base::Value::Dict job_settings, UpdatePrintSettingsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - if (!job_settings.FindIntKey(printing::kSettingPrinterType)) { + if (!job_settings.FindInt(printing::kSettingPrinterType)) { UpdatePrintSettingsReply(std::move(callback), nullptr, false); return; } diff --git a/src/core/printing/print_view_manager_base_qt.h b/src/core/printing/print_view_manager_base_qt.h index 602f5ef82..b83a9d286 100644 --- a/src/core/printing/print_view_manager_base_qt.h +++ b/src/core/printing/print_view_manager_base_qt.h @@ -47,7 +47,7 @@ public: void DidPrintDocument(printing::mojom::DidPrintDocumentParamsPtr params, DidPrintDocumentCallback callback) override; void GetDefaultPrintSettings(GetDefaultPrintSettingsCallback callback) override; - void UpdatePrintSettings(int32_t cookie, base::Value job_settings, + void UpdatePrintSettings(int32_t cookie, base::Value::Dict job_settings, UpdatePrintSettingsCallback callback) override; void ScriptedPrint(printing::mojom::ScriptedPrintParamsPtr, printing::mojom::PrintManagerHost::ScriptedPrintCallback) override; @@ -94,6 +94,11 @@ private: // been requested to the renderer. bool RenderAllMissingPagesNow(); + // Runs `callback` with `params` to reply to ScriptedPrint(). + void ScriptedPrintReply(ScriptedPrintCallback callback, + int process_id, + printing::mojom::PrintPagesParamsPtr params); + // Checks that synchronization is correct with |print_job_| based on |cookie|. bool PrintJobHasDocument(int cookie); @@ -147,6 +152,8 @@ private: // rendered or the print settings are being loaded. base::OnceClosure m_quitInnerLoop; scoped_refptr m_printerQueriesQueue; + + base::WeakPtrFactory weak_ptr_factory_{this}; }; } // namespace QtWebEngineCore diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp index 3e1635290..7fd6163f2 100644 --- a/src/core/profile_io_data_qt.cpp +++ b/src/core/profile_io_data_qt.cpp @@ -210,13 +210,13 @@ void ProfileIODataQt::ConfigureNetworkContextParams(bool in_memory, network_context_params->http_cache_enabled = m_httpCacheType != ProfileAdapter::NoCache; network_context_params->http_cache_max_size = m_httpCacheMaxSize; if (m_httpCacheType == ProfileAdapter::DiskHttpCache && !m_httpCachePath.isEmpty() && !m_inMemoryOnly && !in_memory) - network_context_params->http_cache_path = toFilePath(m_httpCachePath); + network_context_params->http_cache_directory = toFilePath(m_httpCachePath); network_context_params->persist_session_cookies = false; if (!m_inMemoryOnly && !in_memory) { network_context_params->file_paths = network::mojom::NetworkContextFilePaths::New(); - network_context_params->file_paths->data_path = toFilePath(m_dataPath); + network_context_params->file_paths->data_directory = toFilePath(m_dataPath); network_context_params->file_paths->http_server_properties_file_name = base::FilePath::FromASCII("Network Persistent State"); network_context_params->file_paths->transport_security_persister_file_name = base::FilePath::FromASCII("TransportSecurity"); network_context_params->file_paths->trust_token_database_name = base::FilePath::FromASCII("Trust Tokens"); diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index eeb0c3de9..9bcbc4a9a 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -6,6 +6,7 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" #include "renderer/content_settings_observer_qt.h" +#include "base/i18n/rtl.h" #include "base/strings/string_split.h" #if QT_CONFIG(webengine_spellchecker) #include "components/spellcheck/renderer/spellcheck.h" diff --git a/src/core/renderer/pepper/pepper_renderer_host_factory_qt.cpp b/src/core/renderer/pepper/pepper_renderer_host_factory_qt.cpp index ae3ff26b7..d0daea8c2 100644 --- a/src/core/renderer/pepper/pepper_renderer_host_factory_qt.cpp +++ b/src/core/renderer/pepper/pepper_renderer_host_factory_qt.cpp @@ -9,18 +9,10 @@ #include "pepper_renderer_host_factory_qt.h" #include "qtwebenginecoreglobal_p.h" -#include "base/memory/ptr_util.h" -#include "chrome/renderer/pepper/pepper_uma_host.h" -#if QT_CONFIG(webengine_printing_and_pdf) -#include "chrome/renderer/pepper/pepper_flash_font_file_host.h" -#include "components/pdf/renderer/pepper_pdf_host.h" -#endif // QT_CONFIG(webengine_printing_and_pdf) #include "content/public/renderer/renderer_ppapi_host.h" #include "ppapi/host/ppapi_host.h" #include "ppapi/host/resource_host.h" #include "ppapi/proxy/ppapi_messages.h" -#include "ppapi/proxy/ppapi_message_utils.h" -#include "ppapi/shared_impl/ppapi_permissions.h" namespace QtWebEngineCore { @@ -45,31 +37,6 @@ std::unique_ptr PepperRendererHostFactoryQt::CreateRe if (!host_->IsValidInstance(instance)) return nullptr; - // TODO(raymes): PDF also needs access to the FlashFontFileHost currently. - // We should either rename PPB_FlashFont_File to PPB_FontFile_Private or get - // rid of its use in PDF if possible. -#if QT_CONFIG(webengine_printing_and_pdf) - if (host_->GetPpapiHost()->permissions().HasPermission(ppapi::PERMISSION_FLASH) - || host_->GetPpapiHost()->permissions().HasPermission(ppapi::PERMISSION_PDF)) { - switch (message.type()) { - case PpapiHostMsg_FlashFontFile_Create::ID: { - ppapi::proxy::SerializedFontDescription description; - PP_PrivateFontCharset charset; - if (ppapi::UnpackMessage(message, &description, &charset)) - return base::WrapUnique(new PepperFlashFontFileHost(host_, instance, resource, description, charset)); - break; - } - } - } - - if (host_->GetPpapiHost()->permissions().HasPermission(ppapi::PERMISSION_PDF)) { - switch (message.type()) { - case PpapiHostMsg_PDF_Create::ID: - return std::make_unique(host_, instance, resource); - } - } -#endif // QT_CONFIG(webengine_printing_and_pdf) - // Create a default ResourceHost for this message type to suppress // "Failed to create PPAPI resource host" console error message. switch (message.type()) { diff --git a/src/core/renderer_host/user_resource_controller_host.cpp b/src/core/renderer_host/user_resource_controller_host.cpp index 7ceaa265b..b24e87e8b 100644 --- a/src/core/renderer_host/user_resource_controller_host.cpp +++ b/src/core/renderer_host/user_resource_controller_host.cpp @@ -5,12 +5,14 @@ #include "type_conversion.h" #include "web_contents_adapter.h" + #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_process_host_observer.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" +#include "ipc/ipc_channel_proxy.h" #include "qtwebengine/userscript/userscript.mojom.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" diff --git a/src/core/touch_handle_drawable_qt.cpp b/src/core/touch_handle_drawable_qt.cpp index 56f9c2086..1e979fa03 100644 --- a/src/core/touch_handle_drawable_qt.cpp +++ b/src/core/touch_handle_drawable_qt.cpp @@ -128,10 +128,11 @@ gfx::RectF TouchHandleDrawableQt::GetVisibleBounds() const bounds.Offset(m_originPosition.x(), m_originPosition.y()); gfx::RectF visibleBounds(bounds); - visibleBounds.Inset(kSelectionHandlePadding, - kSelectionHandlePadding + kSelectionHandleVerticalVisualOffset, - kSelectionHandlePadding, - kSelectionHandlePadding); + visibleBounds.Inset(gfx::InsetsF::TLBR( + kSelectionHandlePadding, + kSelectionHandlePadding + kSelectionHandleVerticalVisualOffset, + kSelectionHandlePadding, + kSelectionHandlePadding)); return visibleBounds; } diff --git a/src/core/type_conversion.cpp b/src/core/type_conversion.cpp index bae08ff3e..54f6e2e4f 100644 --- a/src/core/type_conversion.cpp +++ b/src/core/type_conversion.cpp @@ -8,8 +8,9 @@ #include #include #include -#include -#include +#include "ui/gfx/image/image.h" +#include "ui/gfx/image/image_skia.h" +#include "ui/gfx/image/image_skia_rep.h" #include "third_party/blink/public/mojom/favicon/favicon_url.mojom.h" #include diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h index 52eb4d184..92304a7b8 100644 --- a/src/core/type_conversion.h +++ b/src/core/type_conversion.h @@ -169,6 +169,11 @@ inline QSizeF toQt(const gfx::SizeF &size) return QSizeF(size.width(), size.height()); } +inline QSize toQt(const SkISize &size) +{ + return QSize(size.width(), size.height()); +} + inline QColor toQt(const SkColor &c) { return QColor(SkColorGetR(c), SkColorGetG(c), SkColorGetB(c), SkColorGetA(c)); diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index d8db4471e..1f17d0398 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -95,8 +95,8 @@ namespace QtWebEngineCore { if (!isInitialized()) \ return return_value -#define CHECK_VALID_RENDER_WIDGET_HOST_VIEW(render_view_host) \ - if (!render_view_host->IsRenderViewLive() && render_view_host->GetWidget()->GetView()) { \ +#define CHECK_VALID_RENDER_WIDGET_HOST_VIEW(render_frame_host) \ + if (!render_frame_host->IsRenderFrameLive() && render_frame_host->GetView()) { \ LOG(WARNING) << "Ignore navigation due to terminated render process with invalid RenderWidgetHostView."; \ return; \ } @@ -496,7 +496,7 @@ void WebContentsAdapter::initialize(content::SiteInstance *site) // Create a RenderView with the initial empty document content::RenderViewHost *rvh = m_webContents->GetRenderViewHost(); Q_ASSERT(rvh); - if (!rvh->IsRenderViewLive()) + if (!m_webContents->GetMainFrame()->IsRenderFrameLive()) static_cast(m_webContents.get())->CreateRenderViewForRenderManager( rvh, absl::nullopt, nullptr); @@ -579,7 +579,7 @@ void WebContentsAdapter::reload() bool wasDiscarded = (m_lifecycleState == LifecycleState::Discarded); setLifecycleState(LifecycleState::Active); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); WebEngineSettings *settings = WebEngineSettings::get(m_adapterClient->webEngineSettings()); settings->doApply(); if (!wasDiscarded) // undiscard() already triggers a reload @@ -594,7 +594,7 @@ void WebContentsAdapter::reloadAndBypassCache() bool wasDiscarded = (m_lifecycleState == LifecycleState::Discarded); setLifecycleState(LifecycleState::Active); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); WebEngineSettings *settings = WebEngineSettings::get(m_adapterClient->webEngineSettings()); settings->doApply(); if (!wasDiscarded) // undiscard() already triggers a reload @@ -626,7 +626,7 @@ void WebContentsAdapter::load(const QWebEngineHttpRequest &request) setLifecycleState(LifecycleState::Active); } - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); WebEngineSettings::get(m_adapterClient->webEngineSettings())->doApply(); @@ -714,7 +714,7 @@ void WebContentsAdapter::setContent(const QByteArray &data, const QString &mimeT else setLifecycleState(LifecycleState::Active); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); WebEngineSettings::get(m_adapterClient->webEngineSettings())->doApply(); @@ -865,7 +865,7 @@ void WebContentsAdapter::navigateBack() { CHECK_INITIALIZED(); base::RecordAction(base::UserMetricsAction("Back")); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); if (!m_webContents->GetController().CanGoBack()) return; m_webContents->GetController().GoBack(); @@ -876,7 +876,7 @@ void WebContentsAdapter::navigateForward() { CHECK_INITIALIZED(); base::RecordAction(base::UserMetricsAction("Forward")); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); if (!m_webContents->GetController().CanGoForward()) return; m_webContents->GetController().GoForward(); @@ -886,7 +886,7 @@ void WebContentsAdapter::navigateForward() void WebContentsAdapter::navigateToIndex(int offset) { CHECK_INITIALIZED(); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); m_webContents->GetController().GoToIndex(offset); focusIfNecessary(); } @@ -894,7 +894,7 @@ void WebContentsAdapter::navigateToIndex(int offset) void WebContentsAdapter::navigateToOffset(int offset) { CHECK_INITIALIZED(); - CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetRenderViewHost()); + CHECK_VALID_RENDER_WIDGET_HOST_VIEW(m_webContents->GetMainFrame()); m_webContents->GetController().GoToOffset(offset); focusIfNecessary(); } @@ -2027,7 +2027,7 @@ void WebContentsAdapter::undiscard() // Create a RenderView with the initial empty document content::RenderViewHost *rvh = m_webContents->GetRenderViewHost(); Q_ASSERT(rvh); - if (!rvh->IsRenderViewLive()) + if (!m_webContents->GetMainFrame()->IsRenderFrameLive()) static_cast(m_webContents.get()) ->CreateRenderViewForRenderManager(rvh, absl::nullopt, nullptr); m_webContentsDelegate->RenderViewHostChanged(nullptr, rvh); diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index f7c1ea164..512c9a403 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -742,8 +742,8 @@ void WebContentsDelegateQt::RegisterProtocolHandler(content::RenderFrameHost *fr { content::BrowserContext *context = frameHost->GetBrowserContext(); - content::ProtocolHandler handler = - content::ProtocolHandler::CreateProtocolHandler(protocol, url); + custom_handlers::ProtocolHandler handler = + custom_handlers::ProtocolHandler::CreateProtocolHandler(protocol, url); custom_handlers::ProtocolHandlerRegistry *registry = ProtocolHandlerRegistryFactory::GetForBrowserContext(context); @@ -759,8 +759,8 @@ void WebContentsDelegateQt::UnregisterProtocolHandler(content::RenderFrameHost * { content::BrowserContext* context = frameHost->GetBrowserContext(); - content::ProtocolHandler handler = - content::ProtocolHandler::CreateProtocolHandler(protocol, url); + custom_handlers::ProtocolHandler handler = + custom_handlers::ProtocolHandler::CreateProtocolHandler(protocol, url); custom_handlers::ProtocolHandlerRegistry* registry = ProtocolHandlerRegistryFactory::GetForBrowserContext(context); diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index b16afc28d..3465e7fef 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -649,8 +649,6 @@ WebEngineContext::WebEngineContext() parsedCommandLine->AppendSwitch(sandbox::policy::switches::kNoSandbox); qInfo() << "Sandboxing disabled by user."; } - // Do not try to be clever with device-scale-factor, it messes up scaling in accessibility for us - parsedCommandLine->AppendSwitchASCII(switches::kEnableUseZoomForDSF, "false"); parsedCommandLine->AppendSwitch(switches::kEnableThreadedCompositing); diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index f54fdbbfc..fd6c56a3e 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -3148,45 +3148,50 @@ void tst_QWebEngineView::webUIURLs_data() QTest::addColumn("supported"); QTest::newRow("about") << QUrl("chrome://about") << false; QTest::newRow("accessibility") << QUrl("chrome://accessibility") << true; + QTest::newRow("app-service-internals") << QUrl("chrome://app-service-internals") << false; + QTest::newRow("app-settings") << QUrl("chrome://app-settings") << false; QTest::newRow("apps") << QUrl("chrome://apps") << false; + QTest::newRow("attribution-internals") << QUrl("chrome://attribution-internals") << true; QTest::newRow("autofill-internals") << QUrl("chrome://autofill-internals") << false; QTest::newRow("blob-internals") << QUrl("chrome://blob-internals") << true; QTest::newRow("bluetooth-internals") << QUrl("chrome://bluetooth-internals") << false; QTest::newRow("bookmarks") << QUrl("chrome://bookmarks") << false; QTest::newRow("chrome-urls") << QUrl("chrome://chrome-urls") << false; QTest::newRow("components") << QUrl("chrome://components") << false; - QTest::newRow("conversion-internals") << QUrl("chrome://conversion-internals") << true; + QTest::newRow("connectors-internals") << QUrl("chrome://connectors-internals") << false; QTest::newRow("crashes") << QUrl("chrome://crashes") << false; QTest::newRow("credits") << QUrl("chrome://credits") << false; QTest::newRow("device-log") << QUrl("chrome://device-log") << true; - QTest::newRow("devices") << QUrl("chrome://devices") << false; QTest::newRow("dino") << QUrl("chrome://dino") << false; // It works but this is an error page QTest::newRow("discards") << QUrl("chrome://discards") << false; QTest::newRow("download-internals") << QUrl("chrome://download-internals") << false; QTest::newRow("downloads") << QUrl("chrome://downloads") << false; QTest::newRow("extensions") << QUrl("chrome://extensions") << false; + QTest::newRow("extensions-internals") << QUrl("chrome://extensions-internals") << false; QTest::newRow("flags") << QUrl("chrome://flags") << false; QTest::newRow("gcm-internals") << QUrl("chrome://gcm-internals") << false; QTest::newRow("gpu") << QUrl("chrome://gpu") << true; QTest::newRow("help") << QUrl("chrome://help") << false; QTest::newRow("histograms") << QUrl("chrome://histograms") << true; QTest::newRow("history") << QUrl("chrome://history") << false; + QTest::newRow("history-clusters-internals") << QUrl("chrome://history-clusters-internals") << false; QTest::newRow("indexeddb-internals") << QUrl("chrome://indexeddb-internals") << true; QTest::newRow("inspect") << QUrl("chrome://inspect") << false; QTest::newRow("interstitials") << QUrl("chrome://interstitials") << false; - QTest::newRow("interventions-internals") << QUrl("chrome://interventions-internals") << false; QTest::newRow("invalidations") << QUrl("chrome://invalidations") << false; QTest::newRow("linux-proxy-config") << QUrl("chrome://linux-proxy-config") << false; QTest::newRow("local-state") << QUrl("chrome://local-state") << false; QTest::newRow("management") << QUrl("chrome://management") << false; QTest::newRow("media-engagement") << QUrl("chrome://media-engagement") << false; QTest::newRow("media-internals") << QUrl("chrome://media-internals") << true; + QTest::newRow("nacl") << QUrl("chrome://nacl") << false; QTest::newRow("net-export") << QUrl("chrome://net-export") << false; QTest::newRow("net-internals") << QUrl("chrome://net-internals") << true; QTest::newRow("network-error") << QUrl("chrome://network-error") << false; QTest::newRow("network-errors") << QUrl("chrome://network-errors") << true; QTest::newRow("ntp-tiles-internals") << QUrl("chrome://ntp-tiles-internals") << false; QTest::newRow("omnibox") << QUrl("chrome://omnibox") << false; + QTest::newRow("optimization-guide-internals") << QUrl("chrome://optimization-guide-internals") << false; QTest::newRow("password-manager-internals") << QUrl("chrome://password-manager-internals") << false; QTest::newRow("policy") << QUrl("chrome://policy") << false; QTest::newRow("predictors") << QUrl("chrome://predictors") << false; @@ -3204,8 +3209,6 @@ void tst_QWebEngineView::webUIURLs_data() QTest::newRow("settings") << QUrl("chrome://settings") << false; QTest::newRow("signin-internals") << QUrl("chrome://signin-internals") << false; QTest::newRow("site-engagement") << QUrl("chrome://site-engagement") << false; - QTest::newRow("suggestions") << QUrl("chrome://suggestions") << false; - QTest::newRow("supervised-user-internals") << QUrl("chrome://supervised-user-internals") << false; QTest::newRow("sync-internals") << QUrl("chrome://sync-internals") << false; QTest::newRow("system") << QUrl("chrome://system") << false; QTest::newRow("terms") << QUrl("chrome://terms") << false; @@ -3215,12 +3218,14 @@ void tst_QWebEngineView::webUIURLs_data() QTest::newRow("usb-internals") << QUrl("chrome://usb-internals") << false; QTest::newRow("user-actions") << QUrl("chrome://user-actions") << true; QTest::newRow("version") << QUrl("chrome://version") << false; + QTest::newRow("web-app-internals") << QUrl("chrome://web-app-internals") << false; #if QT_CONFIG(webengine_webrtc) QTest::newRow("webrtc-internals") << QUrl("chrome://webrtc-internals") << true; #if QT_CONFIG(webengine_extensions) QTest::newRow("webrtc-logs") << QUrl("chrome://webrtc-logs") << true; #endif // QT_CONFIG(webengine_extensions) #endif // QT_CONFIG(webengine_webrtc) + QTest::newRow("whats-new") << QUrl("chrome://whats-new") << false; } void tst_QWebEngineView::webUIURLs() diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py index 0e2bb1d7e..4c115b9c5 100755 --- a/tools/scripts/take_snapshot.py +++ b/tools/scripts/take_snapshot.py @@ -146,6 +146,8 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('third_party/colorama') or file_path.startswith('third_party/depot_tools') or (file_path.startswith('third_party/node/node_modules/') + and not file_path.startswith('third_party/node/node_modules/@types/d3') + and not file_path.startswith('third_party/node/node_modules/@types/trusted-types/') and not file_path.startswith('third_party/node/node_modules/cancel-token/') and not file_path.startswith('third_party/node/node_modules/cssbeautify/') and not file_path.startswith('third_party/node/node_modules/has-ansi/') diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py index d94764f39..407f5f2cc 100644 --- a/tools/scripts/version_resolver.py +++ b/tools/scripts/version_resolver.py @@ -12,8 +12,8 @@ import json import urllib3 import git_submodule as GitSubmodule -chromium_version = '98.0.4758.90' -chromium_branch = '4758' +chromium_version = '102.0.5005.137' +chromium_branch = '5005' ninja_version = 'v1.8.2' json_url = 'http://omahaproxy.appspot.com/all.json' -- cgit v1.2.3