diff options
Diffstat (limited to 'src/core/web_contents_delegate_qt.h')
-rw-r--r-- | src/core/web_contents_delegate_qt.h | 91 |
1 files changed, 27 insertions, 64 deletions
diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h index 4704f78fb..51004878d 100644 --- a/src/core/web_contents_delegate_qt.h +++ b/src/core/web_contents_delegate_qt.h @@ -1,58 +1,18 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef WEB_CONTENTS_DELEGATE_QT_H #define WEB_CONTENTS_DELEGATE_QT_H #include "content/browser/renderer_host/frame_tree_node.h" -#include "content/public/browser/media_capture_devices.h" #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_observer.h" #include "third_party/skia/include/core/SkColor.h" -#include "base/callback.h" +#include "web_contents_adapter_client.h" -#include "color_chooser_controller.h" -#include "find_text_helper.h" -#include "javascript_dialog_manager_qt.h" #include <QtCore/qlist.h> -#include <QWebEngineCertificateError> +#include <QtCore/qmap.h> namespace blink { namespace web_pref { @@ -61,15 +21,15 @@ namespace blink { } namespace content { - class ColorChooser; - class SiteInstance; - class JavaScriptDialogManager; - class WebContents; - struct ColorSuggestion; +class ColorChooser; +class JavaScriptDialogManager; +class WebContents; +struct MediaStreamRequest; } namespace QtWebEngineCore { +class FindTextHelper; class WebContentsAdapter; class WebContentsAdapterClient; class WebEngineSettings; @@ -122,11 +82,11 @@ public: content::WebContents *OpenURLFromTab(content::WebContents *source, const content::OpenURLParams ¶ms) override; void NavigationStateChanged(content::WebContents* source, content::InvalidateTypes changed_flags) override; void AddNewContents(content::WebContents *source, std::unique_ptr<content::WebContents> new_contents, const GURL &target_url, - WindowOpenDisposition disposition, const gfx::Rect &initial_pos, bool user_gesture, bool *was_blocked) override; + WindowOpenDisposition disposition, const blink::mojom::WindowFeatures &window_features, bool user_gesture, bool *was_blocked) override; void CloseContents(content::WebContents *source) override; void LoadProgressChanged(double progress) override; bool HandleKeyboardEvent(content::WebContents *source, const content::NativeWebKeyboardEvent &event) override; - content::ColorChooser* OpenColorChooser(content::WebContents *source, SkColor color, const std::vector<blink::mojom::ColorSuggestionPtr> &suggestions) override; + std::unique_ptr<content::ColorChooser> OpenColorChooser(content::WebContents *source, SkColor color, const std::vector<blink::mojom::ColorSuggestionPtr> &suggestions) override; void WebContentsCreated(content::WebContents *source_contents, int opener_render_process_id, int opener_render_frame_id, const std::string &frame_name, const GURL &target_url, content::WebContents *new_contents) override; content::JavaScriptDialogManager *GetJavaScriptDialogManager(content::WebContents *source) override; @@ -137,7 +97,7 @@ public: scoped_refptr<content::FileSelectListener> listener, const blink::mojom::FileChooserParams& params) override; bool DidAddMessageToConsole(content::WebContents *source, blink::mojom::ConsoleMessageLevel log_level, - const base::string16 &message, int32_t line_no, const base::string16 &source_id) override; + const std::u16string &message, int32_t line_no, const std::u16string &source_id) override; void FindReply(content::WebContents *source, int request_id, int number_of_matches, const gfx::Rect& selection_rect, int active_match_ordinal, bool final_update) override; void RequestMediaAccessPermission(content::WebContents *web_contents, const content::MediaStreamRequest &request, @@ -154,22 +114,23 @@ public: // WebContentsObserver overrides void RenderFrameCreated(content::RenderFrameHost *render_frame_host) override; - void RenderProcessGone(base::TerminationStatus status) override; + void PrimaryMainFrameRenderProcessGone(base::TerminationStatus status) override; void RenderFrameHostChanged(content::RenderFrameHost *old_host, content::RenderFrameHost *new_host) override; void RenderViewHostChanged(content::RenderViewHost *old_host, content::RenderViewHost *new_host) override; + void RenderViewReady() override; void DidStartNavigation(content::NavigationHandle *navigation_handle) override; void DidFinishNavigation(content::NavigationHandle *navigation_handle) override; - void DidStartLoading() override; - void DidReceiveResponse() override; + void PrimaryPageChanged(content::Page &page) override; void DidStopLoading() override; void DidFailLoad(content::RenderFrameHost* render_frame_host, const GURL& validated_url, int error_code) override; void DidFinishLoad(content::RenderFrameHost *render_frame_host, const GURL &validated_url) override; - void BeforeUnloadFired(bool proceed, const base::TimeTicks& proceed_time) override; - void OnVisibilityChanged(content::Visibility visibility) override; void ActivateContents(content::WebContents* contents) override; void ResourceLoadComplete(content::RenderFrameHost* render_frame_host, const content::GlobalRequestID& request_id, const blink::mojom::ResourceLoadInfo& resource_load_info) override; + void InnerWebContentsAttached(content::WebContents *inner_web_contents, + content::RenderFrameHost *render_frame_host, + bool is_full_page) override; void didFailLoad(const QUrl &url, int errorCode, const QString &errorDescription); void overrideWebPreferences(content::WebContents *, blink::web_pref::WebPreferences*); @@ -179,8 +140,8 @@ public: void launchExternalURL(const QUrl &url, ui::PageTransition page_transition, bool is_main_frame, bool has_user_gesture); FindTextHelper *findTextHelper(); - void setSavePageInfo(const SavePageInfo &spi) { m_savePageInfo = spi; } - const SavePageInfo &savePageInfo() { return m_savePageInfo; } + void setSavePageInfo(SavePageInfo *spi) { m_savePageInfo.reset(spi); } + SavePageInfo *savePageInfo() { return m_savePageInfo.get(); } WebEngineSettings *webEngineSettings() const; WebContentsAdapter *webContentsAdapter() const; @@ -191,8 +152,10 @@ public: using LoadingState = WebContentsAdapterClient::LoadingState; LoadingState loadingState() const { return m_loadingState; } - void addDevices(const blink::MediaStreamDevices &devices); - void removeDevices(const blink::MediaStreamDevices &devices); + void addDevices(const blink::mojom::StreamDevices &devices); + void removeDevices(const blink::mojom::StreamDevices &devices); + void addDevice(const blink::MediaStreamDevice &device); + void removeDevice(const blink::MediaStreamDevice &device); bool isCapturingAudio() const { return m_audioStreamCount > 0; } bool isCapturingVideo() const { return m_videoStreamCount > 0; } @@ -218,10 +181,9 @@ private: WebContentsAdapterClient *m_viewClient; QScopedPointer<FindTextHelper> m_findTextHelper; - SavePageInfo m_savePageInfo; + std::unique_ptr<SavePageInfo> m_savePageInfo; QSharedPointer<FilePickerController> m_filePickerController; LoadingState m_loadingState; - bool m_didStartLoadingSeen; FrameFocusedObserver m_frameFocusedObserver; QString m_title; @@ -237,9 +199,10 @@ private: bool isLoading() const { return progress >= 0; } QUrl url; bool isErrorPage = false; - int errorCode = 0; + int errorCode = 0, errorDomain = 0; QString errorDescription; bool triggersErrorPage = false; + QMultiMap<QByteArray, QByteArray> responseHeaders; void clear() { *this = LoadingInfo(); } } m_loadingInfo; |