summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-09 17:04:10 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-10 10:26:29 +0200
commit0a01998411de6a46af8d0b0ae13b8f401cd14a4b (patch)
tree7c27c908723628b70b21bfb52428c72acf050a71 /src
parent3c34f95ad4a96737f66ab4933edb9e00abecdc24 (diff)
Adaptations for Chromium 74
Change-Id: Icdefa05eec39c632328dfc40862e5b734170bf3f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src')
-rw-r--r--src/core/accessibility_tree_formatter_qt.cpp6
-rw-r--r--src/core/api/qwebengineurlrequestinfo.cpp1
-rw-r--r--src/core/api/qwebengineurlrequestinfo.h1
-rw-r--r--src/core/authentication_dialog_controller.cpp15
-rw-r--r--src/core/authentication_dialog_controller_p.h10
-rw-r--r--src/core/browser_main_parts_qt.cpp65
-rw-r--r--src/core/browser_main_parts_qt.h14
-rw-r--r--src/core/browser_message_filter_qt.cpp2
-rw-r--r--src/core/browser_message_filter_qt.h2
-rw-r--r--src/core/common/qt_messages.h4
-rw-r--r--src/core/compositor/compositor_resource_tracker.h7
-rw-r--r--src/core/content_browser_client_qt.cpp15
-rw-r--r--src/core/content_browser_client_qt.h6
-rw-r--r--src/core/devtools_frontend_qt.cpp2
-rw-r--r--src/core/extensions/component_extension_resource_manager_qt.cpp19
-rw-r--r--src/core/extensions/component_extension_resource_manager_qt.h8
-rw-r--r--src/core/extensions/extension_web_contents_observer_qt.h2
-rw-r--r--src/core/extensions/extensions_browser_client_qt.cpp27
-rw-r--r--src/core/extensions/extensions_browser_client_qt.h4
-rw-r--r--src/core/login_delegate_qt.cpp55
-rw-r--r--src/core/login_delegate_qt.h18
-rw-r--r--src/core/net/client_cert_override.cpp4
-rw-r--r--src/core/net/cookie_monster_delegate_qt.cpp34
-rw-r--r--src/core/net/cookie_monster_delegate_qt.h7
-rw-r--r--src/core/net/network_delegate_qt.cpp2
-rw-r--r--src/core/net/webui_controller_factory_qt.cpp3
-rw-r--r--src/core/ozone/gl_surface_qt.cpp2
-rw-r--r--src/core/ozone/gl_surface_qt.h2
-rw-r--r--src/core/platform_notification_service_qt.cpp8
-rw-r--r--src/core/platform_notification_service_qt.h2
-rw-r--r--src/core/pref_service_adapter.cpp4
-rw-r--r--src/core/printing/print_view_manager_qt.cpp1
-rw-r--r--src/core/printing/print_view_manager_qt.h2
-rw-r--r--src/core/profile_adapter.cpp2
-rw-r--r--src/core/profile_io_data_qt.cpp1
-rw-r--r--src/core/qtwebengine_resources.gni2
-rw-r--r--src/core/qtwebengine_sources.gni4
-rw-r--r--src/core/render_widget_host_view_qt.cpp6
-rw-r--r--src/core/render_widget_host_view_qt.h1
-rw-r--r--src/core/renderer/content_settings_observer_qt.cpp25
-rw-r--r--src/core/renderer/content_settings_observer_qt.h9
-rw-r--r--src/core/renderer_host/resource_dispatcher_host_delegate_qt.cpp4
-rw-r--r--src/core/user_notification_controller.cpp8
-rw-r--r--src/core/web_contents_adapter.cpp14
-rw-r--r--src/core/web_contents_view_qt.h3
-rw-r--r--src/core/web_engine_context.cpp28
-rw-r--r--src/core/web_engine_settings.cpp6
-rw-r--r--src/core/web_engine_settings.h8
48 files changed, 244 insertions, 231 deletions
diff --git a/src/core/accessibility_tree_formatter_qt.cpp b/src/core/accessibility_tree_formatter_qt.cpp
index 706857207..3520087ae 100644
--- a/src/core/accessibility_tree_formatter_qt.cpp
+++ b/src/core/accessibility_tree_formatter_qt.cpp
@@ -63,6 +63,7 @@ private:
const std::string GetAllowEmptyString() override;
const std::string GetAllowString() override;
const std::string GetDenyString() override;
+ const std::string GetDenyNodeString() override;
void AddProperties(const BrowserAccessibility &node, base::DictionaryValue* dict) override;
base::string16 ProcessTreeForOutput(const base::DictionaryValue &node, base::DictionaryValue * = nullptr) override;
};
@@ -198,6 +199,11 @@ const std::string AccessibilityTreeFormatterQt::GetDenyString()
return "@QT-DENY:";
}
+const std::string AccessibilityTreeFormatterQt::GetDenyNodeString()
+{
+ return "@QT-DENY-NODE:";
+}
+
#endif // QT_NO_ACCESSIBILITY
// static
diff --git a/src/core/api/qwebengineurlrequestinfo.cpp b/src/core/api/qwebengineurlrequestinfo.cpp
index 4e92bedcf..25fb4d50f 100644
--- a/src/core/api/qwebengineurlrequestinfo.cpp
+++ b/src/core/api/qwebengineurlrequestinfo.cpp
@@ -64,6 +64,7 @@ ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypePing, content::RESOURCE
ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypeServiceWorker, content::RESOURCE_TYPE_SERVICE_WORKER)
ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypeCspReport, content::RESOURCE_TYPE_CSP_REPORT)
ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypePluginResource, content::RESOURCE_TYPE_PLUGIN_RESOURCE)
+ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypeNavigationPreload, content::RESOURCE_TYPE_NAVIGATION_PRELOAD)
ASSERT_ENUMS_MATCH(QWebEngineUrlRequestInfo::ResourceTypeLast, content::RESOURCE_TYPE_LAST_TYPE)
ASSERT_ENUMS_MATCH(QtWebEngineCore::WebContentsAdapterClient::LinkNavigation, QWebEngineUrlRequestInfo::NavigationTypeLink)
diff --git a/src/core/api/qwebengineurlrequestinfo.h b/src/core/api/qwebengineurlrequestinfo.h
index 4637ff788..6b8159a9b 100644
--- a/src/core/api/qwebengineurlrequestinfo.h
+++ b/src/core/api/qwebengineurlrequestinfo.h
@@ -76,6 +76,7 @@ public:
ResourceTypeServiceWorker, // the main resource of a service worker.
ResourceTypeCspReport, // Content Security Policy (CSP) violation report
ResourceTypePluginResource, // A resource requested by a plugin
+ ResourceTypeNavigationPreload, // A service worker navigation preload request.
#ifndef Q_QDOC
ResourceTypeLast,
#endif
diff --git a/src/core/authentication_dialog_controller.cpp b/src/core/authentication_dialog_controller.cpp
index 1133b0bc1..23dd62979 100644
--- a/src/core/authentication_dialog_controller.cpp
+++ b/src/core/authentication_dialog_controller.cpp
@@ -46,7 +46,7 @@
namespace QtWebEngineCore {
-AuthenticationDialogControllerPrivate::AuthenticationDialogControllerPrivate(LoginDelegateQt *loginDelegate)
+AuthenticationDialogControllerPrivate::AuthenticationDialogControllerPrivate(base::WeakPtr<LoginDelegateQt> loginDelegate)
: loginDelegate(loginDelegate)
{
}
@@ -54,9 +54,10 @@ AuthenticationDialogControllerPrivate::AuthenticationDialogControllerPrivate(Log
void AuthenticationDialogControllerPrivate::dialogFinished(bool accepted, const QString &user, const QString &password)
{
base::PostTaskWithTraits(
- FROM_HERE, {content::BrowserThread::IO},
+ FROM_HERE, {content::BrowserThread::UI},
base::BindOnce(&LoginDelegateQt::sendAuthToRequester,
- loginDelegate, accepted, user, password));
+ loginDelegate,
+ accepted, user, password));
}
AuthenticationDialogController::AuthenticationDialogController(AuthenticationDialogControllerPrivate *dd)
@@ -71,22 +72,22 @@ AuthenticationDialogController::~AuthenticationDialogController()
QUrl AuthenticationDialogController::url() const
{
- return d->loginDelegate->url();
+ return d->url;
}
QString AuthenticationDialogController::realm() const
{
- return d->loginDelegate->realm();
+ return d->realm;
}
QString AuthenticationDialogController::host() const
{
- return d->loginDelegate->host();
+ return d->host;
}
bool AuthenticationDialogController::isProxy() const
{
- return d->loginDelegate->isProxy();
+ return d->isProxy;
}
void AuthenticationDialogController::accept(const QString &user, const QString &password)
diff --git a/src/core/authentication_dialog_controller_p.h b/src/core/authentication_dialog_controller_p.h
index 16069b9b1..1abff576d 100644
--- a/src/core/authentication_dialog_controller_p.h
+++ b/src/core/authentication_dialog_controller_p.h
@@ -40,7 +40,7 @@
#ifndef AUTHENTICATION_DIALOG_CONTROLLER_P_H
#define AUTHENTICATION_DIALOG_CONTROLLER_P_H
-#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
#include "login_delegate_qt.h"
@@ -49,10 +49,14 @@ namespace QtWebEngineCore {
class AuthenticationDialogControllerPrivate {
public:
- AuthenticationDialogControllerPrivate(LoginDelegateQt *loginDelegate);
+ AuthenticationDialogControllerPrivate(base::WeakPtr<LoginDelegateQt> loginDelegate);
void dialogFinished(bool accepted, const QString &user = QString(), const QString &password = QString());
- scoped_refptr<LoginDelegateQt> loginDelegate;
+ base::WeakPtr<LoginDelegateQt> loginDelegate;
+ QUrl url;
+ QString host;
+ QString realm;
+ bool isProxy;
};
} // namespace QtWebEngineCore
diff --git a/src/core/browser_main_parts_qt.cpp b/src/core/browser_main_parts_qt.cpp
index dacaf177f..421a44890 100644
--- a/src/core/browser_main_parts_qt.cpp
+++ b/src/core/browser_main_parts_qt.cpp
@@ -42,9 +42,11 @@
#include "api/qwebenginemessagepumpscheduler_p.h"
#include "base/message_loop/message_loop.h"
-#include "base/message_loop/message_loop_impl.h"
#include "base/message_loop/message_loop_current.h"
+#include "base/message_loop/message_pump_for_ui.h"
#include "base/process/process.h"
+#include "base/task/sequence_manager/sequence_manager_impl.h"
+#include "base/task/sequence_manager/thread_controller_with_message_pump_impl.h"
#include "base/threading/thread_restrictions.h"
#include "content/public/browser/browser_main_parts.h"
#include "content/public/browser/browser_thread.h"
@@ -58,7 +60,6 @@
#include "extensions/extension_system_factory_qt.h"
#include "common/extensions/extensions_client_qt.h"
#endif //BUILDFLAG(ENABLE_EXTENSIONS)
-#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"
#include "services/service_manager/public/cpp/service.h"
@@ -75,6 +76,7 @@
#endif
#if defined(OS_MACOSX)
+#include "base/message_loop/message_pump_mac.h"
#include "ui/base/idle/idle.h"
#endif
@@ -114,12 +116,7 @@ public:
: m_scheduler([this]() { handleScheduledWork(); })
{}
- void setDelegate(Delegate *delegate)
- {
- m_delegate = delegate;
- }
-
- void Run(Delegate *delegate) override
+ void Run(Delegate *) override
{
// This is used only when MessagePumpForUIQt is used outside of the GUI thread.
NOTIMPLEMENTED();
@@ -134,15 +131,27 @@ public:
void ScheduleWork() override
{
// NOTE: This method may called from any thread at any time.
+ ensureDelegate();
m_scheduler.scheduleWork();
}
void ScheduleDelayedWork(const base::TimeTicks &delayed_work_time) override
{
+ // NOTE: This method may called from any thread at any time.
+ ensureDelegate();
m_scheduler.scheduleDelayedWork(GetTimeIntervalMilliseconds(delayed_work_time));
}
private:
+ void ensureDelegate()
+ {
+ if (!m_delegate) {
+ auto messageLoop = base::MessageLoopCurrentForUI::Get().ToMessageLoopBaseDeprecated();
+ auto seqMan = static_cast<base::sequence_manager::internal::SequenceManagerImpl *>(messageLoop);
+ m_delegate = static_cast<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl *>(
+ seqMan->controller_.get());
+ }
+ }
// Both Qt and Chromium keep track of the current GL context by using
// thread-local variables, and naturally they are completely unaware of each
// other. As a result, when a QOpenGLContext is made current, the previous
@@ -190,8 +199,6 @@ private:
void handleScheduledWork()
{
- Q_ASSERT(m_delegate);
-
ScopedGLContextChecker glContextChecker;
bool more_work_is_plausible = m_delegate->DoWork();
@@ -213,29 +220,19 @@ private:
QWebEngineMessagePumpScheduler m_scheduler;
};
-// Needed to access protected constructor from MessageLoop.
-class MessageLoopForUIQt : public base::MessageLoop {
-public:
- MessageLoopForUIQt() : MessageLoop(TYPE_UI, base::BindOnce(&messagePumpFactory))
- {
- BindToCurrentThread();
-
- auto pump = static_cast<MessagePumpForUIQt *>(pump_);
- auto backend = static_cast<base::MessageLoopImpl *>(backend_.get());
- pump->setDelegate(backend);
- }
-private:
- static std::unique_ptr<base::MessagePump> messagePumpFactory()
- {
- return base::WrapUnique(new MessagePumpForUIQt);
+std::unique_ptr<base::MessagePump> messagePumpFactory()
+{
+ static bool madePrimaryPump = false;
+ if (!madePrimaryPump) {
+ madePrimaryPump = true;
+ return std::make_unique<MessagePumpForUIQt>();
}
-};
-
-BrowserMainPartsQt::BrowserMainPartsQt() : content::BrowserMainParts()
-{ }
-
-BrowserMainPartsQt::~BrowserMainPartsQt() = default;
-
+#if defined(OS_MACOSX)
+ return base::MessagePumpMac::Create();
+#else
+ return std::make_unique<base::MessagePumpForUI>();
+#endif
+}
int BrowserMainPartsQt::PreEarlyInitialization()
{
@@ -247,8 +244,6 @@ int BrowserMainPartsQt::PreEarlyInitialization()
void BrowserMainPartsQt::PreMainMessageLoopStart()
{
- // Overrides message loop creation in BrowserMainLoop::MainMessageLoopStart().
- m_mainMessageLoop.reset(new MessageLoopForUIQt);
}
void BrowserMainPartsQt::PreMainMessageLoopRun()
@@ -288,8 +283,6 @@ void BrowserMainPartsQt::ServiceManagerConnectionStarted(content::ServiceManager
{
ServiceQt::GetInstance()->InitConnector();
connection->GetConnector()->WarmService(service_manager::ServiceFilter::ByName("qtwebengine"));
- m_processResourceCoordinator = std::make_unique<resource_coordinator::ProcessResourceCoordinator>(connection->GetConnector());
- m_processResourceCoordinator->OnProcessLaunched(base::Process::Current());
}
} // namespace QtWebEngineCore
diff --git a/src/core/browser_main_parts_qt.h b/src/core/browser_main_parts_qt.h
index 4eb10e379..8c6d8340e 100644
--- a/src/core/browser_main_parts_qt.h
+++ b/src/core/browser_main_parts_qt.h
@@ -43,24 +43,22 @@
#include "content/public/browser/browser_main_parts.h"
namespace base {
-class MessageLoop;
+class MessagePump;
}
namespace content {
class ServiceManagerConnection;
}
-namespace resource_coordinator {
-class ProcessResourceCoordinator;
-}
-
namespace QtWebEngineCore {
+std::unique_ptr<base::MessagePump> messagePumpFactory();
+
class BrowserMainPartsQt : public content::BrowserMainParts
{
public:
- BrowserMainPartsQt();
- ~BrowserMainPartsQt();
+ BrowserMainPartsQt() = default;
+ ~BrowserMainPartsQt() override = default;
int PreEarlyInitialization() override;
void PreMainMessageLoopStart() override;
@@ -71,8 +69,6 @@ public:
private:
DISALLOW_COPY_AND_ASSIGN(BrowserMainPartsQt);
- std::unique_ptr<resource_coordinator::ProcessResourceCoordinator> m_processResourceCoordinator;
- std::unique_ptr<base::MessageLoop> m_mainMessageLoop;
};
} // namespace QtWebEngineCore
diff --git a/src/core/browser_message_filter_qt.cpp b/src/core/browser_message_filter_qt.cpp
index 034447512..c8fc88017 100644
--- a/src/core/browser_message_filter_qt.cpp
+++ b/src/core/browser_message_filter_qt.cpp
@@ -79,8 +79,6 @@ bool BrowserMessageFilterQt::OnMessageReceived(const IPC::Message& message)
void BrowserMessageFilterQt::OnAllowDatabase(int /*render_frame_id*/,
const GURL &origin_url,
const GURL &top_origin_url,
- const base::string16 &/*name*/,
- const base::string16 &/*display_name*/,
bool* allowed)
{
NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(m_profile->GetRequestContext()->GetURLRequestContext()->network_delegate());
diff --git a/src/core/browser_message_filter_qt.h b/src/core/browser_message_filter_qt.h
index d121aa65d..3963fb9d5 100644
--- a/src/core/browser_message_filter_qt.h
+++ b/src/core/browser_message_filter_qt.h
@@ -60,8 +60,6 @@ private:
void OnAllowDatabase(int render_frame_id,
const GURL &origin_url,
const GURL &top_origin_url,
- const base::string16& name,
- const base::string16& display_name,
bool *allowed);
void OnAllowDOMStorage(int render_frame_id,
diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h
index 9add826ae..b99204b74 100644
--- a/src/core/common/qt_messages.h
+++ b/src/core/common/qt_messages.h
@@ -76,12 +76,10 @@ IPC_MESSAGE_ROUTED0(RenderViewObserverHostQt_DidFirstVisuallyNonEmptyLayout)
// Sent by the renderer process to check whether access to web databases is
// granted by content settings.
-IPC_SYNC_MESSAGE_CONTROL5_1(QtWebEngineHostMsg_AllowDatabase,
+IPC_SYNC_MESSAGE_CONTROL3_1(QtWebEngineHostMsg_AllowDatabase,
int /* render_frame_id */,
GURL /* origin_url */,
GURL /* top origin url */,
- base::string16 /* database name */,
- base::string16 /* database display name */,
bool /* allowed */)
// Sent by the renderer process to check whether access to DOM Storage is
diff --git a/src/core/compositor/compositor_resource_tracker.h b/src/core/compositor/compositor_resource_tracker.h
index 887309395..080891e5f 100644
--- a/src/core/compositor/compositor_resource_tracker.h
+++ b/src/core/compositor/compositor_resource_tracker.h
@@ -40,12 +40,13 @@
#ifndef COMPOSITOR_RESOURCE_TRACKER_H
#define COMPOSITOR_RESOURCE_TRACKER_H
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/containers/flat_set.h"
+
#include "compositor_resource.h"
#include "locked_ptr.h"
-#include <base/callback.h>
-#include <base/containers/flat_set.h>
-
#include <atomic>
#include <vector>
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 1a9ba0929..ee346efd3 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -346,7 +346,7 @@ void ContentBrowserClientQt::GetQuotaSettings(content::BrowserContext* context,
content::StoragePartition* partition,
storage::OptionalQuotaSettingsCallback callback)
{
- storage::GetNominalDynamicSettings(partition->GetPath(), context->IsOffTheRecord(), std::move(callback));
+ storage::GetNominalDynamicSettings(partition->GetPath(), context->IsOffTheRecord(), storage::GetDefaultDiskInfoHelper(), std::move(callback));
}
// Copied from chrome/browser/ssl/ssl_error_handler.cc:
@@ -530,7 +530,7 @@ public:
{ }
private:
- WEB_CONTENTS_USER_DATA_KEY_DECL()
+ WEB_CONTENTS_USER_DATA_KEY_DECL();
explicit ServiceDriver(content::WebContents* /*web_contents*/) { }
friend class content::WebContentsUserData<ServiceDriver>;
mojo::BindingSet<blink::mojom::InsecureInputService> m_insecureInputServiceBindings;
@@ -765,18 +765,17 @@ bool ContentBrowserClientQt::HandleExternalProtocol(
return true;
}
-scoped_refptr<content::LoginDelegate> ContentBrowserClientQt::CreateLoginDelegate(
+std::unique_ptr<content::LoginDelegate> ContentBrowserClientQt::CreateLoginDelegate(
net::AuthChallengeInfo *authInfo,
- content::ResourceRequestInfo::WebContentsGetter web_contents_getter,
- const content::GlobalRequestID &request_id,
+ content::WebContents *web_contents,
+ const content::GlobalRequestID & /*request_id*/,
bool /*is_main_frame*/,
const GURL &url,
- scoped_refptr<net::HttpResponseHeaders> response_headers,
+ scoped_refptr<net::HttpResponseHeaders> /*response_headers*/,
bool first_auth_attempt,
LoginAuthRequiredCallback auth_required_callback)
{
- auto loginDelegate = base::MakeRefCounted<LoginDelegateQt>(authInfo, web_contents_getter, url, first_auth_attempt, std::move(auth_required_callback));
- loginDelegate->triggerDialog();
+ auto loginDelegate = std::make_unique<LoginDelegateQt>(authInfo, web_contents, url, first_auth_attempt, std::move(auth_required_callback));
return loginDelegate;
}
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index 0b1c134cc..ac575c2a8 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -185,11 +185,11 @@ public:
void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override;
#endif
- scoped_refptr<content::LoginDelegate> CreateLoginDelegate(
+ std::unique_ptr<content::LoginDelegate> CreateLoginDelegate(
net::AuthChallengeInfo *auth_info,
- content::ResourceRequestInfo::WebContentsGetter web_contents_getter,
+ content::WebContents *web_contents,
const content::GlobalRequestID &request_id,
- bool is_main_frame,
+ bool is_request_for_main_frame,
const GURL &url,
scoped_refptr<net::HttpResponseHeaders> response_headers,
bool first_auth_attempt,
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp
index 3311bea72..330730f9c 100644
--- a/src/core/devtools_frontend_qt.cpp
+++ b/src/core/devtools_frontend_qt.cpp
@@ -362,7 +362,7 @@ void DevToolsFrontendQt::HandleMessageFromDevToolsFrontend(const std::string &me
std::string method;
base::ListValue *params = nullptr;
base::DictionaryValue *dict = nullptr;
- std::unique_ptr<base::Value> parsed_message = base::JSONReader::Read(message);
+ std::unique_ptr<base::Value> parsed_message = base::JSONReader::ReadDeprecated(message);
if (!parsed_message || !parsed_message->GetAsDictionary(&dict) || !dict->GetString("method", &method))
return;
int request_id = 0;
diff --git a/src/core/extensions/component_extension_resource_manager_qt.cpp b/src/core/extensions/component_extension_resource_manager_qt.cpp
index 57e35c231..09311c764 100644
--- a/src/core/extensions/component_extension_resource_manager_qt.cpp
+++ b/src/core/extensions/component_extension_resource_manager_qt.cpp
@@ -60,7 +60,7 @@ ComponentExtensionResourceManagerQt::~ComponentExtensionResourceManagerQt() {}
bool ComponentExtensionResourceManagerQt::IsComponentExtensionResource(const base::FilePath &extension_path,
const base::FilePath &resource_path,
- int *resource_id) const
+ ComponentExtensionResourceInfo* resource_info) const
{
base::FilePath directory_path = extension_path;
base::FilePath resources_dir;
@@ -73,11 +73,13 @@ bool ComponentExtensionResourceManagerQt::IsComponentExtensionResource(const bas
relative_path = relative_path.Append(resource_path);
relative_path = relative_path.NormalizePathSeparators();
- std::map<base::FilePath, int>::const_iterator entry = path_to_resource_id_.find(relative_path);
- if (entry != path_to_resource_id_.end())
- *resource_id = entry->second;
+ auto entry = path_to_resource_info_.find(relative_path);
+ if (entry != path_to_resource_info_.end()) {
+ *resource_info = entry->second;
+ return true;
+ }
- return entry != path_to_resource_id_.end();
+ return false;
}
const ui::TemplateReplacements *ComponentExtensionResourceManagerQt::GetTemplateReplacementsForExtension(const std::string &) const
@@ -85,14 +87,15 @@ const ui::TemplateReplacements *ComponentExtensionResourceManagerQt::GetTemplate
return nullptr;
}
-void ComponentExtensionResourceManagerQt::AddComponentResourceEntries(const GritResourceMap *entries, size_t size)
+void ComponentExtensionResourceManagerQt::AddComponentResourceEntries(const GzippedGritResourceMap *entries, size_t size)
{
for (size_t i = 0; i < size; ++i) {
base::FilePath resource_path = base::FilePath().AppendASCII(entries[i].name);
resource_path = resource_path.NormalizePathSeparators();
- DCHECK(path_to_resource_id_.find(resource_path) == path_to_resource_id_.end());
- path_to_resource_id_[resource_path] = entries[i].value;
+ DCHECK(!base::ContainsKey(path_to_resource_info_, resource_path));
+ path_to_resource_info_[resource_path] = { entries[i].value,
+ entries[i].gzipped };
}
}
diff --git a/src/core/extensions/component_extension_resource_manager_qt.h b/src/core/extensions/component_extension_resource_manager_qt.h
index 2d858630f..c44c23439 100644
--- a/src/core/extensions/component_extension_resource_manager_qt.h
+++ b/src/core/extensions/component_extension_resource_manager_qt.h
@@ -49,7 +49,7 @@
#include "base/files/file_path.h"
#include "extensions/browser/component_extension_resource_manager.h"
-struct GritResourceMap;
+struct GzippedGritResourceMap;
namespace extensions {
@@ -62,15 +62,15 @@ public:
// Overridden from ComponentExtensionResourceManager:
bool IsComponentExtensionResource(const base::FilePath &extension_path,
const base::FilePath &resource_path,
- int *resource_id) const override;
+ ComponentExtensionResourceInfo *resource_info) const override;
const ui::TemplateReplacements *GetTemplateReplacementsForExtension(const std::string& extension_id) const override;
private:
- void AddComponentResourceEntries(const GritResourceMap* entries, size_t size);
+ void AddComponentResourceEntries(const GzippedGritResourceMap* entries, size_t size);
// A map from a resource path to the resource ID. Used by
// IsComponentExtensionResource.
- std::map<base::FilePath, int> path_to_resource_id_;
+ std::map<base::FilePath, ComponentExtensionResourceInfo> path_to_resource_info_;
DISALLOW_COPY_AND_ASSIGN(ComponentExtensionResourceManagerQt);
};
diff --git a/src/core/extensions/extension_web_contents_observer_qt.h b/src/core/extensions/extension_web_contents_observer_qt.h
index 267a1095c..5f32562fc 100644
--- a/src/core/extensions/extension_web_contents_observer_qt.h
+++ b/src/core/extensions/extension_web_contents_observer_qt.h
@@ -67,7 +67,7 @@ public:
private:
friend class content::WebContentsUserData<ExtensionWebContentsObserverQt>;
- WEB_CONTENTS_USER_DATA_KEY_DECL()
+ WEB_CONTENTS_USER_DATA_KEY_DECL();
DISALLOW_COPY_AND_ASSIGN(ExtensionWebContentsObserverQt);
};
diff --git a/src/core/extensions/extensions_browser_client_qt.cpp b/src/core/extensions/extensions_browser_client_qt.cpp
index 8bba4128f..fc1def3ca 100644
--- a/src/core/extensions/extensions_browser_client_qt.cpp
+++ b/src/core/extensions/extensions_browser_client_qt.cpp
@@ -69,6 +69,7 @@
#include "net/base/completion_once_callback.h"
#include "net/base/mime_util.h"
#include "net/url_request/url_request_simple_job.h"
+#include "services/network/public/mojom/url_loader.mojom.h"
#include "ui/base/resource/resource_bundle.h"
#include "component_extension_resource_manager_qt.h"
@@ -108,12 +109,12 @@ public:
URLRequestResourceBundleJob(net::URLRequest *request,
net::NetworkDelegate *network_delegate,
const base::FilePath &filename,
- int resource_id,
+ const extensions::ComponentExtensionResourceInfo &resource_info,
const std::string &content_security_policy,
bool send_cors_header)
: net::URLRequestSimpleJob(request, network_delegate)
, filename_(filename)
- , resource_id_(resource_id)
+ , resource_info_(resource_info)
, weak_factory_(this)
{
// Leave cache headers out of resource bundle requests.
@@ -125,7 +126,7 @@ public:
net::CompletionOnceCallback callback) const override
{
const ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- *data = rb.LoadDataResourceBytes(resource_id_);
+ *data = rb.LoadDataResourceBytes(resource_info_.resource_id);
// Add the Content-Length header now that we know the resource length.
response_info_.headers->AddHeader(
@@ -171,8 +172,8 @@ private:
// We need the filename of the resource to determine the mime type.
base::FilePath filename_;
- // The resource bundle id to load.
- int resource_id_;
+ // The resource to load.
+ const extensions::ComponentExtensionResourceInfo resource_info_;
net::HttpResponseInfo response_info_;
@@ -266,14 +267,14 @@ net::URLRequestJob *ExtensionsBrowserClientQt::MaybeCreateResourceBundleRequestJ
// extension relative path against resources_path.
resources_path.AppendRelativePath(directory_path, &relative_path)) {
base::FilePath request_path = extensions::file_util::ExtensionURLToRelativeFilePath(request->url());
- int resource_id = 0;
- if (GetComponentExtensionResourceManager()->IsComponentExtensionResource(directory_path, request_path, &resource_id)) {
+ ComponentExtensionResourceInfo resource_info;
+ if (GetComponentExtensionResourceManager()->IsComponentExtensionResource(directory_path, request_path, &resource_info)) {
relative_path = relative_path.Append(request_path);
relative_path = relative_path.NormalizePathSeparators();
return new URLRequestResourceBundleJob(request,
network_delegate,
relative_path,
- resource_id,
+ resource_info,
content_security_policy,
send_cors_header);
}
@@ -284,9 +285,9 @@ net::URLRequestJob *ExtensionsBrowserClientQt::MaybeCreateResourceBundleRequestJ
// Return the resource relative path and id for the given request.
base::FilePath ExtensionsBrowserClientQt::GetBundleResourcePath(const network::ResourceRequest &request,
const base::FilePath &extension_resources_path,
- int *resource_id) const
+ ComponentExtensionResourceInfo *resource_info) const
{
- *resource_id = 0;
+ *resource_info = {};
// |chrome_resources_path| corresponds to src/chrome/browser/resources in
// source tree.
base::FilePath resources_path;
@@ -303,10 +304,10 @@ base::FilePath ExtensionsBrowserClientQt::GetBundleResourcePath(const network::R
const base::FilePath request_relative_path =
extensions::file_util::ExtensionURLToRelativeFilePath(request.url);
if (!ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager()->IsComponentExtensionResource(
- extension_resources_path, request_relative_path, resource_id)) {
+ extension_resources_path, request_relative_path, resource_info)) {
return base::FilePath();
}
- DCHECK_NE(0, *resource_id);
+ DCHECK_NE(0, resource_info->resource_id);
return request_relative_path;
}
@@ -316,7 +317,7 @@ base::FilePath ExtensionsBrowserClientQt::GetBundleResourcePath(const network::R
void ExtensionsBrowserClientQt::LoadResourceFromResourceBundle(const network::ResourceRequest &request,
network::mojom::URLLoaderRequest loader,
const base::FilePath &resource_relative_path,
- int resource_id,
+ const ComponentExtensionResourceInfo &resource_info,
const std::string &content_security_policy,
network::mojom::URLLoaderClientPtr client,
bool send_cors_header)
diff --git a/src/core/extensions/extensions_browser_client_qt.h b/src/core/extensions/extensions_browser_client_qt.h
index f766b96a7..aa478461f 100644
--- a/src/core/extensions/extensions_browser_client_qt.h
+++ b/src/core/extensions/extensions_browser_client_qt.h
@@ -124,14 +124,14 @@ public:
// Return the resource relative path and id for the given request.
base::FilePath GetBundleResourcePath(const network::ResourceRequest &request,
const base::FilePath &extension_resources_path,
- int *resource_id) const override;
+ ComponentExtensionResourceInfo *resource_info) const override;
// Creates and starts a URLLoader to load an extension resource from the
// embedder's resource bundle (.pak) files. Used for component extensions.
void LoadResourceFromResourceBundle(const network::ResourceRequest &request,
network::mojom::URLLoaderRequest loader,
const base::FilePath &resource_relative_path,
- int resource_id,
+ const ComponentExtensionResourceInfo& resource_info,
const std::string &content_security_policy,
network::mojom::URLLoaderClientPtr client,
bool send_cors_header) override;
diff --git a/src/core/login_delegate_qt.cpp b/src/core/login_delegate_qt.cpp
index 0050f87c7..b02940584 100644
--- a/src/core/login_delegate_qt.cpp
+++ b/src/core/login_delegate_qt.cpp
@@ -72,36 +72,25 @@
namespace QtWebEngineCore {
-LoginDelegateQt::LoginDelegateQt(
- net::AuthChallengeInfo *authInfo,
- content::ResourceRequestInfo::WebContentsGetter web_contents_getter,
+LoginDelegateQt::LoginDelegateQt(net::AuthChallengeInfo *authInfo,
+ content::WebContents *web_contents,
GURL url,
- bool first_auth_attempt,
+ bool /*first_auth_attempt*/,
LoginAuthRequiredCallback auth_required_callback)
- : m_authInfo(authInfo)
+ : content::WebContentsObserver(web_contents)
+ , m_authInfo(authInfo)
, m_url(url)
, m_auth_required_callback(std::move(auth_required_callback))
- , m_webContentsGetter(web_contents_getter)
-{
- Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
-}
-
-LoginDelegateQt::~LoginDelegateQt()
-{
- Q_ASSERT(m_dialogController.isNull());
-}
-
-void LoginDelegateQt::triggerDialog()
+ , m_weakFactory(this)
{
base::PostTaskWithTraits(
FROM_HERE, { content::BrowserThread::UI },
- base::BindOnce(&LoginDelegateQt::triggerDialogOnUI, this));
+ base::BindOnce(&LoginDelegateQt::triggerDialog, m_weakFactory.GetWeakPtr()));
}
-void LoginDelegateQt::OnRequestCancelled()
+LoginDelegateQt::~LoginDelegateQt()
{
destroy();
- // TODO: this should close native dialog, since page can be navigated somewhere else
}
QUrl LoginDelegateQt::url() const
@@ -129,39 +118,37 @@ bool LoginDelegateQt::isProxy() const
return m_authInfo->is_proxy;
}
-void LoginDelegateQt::triggerDialogOnUI()
+void LoginDelegateQt::triggerDialog()
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ if (!web_contents())
+ return sendAuthToRequester(false, QString(), QString());
+
if (isProxy()) {
// workaround for 'ws' redefined symbols when including QNetworkProxy
auto authentication = WebEngineContext::qProxyNetworkAuthentication(host(), port());
- if (std::get<0>(authentication)) {
- base::PostTaskWithTraits(
- FROM_HERE, { content::BrowserThread::IO },
- base::BindOnce(&LoginDelegateQt::sendAuthToRequester, this, true,
- std::get<1>(authentication), std::get<2>(authentication)));
-
- return;
- }
+ if (std::get<0>(authentication))
+ return sendAuthToRequester(true, std::get<1>(authentication), std::get<2>(authentication));
}
- content::WebContentsImpl *webContents =
- static_cast<content::WebContentsImpl *>(m_webContentsGetter.Run());
+ content::WebContentsImpl *webContents = static_cast<content::WebContentsImpl *>(web_contents());
if (!webContents)
return;
WebContentsAdapterClient *client = WebContentsViewQt::from(webContents->GetView())->client();
- AuthenticationDialogControllerPrivate *dialogControllerData = new AuthenticationDialogControllerPrivate(this);
+ AuthenticationDialogControllerPrivate *dialogControllerData = new AuthenticationDialogControllerPrivate(m_weakFactory.GetWeakPtr());
+ dialogControllerData->url = url();
+ dialogControllerData->host = host();
+ dialogControllerData->realm = realm();
+ dialogControllerData->isProxy = isProxy();
m_dialogController.reset(new AuthenticationDialogController(dialogControllerData));
client->authenticationRequired(m_dialogController);
}
void LoginDelegateQt::sendAuthToRequester(bool success, const QString &user, const QString &password)
{
- Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
-
if (!m_auth_required_callback.is_null()) {
- if (success)
+ if (success && web_contents())
std::move(m_auth_required_callback).Run(net::AuthCredentials(toString16(user), toString16(password)));
else
std::move(m_auth_required_callback).Run(base::nullopt);
diff --git a/src/core/login_delegate_qt.h b/src/core/login_delegate_qt.h
index 3a9c073cd..61f1745aa 100644
--- a/src/core/login_delegate_qt.h
+++ b/src/core/login_delegate_qt.h
@@ -43,6 +43,7 @@
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/login_delegate.h"
#include "content/public/browser/resource_request_info.h"
+#include "content/public/browser/web_contents_observer.h"
#include "url/gurl.h"
#include "web_contents_adapter_client.h"
@@ -56,20 +57,17 @@ namespace QtWebEngineCore {
class AuthenticationDialogController;
-class LoginDelegateQt : public content::LoginDelegate {
+class LoginDelegateQt : public content::LoginDelegate,
+ public content::WebContentsObserver
+{
public:
LoginDelegateQt(net::AuthChallengeInfo *authInfo,
- content::ResourceRequestInfo::WebContentsGetter web_contents_getter,
+ content::WebContents *web_contents,
GURL url,
bool first_auth_attempt,
LoginAuthRequiredCallback auth_required_callback);
- ~LoginDelegateQt();
-
- void triggerDialog();
-
- // LoginDelegate implementation
- void OnRequestCancelled() override;
+ ~LoginDelegateQt() override;
QUrl url() const;
QString realm() const;
@@ -80,14 +78,14 @@ public:
void sendAuthToRequester(bool success, const QString &user, const QString &password);
private:
- void triggerDialogOnUI();
+ void triggerDialog();
void destroy();
scoped_refptr<net::AuthChallengeInfo> m_authInfo;
GURL m_url;
LoginAuthRequiredCallback m_auth_required_callback;
- content::ResourceRequestInfo::WebContentsGetter m_webContentsGetter;
+ base::WeakPtrFactory<LoginDelegateQt> m_weakFactory;
// This member is used to keep authentication dialog controller alive until
// authorization is sent or cancelled.
diff --git a/src/core/net/client_cert_override.cpp b/src/core/net/client_cert_override.cpp
index 305f0cef0..ed1572596 100644
--- a/src/core/net/client_cert_override.cpp
+++ b/src/core/net/client_cert_override.cpp
@@ -145,9 +145,9 @@ void ClientCertOverrideStore::GetClientCerts(const net::SSLCertRequestInfo &cert
if (base::PostTaskWithTraitsAndReplyWithResult(
FROM_HERE, { content::BrowserThread::UI },
base::BindOnce(&ClientCertOverrideStore::GetClientCertsOnUIThread,
- base::Unretained(this), base::ConstRef(cert_request_info)),
+ base::Unretained(this), std::cref(cert_request_info)),
base::BindOnce(&ClientCertOverrideStore::GetClientCertsReturn,
- base::Unretained(this), base::ConstRef(cert_request_info), callback))
+ base::Unretained(this), std::cref(cert_request_info), callback))
) {
return;
}
diff --git a/src/core/net/cookie_monster_delegate_qt.cpp b/src/core/net/cookie_monster_delegate_qt.cpp
index 3253b08b9..5f7b75f57 100644
--- a/src/core/net/cookie_monster_delegate_qt.cpp
+++ b/src/core/net/cookie_monster_delegate_qt.cpp
@@ -140,10 +140,29 @@ void CookieMonsterDelegateQt::deleteCookie(const QNetworkCookie &cookie, const Q
void CookieMonsterDelegateQt::DeleteCookieOnIOThread(const GURL& url, const std::string& cookie_name)
{
- if (m_cookieMonster)
- m_cookieMonster->DeleteCookieAsync(url, cookie_name, base::Closure());
+ if (m_cookieMonster) {
+ net::CookieMonster::GetCookieListCallback callback =
+ base::BindOnce(&CookieMonsterDelegateQt::GetCookiesToDeleteCallback, this, cookie_name);
+ m_cookieMonster->GetAllCookiesForURLAsync(url, std::move(callback));
+ }
}
+void CookieMonsterDelegateQt::GetCookiesToDeleteCallback(const std::string& cookie_name, const net::CookieList &cookies, const net::CookieStatusList &statusList)
+{
+ Q_UNUSED(statusList);
+ if (!m_cookieMonster)
+ return;
+
+ net::CookieList cookiesToDelete;
+ for (auto cookie : cookies) {
+ if (cookie.Name() == cookie_name)
+ cookiesToDelete.push_back(cookie);
+ }
+ for (auto cookie : cookiesToDelete)
+ m_cookieMonster->DeleteCanonicalCookieAsync(cookie, base::DoNothing());
+}
+
+
void CookieMonsterDelegateQt::deleteSessionCookies(quint64 callbackId)
{
Q_ASSERT(hasCookieMonster());
@@ -234,7 +253,7 @@ void CookieMonsterDelegateQt::OnCookieChanged(const net::CanonicalCookie& cookie
m_client->d_func()->onCookieChanged(toQt(cookie), cause != net::CookieChangeCause::INSERTED);
}
-void CookieMonsterDelegateQt::GetAllCookiesCallbackOnIOThread(qint64 callbackId, const net::CookieList &cookies)
+void CookieMonsterDelegateQt::GetAllCookiesCallbackOnIOThread(qint64 callbackId, const net::CookieList &cookies, const net::CookieStatusList &statusList)
{
QByteArray rawCookies;
for (auto &&cookie : cookies)
@@ -245,11 +264,11 @@ void CookieMonsterDelegateQt::GetAllCookiesCallbackOnIOThread(qint64 callbackId,
base::BindOnce(&CookieMonsterDelegateQt::GetAllCookiesCallbackOnUIThread, this, callbackId, rawCookies));
}
-void CookieMonsterDelegateQt::SetCookieCallbackOnIOThread(qint64 callbackId, bool success)
+void CookieMonsterDelegateQt::SetCookieCallbackOnIOThread(qint64 callbackId, net::CanonicalCookie::CookieInclusionStatus status)
{
base::PostTaskWithTraits(
FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(&CookieMonsterDelegateQt::SetCookieCallbackOnUIThread, this, callbackId, success));
+ base::BindOnce(&CookieMonsterDelegateQt::SetCookieCallbackOnUIThread, this, callbackId, status));
}
void CookieMonsterDelegateQt::DeleteCookiesCallbackOnIOThread(qint64 callbackId, uint numCookies)
@@ -265,10 +284,11 @@ void CookieMonsterDelegateQt::GetAllCookiesCallbackOnUIThread(qint64 callbackId,
m_client->d_func()->onGetAllCallbackResult(callbackId, cookies);
}
-void CookieMonsterDelegateQt::SetCookieCallbackOnUIThread(qint64 callbackId, bool success)
+void CookieMonsterDelegateQt::SetCookieCallbackOnUIThread(qint64 callbackId, net::CanonicalCookie::CookieInclusionStatus status)
{
if (m_client)
- m_client->d_func()->onSetCallbackResult(callbackId, success);
+ m_client->d_func()->onSetCallbackResult(callbackId,
+ status == net::CanonicalCookie::CookieInclusionStatus::INCLUDE);
}
void CookieMonsterDelegateQt::DeleteCookiesCallbackOnUIThread(qint64 callbackId, uint numCookies)
diff --git a/src/core/net/cookie_monster_delegate_qt.h b/src/core/net/cookie_monster_delegate_qt.h
index 88e92b560..2ac04acb4 100644
--- a/src/core/net/cookie_monster_delegate_qt.h
+++ b/src/core/net/cookie_monster_delegate_qt.h
@@ -107,12 +107,13 @@ private:
void DeleteSessionCookiesOnIOThread(net::CookieMonster::DeleteCallback callback);
void DeleteAllOnIOThread(net::CookieMonster::DeleteCallback callback);
- void GetAllCookiesCallbackOnIOThread(qint64 callbackId, const net::CookieList &cookies);
- void SetCookieCallbackOnIOThread(qint64 callbackId, bool success);
+ void GetCookiesToDeleteCallback(const std::string& cookie_name, const net::CookieList &cookies, const net::CookieStatusList &statusList);
+ void GetAllCookiesCallbackOnIOThread(qint64 callbackId, const net::CookieList &cookies, const net::CookieStatusList &statusList);
+ void SetCookieCallbackOnIOThread(qint64 callbackId, net::CanonicalCookie::CookieInclusionStatus status);
void DeleteCookiesCallbackOnIOThread(qint64 callbackId, uint numCookies);
void GetAllCookiesCallbackOnUIThread(qint64 callbackId, const QByteArray &cookies);
- void SetCookieCallbackOnUIThread(qint64 callbackId, bool success);
+ void SetCookieCallbackOnUIThread(qint64 callbackId, net::CanonicalCookie::CookieInclusionStatus status);
void DeleteCookiesCallbackOnUIThread(qint64 callbackId, uint numCookies);
};
diff --git a/src/core/net/network_delegate_qt.cpp b/src/core/net/network_delegate_qt.cpp
index c0e936cd7..20addefb2 100644
--- a/src/core/net/network_delegate_qt.cpp
+++ b/src/core/net/network_delegate_qt.cpp
@@ -109,7 +109,7 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, net::Complet
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
Q_ASSERT(m_profileIOData);
- const content::ResourceRequestInfo *resourceInfo = content::ResourceRequestInfo::ForRequest(request);
+ content::ResourceRequestInfo *resourceInfo = content::ResourceRequestInfo::ForRequest(request);
content::ResourceType resourceType = content::RESOURCE_TYPE_LAST_TYPE;
WebContentsAdapterClient::NavigationType navigationType = WebContentsAdapterClient::OtherNavigation;
diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp
index ec36e70d9..92bb8854f 100644
--- a/src/core/net/webui_controller_factory_qt.cpp
+++ b/src/core/net/webui_controller_factory_qt.cpp
@@ -52,7 +52,6 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/devtools_ui.h"
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
-#include "chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
@@ -129,8 +128,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI *web_ui, Profile *profile, co
// after the host name.
if (url.host() == chrome::kChromeUIQuotaInternalsHost)
return &NewWebUI<QuotaInternalsUI>;
- if (url.host_piece() == chrome::kChromeUITaskSchedulerInternalsHost)
- return &NewWebUI<TaskSchedulerInternalsUI>;
if (url.SchemeIs(content::kChromeDevToolsScheme)) {
// if (!DevToolsUIBindings::IsValidFrontendURL(url))
diff --git a/src/core/ozone/gl_surface_qt.cpp b/src/core/ozone/gl_surface_qt.cpp
index 551ba888c..82f8cd0e5 100644
--- a/src/core/ozone/gl_surface_qt.cpp
+++ b/src/core/ozone/gl_surface_qt.cpp
@@ -107,7 +107,7 @@ bool GLSurfaceQt::IsOffscreen()
return true;
}
-gfx::SwapResult GLSurfaceQt::SwapBuffers(const PresentationCallback &callback)
+gfx::SwapResult GLSurfaceQt::SwapBuffers(PresentationCallback callback)
{
LOG(ERROR) << "Attempted to call SwapBuffers on a pbuffer.";
Q_UNREACHABLE();
diff --git a/src/core/ozone/gl_surface_qt.h b/src/core/ozone/gl_surface_qt.h
index 514527df9..cbdc8876a 100644
--- a/src/core/ozone/gl_surface_qt.h
+++ b/src/core/ozone/gl_surface_qt.h
@@ -57,7 +57,7 @@ public:
void *GetDisplay() override;
void *GetConfig() override;
bool IsOffscreen() override;
- gfx::SwapResult SwapBuffers(const PresentationCallback &callback) override;
+ gfx::SwapResult SwapBuffers(PresentationCallback callback) override;
gfx::Size GetSize() override;
GLSurfaceFormat GetFormat() override;
diff --git a/src/core/platform_notification_service_qt.cpp b/src/core/platform_notification_service_qt.cpp
index f3457c7aa..e9829c21f 100644
--- a/src/core/platform_notification_service_qt.cpp
+++ b/src/core/platform_notification_service_qt.cpp
@@ -179,21 +179,21 @@ void PlatformNotificationServiceQt::ClosePersistentNotification(
void PlatformNotificationServiceQt::GetDisplayedNotifications(
content::BrowserContext *browser_context,
- const DisplayedNotificationsCallback &callback)
+ DisplayedNotificationsCallback callback)
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
ProfileQt *profile = static_cast<ProfileQt *>(browser_context);
- std::unique_ptr<std::set<std::string>> movableStdStringSet = std::make_unique<std::set<std::string>>();
+ std::set<std::string> movableStdStringSet;
auto it = profile->profileAdapter()->persistentNotifications().constBegin();
const auto end = profile->profileAdapter()->persistentNotifications().constEnd();
while (it != end) {
if (it.value()->isShown())
- movableStdStringSet->insert(it.key().toStdString());
+ movableStdStringSet.insert(it.key().toStdString());
++it;
}
- callback.Run(std::move(movableStdStringSet), true /* supports_synchronization */);
+ std::move(callback).Run(std::move(movableStdStringSet), true /* supports_synchronization */);
}
int64_t PlatformNotificationServiceQt::ReadNextPersistentNotificationId(content::BrowserContext *browser_context)
diff --git a/src/core/platform_notification_service_qt.h b/src/core/platform_notification_service_qt.h
index 66cee9ed0..65477dde2 100644
--- a/src/core/platform_notification_service_qt.h
+++ b/src/core/platform_notification_service_qt.h
@@ -77,7 +77,7 @@ public:
// Retrieves the ids of all currently displaying notifications and
// posts |callback| with the result.
- void GetDisplayedNotifications(content::BrowserContext* browser_context, const DisplayedNotificationsCallback& callback) override;
+ void GetDisplayedNotifications(content::BrowserContext* browser_context, DisplayedNotificationsCallback callback) override;
// Reads the value of the next persistent notification ID from the profile and
// increments the value, as it is called once per notification write.
diff --git a/src/core/pref_service_adapter.cpp b/src/core/pref_service_adapter.cpp
index 40062cce5..4014f22bd 100644
--- a/src/core/pref_service_adapter.cpp
+++ b/src/core/pref_service_adapter.cpp
@@ -98,8 +98,8 @@ void PrefServiceAdapter::setup(const ProfileAdapter &profileAdapter)
#if QT_CONFIG(webengine_spellchecker)
// Initial spellcheck settings
registry->RegisterStringPref(prefs::kAcceptLanguages, std::string());
- registry->RegisterListPref(spellcheck::prefs::kSpellCheckDictionaries, std::make_unique<base::ListValue>());
- registry->RegisterListPref(spellcheck::prefs::kSpellCheckForcedDictionaries, std::make_unique<base::ListValue>());
+ registry->RegisterListPref(spellcheck::prefs::kSpellCheckDictionaries);
+ registry->RegisterListPref(spellcheck::prefs::kSpellCheckForcedDictionaries);
registry->RegisterStringPref(spellcheck::prefs::kSpellCheckDictionary, std::string());
registry->RegisterBooleanPref(spellcheck::prefs::kSpellCheckEnable, false);
registry->RegisterBooleanPref(spellcheck::prefs::kSpellCheckUseSpellingService, false);
diff --git a/src/core/printing/print_view_manager_qt.cpp b/src/core/printing/print_view_manager_qt.cpp
index b6a2b42ec..7d8039100 100644
--- a/src/core/printing/print_view_manager_qt.cpp
+++ b/src/core/printing/print_view_manager_qt.cpp
@@ -98,7 +98,6 @@ static void SavePdfFile(scoped_refptr<base::RefCountedBytes> data,
const base::FilePath &path,
const QtWebEngineCore::PrintViewManagerQt::PrintToPDFFileCallback &saveCallback)
{
- base::AssertBlockingAllowedDeprecated();
DCHECK_GT(data->size(), 0U);
printing::MetafileSkia metafile;
diff --git a/src/core/printing/print_view_manager_qt.h b/src/core/printing/print_view_manager_qt.h
index 20b988200..14f2688dd 100644
--- a/src/core/printing/print_view_manager_qt.h
+++ b/src/core/printing/print_view_manager_qt.h
@@ -137,7 +137,7 @@ private:
void PrintPreviewDone();
private:
- WEB_CONTENTS_USER_DATA_KEY_DECL()
+ WEB_CONTENTS_USER_DATA_KEY_DECL();
content::RenderFrameHost *m_printPreviewRfh;
base::FilePath m_pdfOutputPath;
PrintToPDFCallback m_pdfPrintCallback;
diff --git a/src/core/profile_adapter.cpp b/src/core/profile_adapter.cpp
index 65d5c2da2..1e65ada6f 100644
--- a/src/core/profile_adapter.cpp
+++ b/src/core/profile_adapter.cpp
@@ -598,7 +598,7 @@ void ProfileAdapter::setHttpAcceptLanguage(const QString &httpAcceptLanguage)
std::vector<content::WebContentsImpl *> list = content::WebContentsImpl::GetAllWebContents();
for (content::WebContentsImpl *web_contents : list) {
if (web_contents->GetBrowserContext() == m_profile.data()) {
- content::RendererPreferences* rendererPrefs = web_contents->GetMutableRendererPrefs();
+ blink::mojom::RendererPreferences *rendererPrefs = web_contents->GetMutableRendererPrefs();
rendererPrefs->accept_languages = httpAcceptLanguageWithoutQualities().toStdString();
web_contents->GetRenderViewHost()->SyncRendererPrefs();
}
diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp
index 96248a55a..3a39dd101 100644
--- a/src/core/profile_io_data_qt.cpp
+++ b/src/core/profile_io_data_qt.cpp
@@ -345,7 +345,6 @@ void ProfileIODataQt::generateStorage()
m_httpAuthPreferences->SetServerWhitelist(serverWhitelist);
}
m_storage->set_http_auth_handler_factory(net::HttpAuthHandlerFactory::CreateDefault(
- m_urlRequestContext->host_resolver(),
m_httpAuthPreferences.get()));
m_storage->set_transport_security_state(std::make_unique<net::TransportSecurityState>());
diff --git a/src/core/qtwebengine_resources.gni b/src/core/qtwebengine_resources.gni
index 4df1760da..749546741 100644
--- a/src/core/qtwebengine_resources.gni
+++ b/src/core/qtwebengine_resources.gni
@@ -24,7 +24,6 @@ repack("qtwebengine_repack_resources") {
"$root_gen_dir/chrome/browser_resources.pak",
"$root_gen_dir/chrome/common_resources.pak",
"$root_gen_dir/chrome/quota_internals_resources.pak",
- "$root_gen_dir/chrome/task_scheduler_internals_resources.pak",
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@@ -36,7 +35,6 @@ repack("qtwebengine_repack_resources") {
deps = [
"//qtwebengine/browser:qt_webengine_resources",
"//chrome/browser/resources:quota_internals_resources",
- "//chrome/browser/resources:task_scheduler_internals_resources",
"//chrome/browser:resources_grit",
"//chrome/common:resources_grit",
"//components/resources:components_resources_grit",
diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni
index 58df7096b..777309e21 100644
--- a/src/core/qtwebengine_sources.gni
+++ b/src/core/qtwebengine_sources.gni
@@ -23,6 +23,8 @@ 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/spellcheck/browser",
@@ -72,8 +74,6 @@ source_set("qtwebengine_sources") {
"//chrome/browser/ui/webui/quota_internals/quota_internals_types.h",
"//chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc",
"//chrome/browser/ui/webui/quota_internals/quota_internals_ui.h",
- "//chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc",
- "//chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.h",
"//chrome/common/custom_handlers/protocol_handler.cc",
"//chrome/common/custom_handlers/protocol_handler.h",
"//chrome/common/chrome_switches.cc",
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 091171f90..7fd8cc3d0 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -56,6 +56,7 @@
#include "content/browser/compositor/surface_utils.h"
#include "content/browser/frame_host/frame_tree.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/browser/renderer_host/input/synthetic_gesture_target.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/common/content_switches_internal.h"
@@ -1738,4 +1739,9 @@ void RenderWidgetHostViewQt::synchronizeVisualProperties(const base::Optional<vi
host()->SynchronizeVisualProperties();
}
+std::unique_ptr<content::SyntheticGestureTarget> RenderWidgetHostViewQt::CreateSyntheticGestureTarget()
+{
+ return nullptr;
+}
+
} // namespace QtWebEngineCore
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 6e9ddabb9..7c1a0e2cd 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -170,6 +170,7 @@ public:
uint32_t GetCaptureSequenceNumber() const override;
void ResetFallbackToFirstNavigationSurface() override;
void DidStopFlinging() override;
+ std::unique_ptr<content::SyntheticGestureTarget> CreateSyntheticGestureTarget() override;
// Overridden from ui::GestureProviderClient.
void OnGestureEvent(const ui::GestureEventData& gesture) override;
diff --git a/src/core/renderer/content_settings_observer_qt.cpp b/src/core/renderer/content_settings_observer_qt.cpp
index 98954eb4a..a9e89dfee 100644
--- a/src/core/renderer/content_settings_observer_qt.cpp
+++ b/src/core/renderer/content_settings_observer_qt.cpp
@@ -45,7 +45,6 @@
#include "content_settings_observer_qt.h"
#include "content/public/renderer/render_frame.h"
-#include "third_party/blink/public/platform/web_content_setting_callbacks.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/public/web/web_plugin_document.h"
#include "third_party/blink/public/web/web_local_frame.h"
@@ -53,7 +52,6 @@
#include "common/qt_messages.h"
-using blink::WebContentSettingCallbacks;
using blink::WebSecurityOrigin;
using blink::WebString;
@@ -115,9 +113,7 @@ void ContentSettingsObserverQt::OnDestruct()
delete this;
}
-bool ContentSettingsObserverQt::AllowDatabase(const WebString &name,
- const WebString &display_name,
- unsigned /*estimated_size*/)
+bool ContentSettingsObserverQt::AllowDatabase()
{
blink::WebFrame *frame = render_frame()->GetWebFrame();
if (IsUniqueFrame(frame))
@@ -126,21 +122,20 @@ bool ContentSettingsObserverQt::AllowDatabase(const WebString &name,
bool result = false;
Send(new QtWebEngineHostMsg_AllowDatabase(
routing_id(), url::Origin(frame->GetSecurityOrigin()).GetURL(),
- url::Origin(frame->Top()->GetSecurityOrigin()).GetURL(), name.Utf16(),
- display_name.Utf16(), &result));
+ url::Origin(frame->Top()->GetSecurityOrigin()).GetURL(),
+ &result));
return result;
}
-void ContentSettingsObserverQt::RequestFileSystemAccessAsync(const WebContentSettingCallbacks &callbacks)
+void ContentSettingsObserverQt::RequestFileSystemAccessAsync(base::OnceCallback<void(bool)> callback)
{
blink::WebFrame *frame = render_frame()->GetWebFrame();
if (IsUniqueFrame(frame)) {
- WebContentSettingCallbacks permissionCallbacks(callbacks);
- permissionCallbacks.DoDeny();
+ std::move(callback).Run(false);
return;
}
++m_currentRequestId;
- bool inserted = m_permissionRequests.insert(std::make_pair(m_currentRequestId, callbacks)).second;
+ bool inserted = m_permissionRequests.insert(std::make_pair(m_currentRequestId, std::move(callback))).second;
// Verify there are no duplicate insertions.
DCHECK(inserted);
@@ -190,14 +185,10 @@ void ContentSettingsObserverQt::OnRequestFileSystemAccessAsyncResponse(int reque
if (it == m_permissionRequests.end())
return;
- WebContentSettingCallbacks callbacks = it->second;
+ base::OnceCallback<void(bool)> callback = std::move(it->second);
m_permissionRequests.erase(it);
- if (allowed) {
- callbacks.DoAllow();
- return;
- }
- callbacks.DoDeny();
+ std::move(callback).Run(allowed);
}
void ContentSettingsObserverQt::ClearBlockedContentSettings()
diff --git a/src/core/renderer/content_settings_observer_qt.h b/src/core/renderer/content_settings_observer_qt.h
index 69b0eda9e..9c071aa3c 100644
--- a/src/core/renderer/content_settings_observer_qt.h
+++ b/src/core/renderer/content_settings_observer_qt.h
@@ -51,7 +51,6 @@
#include "url/gurl.h"
namespace blink {
-class WebContentSettingCallbacks;
class WebSecurityOrigin;
}
@@ -68,10 +67,8 @@ public:
~ContentSettingsObserverQt() override;
// blink::WebContentSettingsClient:
- bool AllowDatabase(const blink::WebString &name,
- const blink::WebString &display_name,
- unsigned estimated_size) override;
- void RequestFileSystemAccessAsync(const blink::WebContentSettingCallbacks &callbacks) override;
+ bool AllowDatabase() override;
+ void RequestFileSystemAccessAsync(base::OnceCallback<void(bool)> callback) override;
bool AllowIndexedDB(const blink::WebSecurityOrigin &origin) override;
bool AllowStorage(bool local) override;
@@ -94,7 +91,7 @@ private:
base::flat_map<StoragePermissionsKey, bool> m_cachedStoragePermissions;
int m_currentRequestId;
- base::flat_map<int, blink::WebContentSettingCallbacks> m_permissionRequests;
+ base::flat_map<int, base::OnceCallback<void(bool)>> m_permissionRequests;
DISALLOW_COPY_AND_ASSIGN(ContentSettingsObserverQt);
};
diff --git a/src/core/renderer_host/resource_dispatcher_host_delegate_qt.cpp b/src/core/renderer_host/resource_dispatcher_host_delegate_qt.cpp
index 36c5e6ed1..eba835cd7 100644
--- a/src/core/renderer_host/resource_dispatcher_host_delegate_qt.cpp
+++ b/src/core/renderer_host/resource_dispatcher_host_delegate_qt.cpp
@@ -120,7 +120,7 @@ bool ResourceDispatcherHostDelegateQt::ShouldInterceptResourceAsStream(net::URLR
GURL *origin,
std::string *payload)
{
- const content::ResourceRequestInfo* info =
+ content::ResourceRequestInfo* info =
content::ResourceRequestInfo::ForRequest(request);
int render_process_host_id = -1;
@@ -162,7 +162,7 @@ bool ResourceDispatcherHostDelegateQt::ShouldInterceptResourceAsStream(net::URLR
void ResourceDispatcherHostDelegateQt::OnStreamCreated(net::URLRequest *request,
std::unique_ptr<content::StreamInfo> stream)
{
- const content::ResourceRequestInfo *info = content::ResourceRequestInfo::ForRequest(request);
+ content::ResourceRequestInfo *info = content::ResourceRequestInfo::ForRequest(request);
std::map<net::URLRequest *, StreamTargetInfo>::iterator ix = stream_target_info_.find(request);
CHECK(ix != stream_target_info_.end());
int render_frame_id = -1;
diff --git a/src/core/user_notification_controller.cpp b/src/core/user_notification_controller.cpp
index d169bf854..50d12e8fd 100644
--- a/src/core/user_notification_controller.cpp
+++ b/src/core/user_notification_controller.cpp
@@ -51,14 +51,14 @@
namespace QtWebEngineCore {
-static Qt::LayoutDirection toDirection(blink::PlatformNotificationData::Direction direction)
+static Qt::LayoutDirection toDirection(blink::mojom::NotificationDirection direction)
{
switch (direction) {
- case blink::PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT:
+ case blink::mojom::NotificationDirection::LEFT_TO_RIGHT:
return Qt::LeftToRight;
- case blink::PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT:
+ case blink::mojom::NotificationDirection::RIGHT_TO_LEFT:
return Qt::RightToLeft;
- case blink::PlatformNotificationData::DIRECTION_AUTO:
+ case blink::mojom::NotificationDirection::AUTO:
default:
break;
}
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 05615bb4c..6ea07b4e7 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -61,9 +61,10 @@
#include "web_engine_settings.h"
#include "base/command_line.h"
-#include "base/message_loop/message_loop_impl.h"
#include "base/run_loop.h"
#include "base/task/post_task.h"
+#include "base/task/sequence_manager/sequence_manager_impl.h"
+#include "base/task/sequence_manager/thread_controller_with_message_pump_impl.h"
#include "base/values.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
@@ -81,13 +82,11 @@
#include "content/public/common/drop_data.h"
#include "content/public/common/page_state.h"
#include "content/public/common/page_zoom.h"
-#include "content/public/common/renderer_preferences.h"
#include "content/public/common/url_constants.h"
#include "content/public/common/web_preferences.h"
#include "content/public/common/webrtc_ip_handling_policy.h"
#include "extensions/buildflags/buildflags.h"
#include "third_party/blink/public/mojom/frame/find_in_page.mojom.h"
-//#include "third_party/blink/public/web/web_find_options.h"
#include "third_party/blink/public/web/web_media_player_action.h"
#include "printing/buildflags/buildflags.h"
#include "ui/base/clipboard/clipboard.h"
@@ -517,7 +516,7 @@ void WebContentsAdapter::initialize(content::SiteInstance *site)
void WebContentsAdapter::initializeRenderPrefs()
{
- content::RendererPreferences *rendererPrefs = m_webContents->GetMutableRendererPrefs();
+ blink::mojom::RendererPreferences *rendererPrefs = m_webContents->GetMutableRendererPrefs();
rendererPrefs->use_custom_colors = true;
// Qt returns a flash time (the whole cycle) in ms, chromium expects just the interval in
// seconds
@@ -1597,7 +1596,12 @@ void WebContentsAdapter::waitForUpdateDragActionCalled()
const qint64 timeout = 3000;
QElapsedTimer t;
t.start();
- base::MessagePump::Delegate *delegate = static_cast<base::MessageLoopImpl *>(base::MessageLoopCurrent::Get().ToMessageLoopBaseDeprecated());
+ auto backend = static_cast<base::sequence_manager::internal::SequenceManagerImpl *>(
+ base::MessageLoopCurrent::Get().ToMessageLoopBaseDeprecated());
+ base::MessagePump::Delegate *delegate =
+ static_cast<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl *>(
+ backend->controller_.get());
+
DCHECK(delegate);
m_updateDragActionCalled = false;
for (;;) {
diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h
index ec09f9aae..978a2ce2e 100644
--- a/src/core/web_contents_view_qt.h
+++ b/src/core/web_contents_view_qt.h
@@ -111,8 +111,7 @@ public:
void FocusThroughTabTraversal(bool reverse) override;
#if defined(OS_MACOSX)
- void CloseTabAfterEventTracking() override { QT_NOT_YET_IMPLEMENTED }
- bool IsEventTracking() const override { QT_NOT_YET_IMPLEMENTED; return false; }
+ bool CloseTabAfterEventTrackingIfNeeded() override { QT_NOT_YET_IMPLEMENTED return false; }
#endif // defined(OS_MACOSX)
// content::RenderViewHostDelegateView overrides:
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index a3a5881bf..1b82b6174 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -44,9 +44,9 @@
#include "base/base_switches.h"
#include "base/command_line.h"
#include "base/files/file_path.h"
-#include "base/message_loop/message_loop_impl.h"
#include "base/run_loop.h"
#include "base/task/post_task.h"
+#include "base/task/sequence_manager/thread_controller_with_message_pump_impl.h"
#include "base/threading/thread_restrictions.h"
#include "cc/base/switches.h"
#if QT_CONFIG(webengine_printing_and_pdf)
@@ -77,6 +77,7 @@
#include "mojo/core/embedder/embedder.h"
#include "net/base/port_util.h"
#include "ppapi/buildflags/buildflags.h"
+#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
#include "services/resource_coordinator/public/cpp/resource_coordinator_features.h"
#include "services/service_manager/sandbox/switches.h"
@@ -241,7 +242,8 @@ void WebEngineContext::destroy()
destroyGpuProcess();
base::MessagePump::Delegate *delegate =
- static_cast<base::MessageLoopImpl *>(m_runLoop->delegate_);
+ static_cast<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl *>(
+ m_runLoop->delegate_);
// Flush the UI message loop before quitting.
while (delegate->DoWork()) { }
@@ -499,9 +501,12 @@ WebEngineContext::WebEngineContext()
appendToFeatureList(disableFeatures, features::kMojoVideoCapture.name);
// Breaks WebEngineNewViewRequest.userInitiated API (since 73)
appendToFeatureList(disableFeatures, features::kUserActivationV2.name);
+ appendToFeatureList(disableFeatures, features::kWebAuth.name);
appendToFeatureList(disableFeatures, features::kBackgroundFetch.name);
+ appendToFeatureList(disableFeatures, network::features::kNetworkService.name);
+
#if QT_CONFIG(webengine_printing_and_pdf)
appendToFeatureList(disableFeatures, printing::features::kUsePdfCompositorServiceForPrint.name);
#endif
@@ -612,11 +617,6 @@ WebEngineContext::WebEngineContext()
SetContentClient(new ContentClientQt);
- content::StartBrowserTaskScheduler();
- content::BrowserTaskExecutor::Create();
-
- mojo::core::Init();
-
content::ContentMainParams contentMainParams(m_mainDelegate.get());
#if defined(OS_WIN)
sandbox::SandboxInterfaceInfo sandbox_info = {0};
@@ -624,12 +624,24 @@ WebEngineContext::WebEngineContext()
contentMainParams.sandbox_info = &sandbox_info;
#endif
m_contentRunner->Initialize(contentMainParams);
- m_browserRunner->Initialize(content::MainFunctionParams(*base::CommandLine::ForCurrentProcess()));
+
+ mojo::core::Init();
+
+ // This block mirrors ContentMainRunnerImpl::RunServiceManager():
+ m_mainDelegate->PreCreateMainMessageLoop();
+ base::MessageLoop::InitMessagePumpForUIFactory(messagePumpFactory);
+ content::BrowserTaskExecutor::Create();
+ m_mainDelegate->PostEarlyInitialization(false);
+ content::StartBrowserTaskScheduler();
+ content::BrowserTaskExecutor::PostFeatureListSetup();
// Once the MessageLoop has been created, attach a top-level RunLoop.
m_runLoop.reset(new base::RunLoop);
m_runLoop->BeforeRun();
+ content::MainFunctionParams mainParams(*base::CommandLine::ForCurrentProcess());
+ m_browserRunner->Initialize(mainParams);
+
m_devtoolsServer.reset(new DevToolsServerQt());
m_devtoolsServer->start();
// Force the initialization of MediaCaptureDevicesDispatcher on the UI
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index b6250a65f..9bc1279ba 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -49,10 +49,10 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h"
-#include "content/public/common/renderer_preferences.h"
#include "content/public/common/web_preferences.h"
-#include "media/base/media_switches.h"
#include "content/public/common/webrtc_ip_handling_policy.h"
+#include "media/base/media_switches.h"
+#include "third_party/blink/public/mojom/renderer_preferences.mojom.h"
#include "ui/events/event_switches.h"
#include <QFont>
@@ -401,7 +401,7 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p
prefs->default_encoding = defaultTextEncoding().toStdString();
}
-bool WebEngineSettings::applySettingsToRendererPreferences(content::RendererPreferences *prefs)
+bool WebEngineSettings::applySettingsToRendererPreferences(blink::mojom::RendererPreferences *prefs)
{
bool changed = false;
#if QT_CONFIG(webengine_webrtc)
diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h
index b2a45098a..95eea669f 100644
--- a/src/core/web_engine_settings.h
+++ b/src/core/web_engine_settings.h
@@ -60,10 +60,14 @@
#include <QTimer>
namespace content {
-struct RendererPreferences;
class WebContents;
struct WebPreferences;
}
+namespace blink {
+namespace mojom {
+class RendererPreferences;
+}
+}
namespace QtWebEngineCore {
class WebContentsAdapter;
@@ -169,7 +173,7 @@ public:
private:
void doApply();
void applySettingsToWebPreferences(content::WebPreferences *);
- bool applySettingsToRendererPreferences(content::RendererPreferences *);
+ bool applySettingsToRendererPreferences(blink::mojom::RendererPreferences *);
void setWebContentsAdapter(WebContentsAdapter *adapter) { m_adapter = adapter; }
WebContentsAdapter* m_adapter;