diff options
Diffstat (limited to 'src')
26 files changed, 69 insertions, 49 deletions
diff --git a/src/3rdparty b/src/3rdparty -Subproject 3f8994c671d1cfc674ab64e118304b897a84762 +Subproject 156c2b70ceef9a4464a5a241c9f816dea4fd316 diff --git a/src/core/api/core_api.pro b/src/core/api/core_api.pro index e0600e6fe..38dc6b39d 100644 --- a/src/core/api/core_api.pro +++ b/src/core/api/core_api.pro @@ -3,7 +3,7 @@ DESTDIR = $$OUT_PWD/$$getConfigDir() TEMPLATE = lib -CONFIG += staticlib c++14 +CONFIG += staticlib QT += network core-private webenginecoreheaders-private # Don't create .prl file for this intermediate library because @@ -27,7 +27,7 @@ INCLUDEPATH += $$QTWEBENGINE_ROOT/src/core \ $$CHROMIUM_GEN_DIR \ $$CHROMIUM_SRC_DIR -linux-g++*: QMAKE_CXXFLAGS += -Wno-unused-parameter +gcc: QMAKE_CXXFLAGS_WARN_ON = -Wno-unused-parameter HEADERS = \ qwebenginecallback.h \ @@ -59,6 +59,7 @@ SOURCES = \ ### Qt6 Remove this workaround unix:!isEmpty(QMAKE_LFLAGS_VERSION_SCRIPT):!static { + CONFIG -= warning_clean SOURCES += qtbug-60565.cpp \ qtbug-61521.cpp } @@ -70,3 +71,5 @@ msvc { "if exist $(DESTDIR_TARGET).objects del $(DESTDIR_TARGET).objects$$escape_expand(\\n\\t)" \ "for %%a in ($(OBJECTS)) do echo $$shell_quote($$shell_path($$OUT_PWD))\\%%a >> $(DESTDIR_TARGET).objects" } + +load(qt_common) diff --git a/src/core/chromium_overrides.cpp b/src/core/chromium_overrides.cpp index f3b7d3897..a497ddc46 100644 --- a/src/core/chromium_overrides.cpp +++ b/src/core/chromium_overrides.cpp @@ -46,6 +46,7 @@ #include "base/values.h" #include "content/browser/renderer_host/pepper/pepper_truetype_font_list.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/common/font_list.h" #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/base/dragdrop/os_exchange_data_provider_factory.h" diff --git a/src/core/config/common.pri b/src/core/config/common.pri index c41348f28..bb318f1f0 100644 --- a/src/core/config/common.pri +++ b/src/core/config/common.pri @@ -100,4 +100,10 @@ qtConfig(webengine-v8-snapshot) { gn_args += v8_use_snapshot=false } +qtConfig(webengine-kerberos) { + gn_args += use_kerberos=true +} else { + gn_args += use_kerberos=false +} + !msvc: gn_args += enable_iterator_debugging=false diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri index 8ffc276de..7f634472d 100644 --- a/src/core/config/linux.pri +++ b/src/core/config/linux.pri @@ -5,7 +5,6 @@ gn_args += \ use_cups=false \ use_gio=false \ use_gnome_keyring=false \ - use_kerberos=false \ linux_use_bundled_binutils=false \ use_udev=true \ use_bundled_fontconfig=false \ diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri index e5e819e04..4426901cf 100644 --- a/src/core/config/mac_osx.pri +++ b/src/core/config/mac_osx.pri @@ -24,7 +24,6 @@ system("$${QMAKE_CLANG_PATH} --version") gn_args += \ is_clang=true \ use_sysroot=false \ - use_kerberos=false \ clang_base_path=\"$${QMAKE_CLANG_DIR}\" \ clang_use_chrome_plugins=false \ mac_deployment_target=\"$${QMAKE_MACOSX_DEPLOYMENT_TARGET}\" \ diff --git a/src/core/config/windows.pri b/src/core/config/windows.pri index 5aa511da3..3b42a0b9a 100644 --- a/src/core/config/windows.pri +++ b/src/core/config/windows.pri @@ -3,7 +3,6 @@ include(common.pri) gn_args += \ is_clang=false \ use_sysroot=false \ - use_kerberos=true \ enable_session_service=false \ ninja_use_custom_environment_files=false \ is_multi_dll_chrome=false \ diff --git a/src/core/configure.json b/src/core/configure.json index 000faf686..a72e6ca55 100644 --- a/src/core/configure.json +++ b/src/core/configure.json @@ -24,6 +24,7 @@ "webengine-geolocation": "boolean", "webengine-v8-snapshot": "boolean", "webengine-webchannel": "boolean", + "webengine-kerberos": "boolean", "alsa": { "type": "boolean", "name": "webengine-alsa" }, "pulseaudio": { "type": "boolean", "name": "webengine-pulseaudio" }, "ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } }, @@ -518,6 +519,13 @@ "autoDetect": false, "output": [ "privateFeature" ] }, + "webengine-kerberos": { + "label": "Kerberos Authentication", + "purpose": "Enables Kerberos Authentication Support", + "autoDetect": "config.win32", + "section": "WebEngine", + "output": [ "privateFeature" ] + }, "webengine-spellchecker": { "label": "Spellchecker", "purpose": "Provides a spellchecker.", @@ -695,6 +703,7 @@ "webengine-geolocation", "webengine-webchannel", "webengine-v8-snapshot", + "webengine-kerberos", { "type": "feature", "args": "webengine-v8-snapshot-support", diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 03f5a10fb..83b4e7cb5 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -72,7 +72,6 @@ #include "mojo/public/cpp/bindings/binding_set.h" #include "printing/buildflags/buildflags.h" #include "net/ssl/client_cert_identity.h" -#include "services/device/public/cpp/geolocation/location_provider.h" #include "services/resource_coordinator/public/cpp/process_resource_coordinator.h" #include "services/resource_coordinator/public/cpp/resource_coordinator_features.h" #include "services/service_manager/public/cpp/connector.h" @@ -767,14 +766,12 @@ bool ContentBrowserClientQt::CanCreateWindow( return (settings && settings->getJavaScriptCanOpenWindowsAutomatically()) || user_gesture; } +#if QT_CONFIG(webengine_geolocation) std::unique_ptr<device::LocationProvider> ContentBrowserClientQt::OverrideSystemLocationProvider() { -#if QT_CONFIG(webengine_geolocation) return base::WrapUnique(new LocationProviderQt()); -#else - return nullptr; -#endif } +#endif scoped_refptr<net::URLRequestContextGetter> GetSystemRequestContextOnUIThread() { diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h index 330024831..4d25ddf6a 100644 --- a/src/core/content_browser_client_qt.h +++ b/src/core/content_browser_client_qt.h @@ -168,7 +168,10 @@ public: content::ResourceContext *context, const std::vector<std::pair<int, int> > &render_frames) override; +#if QT_CONFIG(webengine_geolocation) std::unique_ptr<device::LocationProvider> OverrideSystemLocationProvider() override; +#endif + #if defined(Q_OS_LINUX) void GetAdditionalMappedFilesForChildProcess(const base::CommandLine& command_line, int child_process_id, content::PosixFileDescriptorInfo* mappings) override; #endif diff --git a/src/core/javascript_dialog_manager_qt.cpp b/src/core/javascript_dialog_manager_qt.cpp index 7f43f9020..289947237 100644 --- a/src/core/javascript_dialog_manager_qt.cpp +++ b/src/core/javascript_dialog_manager_qt.cpp @@ -44,7 +44,9 @@ #include "web_contents_view_qt.h" #include "type_conversion.h" + #include "base/memory/singleton.h" +#include "content/browser/web_contents/web_contents_impl.h" namespace QtWebEngineCore { diff --git a/src/core/login_delegate_qt.cpp b/src/core/login_delegate_qt.cpp index 6dd2aa5ed..2dbc27cf2 100644 --- a/src/core/login_delegate_qt.cpp +++ b/src/core/login_delegate_qt.cpp @@ -43,6 +43,7 @@ #include "login_delegate_qt.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/resource_dispatcher_host.h" diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp index 59c3544a7..2bac62084 100644 --- a/src/core/media_capture_devices_dispatcher.cpp +++ b/src/core/media_capture_devices_dispatcher.cpp @@ -50,13 +50,14 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/browser/media/webrtc/desktop_streams_registry.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" #include "content/public/browser/media_capture_devices.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "content/public/browser/notification_types.h" -#include "content/public/browser/web_contents.h" +#include "content/public/browser/render_process_host.h" #include "content/public/common/origin_util.h" #include "content/public/common/media_stream_request.h" #include "media/audio/audio_device_description.h" diff --git a/src/core/net/network_delegate_qt.cpp b/src/core/net/network_delegate_qt.cpp index 8cf974d17..e5bbb53c7 100644 --- a/src/core/net/network_delegate_qt.cpp +++ b/src/core/net/network_delegate_qt.cpp @@ -40,7 +40,7 @@ #include "network_delegate_qt.h" #include "profile_adapter.h" - +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/resource_request_info.h" diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp index 996a83d12..2fa42bf10 100644 --- a/src/core/permission_manager_qt.cpp +++ b/src/core/permission_manager_qt.cpp @@ -40,11 +40,11 @@ #include "permission_manager_qt.h" #include "content/browser/renderer_host/render_view_host_delegate.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/permission_controller.h" #include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_view_host.h" -#include "content/public/browser/web_contents.h" #include "type_conversion.h" #include "web_contents_delegate_qt.h" diff --git a/src/core/printing/print_view_manager_qt.cpp b/src/core/printing/print_view_manager_qt.cpp index 6813d54ee..ff9fc76be 100644 --- a/src/core/printing/print_view_manager_qt.cpp +++ b/src/core/printing/print_view_manager_qt.cpp @@ -44,8 +44,9 @@ #include "print_view_manager_qt.h" #include "type_conversion.h" -#include "web_engine_context.h" +#include "web_contents_adapter_client.h" #include "web_contents_view_qt.h" +#include "web_engine_context.h" #include <QtGui/qpagelayout.h> #include <QtGui/qpagesize.h> @@ -57,6 +58,7 @@ #include "chrome/browser/printing/printer_query.h" #include "components/printing/common/print_messages.h" #include "content/browser/renderer_host/render_view_host_impl.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/common/web_preferences.h" diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp index ad79304d3..d67a36863 100644 --- a/src/core/profile_io_data_qt.cpp +++ b/src/core/profile_io_data_qt.cpp @@ -98,7 +98,7 @@ namespace QtWebEngineCore { static const char* const kDefaultAuthSchemes[] = { net::kBasicAuthScheme, net::kDigestAuthScheme, -#if defined(USE_KERBEROS) && !defined(OS_ANDROID) +#if QT_CONFIG(webengine_kerberos) net::kNegotiateAuthScheme, #endif net::kNtlmAuthScheme }; diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni index ea18dad97..b1361e727 100644 --- a/src/core/qtwebengine_sources.gni +++ b/src/core/qtwebengine_sources.gni @@ -44,6 +44,7 @@ source_set("qtwebengine_sources") { "//chrome/common:buildflags", "//components/nacl/common:buildflags", "//extensions/buildflags:buildflags", + "//third_party/blink/public/mojom:mojom_platform", ] sources = [ "//chrome/common/custom_handlers/protocol_handler.cc", diff --git a/src/core/quota_permission_context_qt.cpp b/src/core/quota_permission_context_qt.cpp index f00b2008a..cb1467364 100644 --- a/src/core/quota_permission_context_qt.cpp +++ b/src/core/quota_permission_context_qt.cpp @@ -39,9 +39,9 @@ #include "quota_permission_context_qt.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" -#include "content/public/browser/web_contents.h" #include "quota_request_controller_impl.h" #include "qwebenginequotarequest.h" #include "web_contents_delegate_qt.h" diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 0b33c359c..f96bbff30 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -39,49 +39,38 @@ #include "render_widget_host_view_qt.h" -#include "common/qt_messages.h" #include "browser_accessibility_manager_qt.h" -#include "browser_accessibility_qt.h" #include "chromium_overrides.h" #include "compositor.h" #include "qtwebenginecoreglobal_p.h" #include "render_widget_host_view_qt_delegate.h" #include "type_conversion.h" -#include "web_contents_adapter.h" #include "web_contents_adapter_client.h" #include "web_event_factory.h" -#include "base/command_line.h" #include "components/viz/common/surfaces/frame_sink_id_allocator.h" -#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h" -#include "components/viz/service/display/direct_renderer.h" -#include "components/viz/service/frame_sinks/frame_sink_manager_impl.h" #include "content/browser/accessibility/browser_accessibility_state_impl.h" -#include "content/browser/browser_main_loop.h" #include "content/browser/frame_host/render_frame_host_impl.h" #include "content/browser/frame_host/frame_tree.h" -#include "content/browser/renderer_host/cursor_manager.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/common/cursors/webcursor.h" #include "content/common/input_messages.h" -#include "content/public/browser/browser_accessibility_state.h" -#include "content/public/browser/browser_thread.h" -#include "content/public/common/content_switches.h" #include "third_party/skia/include/core/SkColor.h" #include "third_party/blink/public/platform/web_cursor_info.h" -#include "ui/base/clipboard/scoped_clipboard_writer.h" -#include "ui/base/resource/resource_bundle.h" #include "ui/events/blink/blink_event_util.h" #include "ui/events/event.h" #include "ui/events/gesture_detection/gesture_provider_config_helper.h" #include "ui/events/gesture_detection/motion_event.h" -#include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/geometry/size_conversions.h" -#include "ui/gfx/image/image_skia.h" + +#if defined(USE_OZONE) +#include "ui/base/clipboard/scoped_clipboard_writer.h" +#endif #if defined(USE_AURA) #include "ui/base/cursor/cursor.h" #include "ui/base/cursor/cursors_aura.h" +#include "ui/base/resource/resource_bundle.h" #endif #include <private/qguiapplication_p.h> diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 76baf131b..3eda3993a 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -69,6 +69,8 @@ #include "services/service_manager/public/cpp/service_context.h" #include "third_party/blink/public/platform/web_url_error.h" #include "third_party/blink/public/platform/web_url_request.h" +#include "third_party/blink/public/web/web_security_policy.h" +#include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/webui/jstemplate_builder.h" #include "content/public/common/web_preferences.h" @@ -131,6 +133,11 @@ void ContentRendererClientQt::RenderThreadStarted() if (!m_spellCheck) InitSpellCheck(); #endif + + // Allow XMLHttpRequests from qrc to file. + blink::WebURL qrc(blink::KURL("qrc:")); + blink::WebString file(blink::WebString::FromASCII("file")); + blink::WebSecurityPolicy::AddOriginAccessWhitelistEntry(qrc, file, blink::WebString(), true); } void ContentRendererClientQt::RenderViewCreated(content::RenderView* render_view) diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index cac5bd09e..762d9f53a 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -55,6 +55,7 @@ #include "profile_qt.h" #include "qwebenginecallback_p.h" #include "render_view_observer_host_qt.h" +#include "render_widget_host_view_qt.h" #include "type_conversion.h" #include "web_contents_view_qt.h" #include "web_engine_context.h" diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index 11f64c5ad..569b939d8 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -602,14 +602,12 @@ void WebContentsDelegateQt::launchExternalURL(const QUrl &url, ui::PageTransitio } if (!navigationAllowedByPolicy || !navigationRequestAccepted) { + QString errorDescription; if (!navigationAllowedByPolicy) - didFailLoad(url, 420, QStringLiteral("Launching external protocol forbidden by WebEngineSettings::UnknownUrlSchemePolicy")); + errorDescription = QStringLiteral("Launching external protocol forbidden by WebEngineSettings::UnknownUrlSchemePolicy"); else - didFailLoad(url, 420, QStringLiteral("Launching external protocol suppressed by WebContentsAdapterClient::navigationRequested")); - if (settings->testAttribute(WebEngineSettings::ErrorPageEnabled)) { - EmitLoadStarted(toQt(GURL(content::kUnreachableWebDataURL)), true); - m_viewClient->webContentsAdapter()->load(toQt(GURL(content::kUnreachableWebDataURL))); - } + errorDescription = QStringLiteral("Launching external protocol suppressed by WebContentsAdapterClient::navigationRequested"); + didFailLoad(url, net::Error::ERR_ABORTED, errorDescription); } } diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp index f1d795ed7..7910688d3 100644 --- a/src/core/web_contents_view_qt.cpp +++ b/src/core/web_contents_view_qt.cpp @@ -42,12 +42,15 @@ #include "profile_adapter.h" #include "content_browser_client_qt.h" #include "render_widget_host_view_qt_delegate.h" +#include "render_widget_host_view_qt.h" #include "type_conversion.h" #include "web_contents_adapter.h" #include "web_engine_context.h" #include "components/spellcheck/spellcheck_buildflags.h" #include "content/browser/renderer_host/render_view_host_impl.h" +#include "content/browser/renderer_host/render_widget_host_impl.h" +#include "content/browser/web_contents/web_contents_impl.h" #include "content/public/common/context_menu_params.h" #include <ui/gfx/image/image_skia.h> diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h index 2dd94eabb..d1a2ff81e 100644 --- a/src/core/web_contents_view_qt.h +++ b/src/core/web_contents_view_qt.h @@ -41,16 +41,16 @@ #define WEB_CONTENTS_VIEW_QT_H #include "content/browser/renderer_host/render_view_host_delegate_view.h" -#include "content/browser/web_contents/web_contents_impl.h" #include "content/browser/web_contents/web_contents_view.h" -#include "content/public/browser/render_view_host.h" -#include "content/public/browser/render_widget_host.h" -#include "render_widget_host_view_qt.h" -#include "web_contents_adapter_client.h" -#include "web_contents_delegate_qt.h" -#include "web_engine_context.h" + +#include "api/qtwebenginecoreglobal_p.h" + +namespace content { +class WebContents; +} namespace QtWebEngineCore { +class WebContentsAdapterClient; class WebContentsViewQt : public content::WebContentsView @@ -61,8 +61,8 @@ public: WebContentsViewQt(content::WebContents* webContents) : m_webContents(webContents) - , m_client(0) - , m_factoryClient(0) + , m_client(nullptr) + , m_factoryClient(nullptr) , m_allowOtherViews(false) { } @@ -103,7 +103,7 @@ public: void RestoreFocus() override { QT_NOT_USED } - content::DropData* GetDropData() const override { QT_NOT_YET_IMPLEMENTED return 0; } + content::DropData* GetDropData() const override { QT_NOT_YET_IMPLEMENTED return nullptr; } gfx::Rect GetViewBounds() const override { QT_NOT_YET_IMPLEMENTED return gfx::Rect(); } diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 6fbdbec61..b7cf1344b 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -53,7 +53,6 @@ #endif #include "components/viz/common/features.h" #include "components/web_cache/browser/web_cache_manager.h" -#include "content/app/content_service_manager_main_delegate.h" #include "content/browser/devtools/devtools_http_handler.h" #include "content/browser/gpu/gpu_main_thread_factory.h" #include "content/browser/renderer_host/render_process_host_impl.h" |