summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-30 17:23:41 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-03-15 16:52:17 +0000
commitd5bffb5125da23718e8098441b4a4269a5cf2f33 (patch)
tree48a39ba7f833116cba7dcc7917d13d34a062949c
parent789f375411b542db3ac3be79cbe0a6153720abf1 (diff)
Basic adaptations for 64-based
Change-Id: I11e2da206e4e59872a38c178f57a5879c1bbf229 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--src/core/access_token_store_qt.cpp94
-rw-r--r--src/core/access_token_store_qt.h76
-rw-r--r--src/core/browser_accessibility_manager_qt.cpp5
-rw-r--r--src/core/browser_accessibility_manager_qt.h6
-rw-r--r--src/core/browser_accessibility_qt.cpp4
-rw-r--r--src/core/browser_message_filter_qt.cpp11
-rw-r--r--src/core/browser_message_filter_qt.h5
-rw-r--r--src/core/common/qt_messages.h9
-rw-r--r--src/core/content_browser_client_qt.cpp113
-rw-r--r--src/core/content_browser_client_qt.h8
-rw-r--r--src/core/content_client_qt.cpp12
-rw-r--r--src/core/core_chromium.pri2
-rw-r--r--src/core/devtools_frontend_qt.cpp2
-rw-r--r--src/core/devtools_frontend_qt.h2
-rw-r--r--src/core/devtools_manager_delegate_qt.cpp5
-rw-r--r--src/core/gl_surface_qt.cpp8
-rw-r--r--src/core/gl_surface_qt.h2
-rw-r--r--src/core/javascript_dialog_manager_qt.cpp3
-rw-r--r--src/core/javascript_dialog_manager_qt.h6
-rw-r--r--src/core/location_provider_qt.cpp19
-rw-r--r--src/core/location_provider_qt.h12
-rw-r--r--src/core/network_delegate_qt.cpp6
-rw-r--r--src/core/network_delegate_qt.h4
-rw-r--r--src/core/permission_manager_qt.cpp3
-rw-r--r--src/core/qtwebengine.gni4
-rw-r--r--src/core/qtwebengine_resources.gni4
-rw-r--r--src/core/qtwebengine_sources.gni2
-rw-r--r--src/core/render_widget_host_view_qt.cpp4
-rw-r--r--src/core/render_widget_host_view_qt.h2
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp76
-rw-r--r--src/core/renderer/content_renderer_client_qt.h19
-rw-r--r--src/core/renderer/pepper/pepper_flash_renderer_host_qt.cpp11
-rw-r--r--src/core/renderer_host/pepper/pepper_host_factory_qt.cpp2
-rw-r--r--src/core/ssl_host_state_delegate_qt.cpp11
-rw-r--r--src/core/type_conversion.h5
-rw-r--r--src/core/url_request_context_getter_qt.cpp7
-rw-r--r--src/core/url_request_context_getter_qt.h1
-rw-r--r--src/core/web_contents_adapter.cpp20
-rw-r--r--src/core/web_contents_adapter.h6
-rw-r--r--src/core/web_contents_adapter_p.h10
-rw-r--r--src/core/web_contents_view_qt.cpp15
-rw-r--r--src/core/web_contents_view_qt.h3
-rw-r--r--src/core/web_engine_context.cpp3
-rw-r--r--src/core/web_engine_settings.cpp4
-rw-r--r--src/core/web_event_factory.cpp21
-rw-r--r--tools/scripts/git_submodule.py4
-rwxr-xr-xtools/scripts/init-repository.py2
-rwxr-xr-xtools/scripts/take_snapshot.py8
-rw-r--r--tools/scripts/version_resolver.py4
49 files changed, 276 insertions, 389 deletions
diff --git a/src/core/access_token_store_qt.cpp b/src/core/access_token_store_qt.cpp
deleted file mode 100644
index ebc010408..000000000
--- a/src/core/access_token_store_qt.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** 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) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE.Chromium file.
-
-#include "access_token_store_qt.h"
-
-#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "base/strings/utf_string_conversions.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/storage_partition.h"
-
-#include "browser_context_qt.h"
-#include "browser_context_adapter.h"
-#include "content_browser_client_qt.h"
-#include "web_engine_context.h"
-
-namespace QtWebEngineCore {
-
-using device::AccessTokenStore;
-using content::BrowserThread;
-
-AccessTokenStoreQt::AccessTokenStoreQt()
- : m_systemRequestContext(0)
-{
-}
-
-AccessTokenStoreQt::~AccessTokenStoreQt()
-{
-}
-
-void AccessTokenStoreQt::LoadAccessTokens(const LoadAccessTokensCallback& callback)
-{
- BrowserThread::PostTaskAndReply(BrowserThread::UI, FROM_HERE
- , base::Bind(&AccessTokenStoreQt::performWorkOnUIThread, this)
- , base::Bind(&AccessTokenStoreQt::respondOnOriginatingThread, this, callback));
-}
-
-void AccessTokenStoreQt::performWorkOnUIThread()
-{
- m_systemRequestContext = content::BrowserContext::GetDefaultStoragePartition(WebEngineContext::current()->defaultBrowserContext()->browserContext())->GetURLRequestContext();
-}
-
-void AccessTokenStoreQt::respondOnOriginatingThread(const LoadAccessTokensCallback& callback)
-{
- callback.Run(m_accessTokenSet, m_systemRequestContext);
- m_systemRequestContext = 0;
-}
-
-void AccessTokenStoreQt::SaveAccessToken(const GURL& serverUrl, const base::string16& accessToken)
-{
- m_accessTokenSet[serverUrl] = accessToken;
-}
-
-} // namespace QtWebEngineCore
diff --git a/src/core/access_token_store_qt.h b/src/core/access_token_store_qt.h
deleted file mode 100644
index 74fc0c898..000000000
--- a/src/core/access_token_store_qt.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** 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$
-**
-****************************************************************************/
-
-#ifndef ACCESS_TOKEN_STORE_QT_H
-#define ACCESS_TOKEN_STORE_QT_H
-
-#include "base/memory/ref_counted.h"
-#include "device/geolocation/access_token_store.h"
-
-#include <QtCore/QFile>
-#include <QtCore/QScopedPointer>
-
-namespace net {
-class URLRequestContextGetter;
-}
-
-namespace QtWebEngineCore {
-
-class AccessTokenStoreQt : public device::AccessTokenStore {
-public:
- AccessTokenStoreQt();
- ~AccessTokenStoreQt();
-
- void LoadAccessTokens(const LoadAccessTokensCallback& request) override;
- void SaveAccessToken(const GURL& serverUrl, const base::string16& accessToken) override;
-
-private:
- void performWorkOnUIThread();
- void respondOnOriginatingThread(const LoadAccessTokensCallback& callback);
-
-
- net::URLRequestContextGetter *m_systemRequestContext;
- AccessTokenMap m_accessTokenSet;
-
- DISALLOW_COPY_AND_ASSIGN(AccessTokenStoreQt);
-};
-
-} // namespace QtWebEngineCore
-
-#endif // ACCESS_TOKEN_STORE_QT_H
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 730786bbd..50319e11c 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -82,9 +82,8 @@ QAccessibleInterface *BrowserAccessibilityManagerQt::rootParentAccessible()
return QAccessible::queryAccessibleInterface(m_parentObject);
}
-void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(BrowserAccessibilityEvent::Source source,
- ui::AXEvent event_type,
- BrowserAccessibility* node)
+void BrowserAccessibilityManagerQt::FireBlinkEvent(ui::AXEvent event_type,
+ BrowserAccessibility* node)
{
BrowserAccessibilityQt *iface = static_cast<BrowserAccessibilityQt*>(node);
diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h
index 239d73446..e2315d98a 100644
--- a/src/core/browser_accessibility_manager_qt.h
+++ b/src/core/browser_accessibility_manager_qt.h
@@ -63,10 +63,8 @@ public:
const ui::AXTreeUpdate& initialTree,
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory = new BrowserAccessibilityFactoryQt());
-
- void NotifyAccessibilityEvent(BrowserAccessibilityEvent::Source source,
- ui::AXEvent event_type,
- BrowserAccessibility* node) override;
+ void FireBlinkEvent(ui::AXEvent event_type,
+ BrowserAccessibility* node) override;
QAccessibleInterface *rootParentAccessible();
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index 8441fdad5..89a6f0992 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -236,7 +236,9 @@ QAccessible::Role BrowserAccessibilityQt::role() const
return QAccessible::Column;
case ui::AX_ROLE_COLUMN_HEADER:
return QAccessible::ColumnHeader;
- case ui::AX_ROLE_COMBO_BOX:
+ case ui::AX_ROLE_COMBO_BOX_GROUPING:
+ case ui::AX_ROLE_COMBO_BOX_MENU_BUTTON:
+ case ui::AX_ROLE_TEXT_FIELD_WITH_COMBO_BOX:
return QAccessible::ComboBox;
case ui::AX_ROLE_COMPLEMENTARY:
return QAccessible::ComplementaryContent;
diff --git a/src/core/browser_message_filter_qt.cpp b/src/core/browser_message_filter_qt.cpp
index 5248c2a73..72b38e1bb 100644
--- a/src/core/browser_message_filter_qt.cpp
+++ b/src/core/browser_message_filter_qt.cpp
@@ -70,9 +70,8 @@ bool BrowserMessageFilterQt::OnMessageReceived(const IPC::Message& message)
#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
void BrowserMessageFilterQt::OnIsInternalPluginAvailableForMimeType(
- const std::string& mime_type, bool* is_available,
- std::vector<base::string16>* additional_param_names,
- std::vector<base::string16>* additional_param_values)
+ const std::string& mime_type,
+ base::Optional<std::vector<content::WebPluginMimeType::Param>> *opt_additional_params)
{
std::vector<content::WebPluginInfo> plugins;
content::PluginService::GetInstance()->GetInternalPlugins(&plugins);
@@ -82,15 +81,11 @@ void BrowserMessageFilterQt::OnIsInternalPluginAvailableForMimeType(
const std::vector<content::WebPluginMimeType>& mime_types = plugin.mime_types;
for (size_t j = 0; j < mime_types.size(); ++j) {
if (mime_types[j].mime_type == mime_type) {
- *is_available = true;
- *additional_param_names = mime_types[j].additional_param_names;
- *additional_param_values = mime_types[j].additional_param_values;
+ *opt_additional_params = base::make_optional(mime_types[j].additional_params);
return;
}
}
}
-
- *is_available = false;
}
#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS)
diff --git a/src/core/browser_message_filter_qt.h b/src/core/browser_message_filter_qt.h
index 175319805..9ad9a0e6e 100644
--- a/src/core/browser_message_filter_qt.h
+++ b/src/core/browser_message_filter_qt.h
@@ -41,6 +41,7 @@
#define BROWSER_MESSAGE_FILTER_QT_H
#include "content/public/browser/browser_message_filter.h"
+#include "content/public/common/webplugininfo.h"
#include "media/media_features.h"
namespace QtWebEngineCore {
@@ -62,9 +63,7 @@ private:
// |mime_type|.
void OnIsInternalPluginAvailableForMimeType(
const std::string& mime_type,
- bool* is_available,
- std::vector<base::string16>* additional_param_names,
- std::vector<base::string16>* additional_param_values);
+ base::Optional<std::vector<content::WebPluginMimeType::Param>> *opt_additional_params);
#endif
};
diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h
index 3bedb10d2..62d88521c 100644
--- a/src/core/common/qt_messages.h
+++ b/src/core/common/qt_messages.h
@@ -4,11 +4,12 @@
// Multiply-included file, no traditional include guard.
+#include "base/optional.h"
#include "media/media_features.h"
#include "content/public/common/common_param_traits.h"
+#include "content/public/common/webplugininfo.h"
#include "ipc/ipc_message_macros.h"
#include "ppapi/features/features.h"
-
#include "user_script_data.h"
IPC_STRUCT_TRAITS_BEGIN(UserScriptData)
@@ -81,9 +82,7 @@ IPC_MESSAGE_ROUTED1(WebChannelIPCTransportHost_SendMessage, std::vector<char> /*
// When the returned *|is_available| is true, |additional_param_names| and
// |additional_param_values| contain the name-value pairs, if any, specified
// for the *first* non-disabled plugin found that is registered for |mime_type|.
-IPC_SYNC_MESSAGE_CONTROL1_3(QtWebEngineHostMsg_IsInternalPluginAvailableForMimeType,
+IPC_SYNC_MESSAGE_CONTROL1_1(QtWebEngineHostMsg_IsInternalPluginAvailableForMimeType,
std::string /* mime_type */,
- bool /* is_available */,
- std::vector<base::string16> /* additional_param_names */,
- std::vector<base::string16> /* additional_param_values */)
+ base::Optional<std::vector<content::WebPluginMimeType::Param>>)
#endif
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 446764f19..18d0ff1c9 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -39,6 +39,7 @@
#include "content_browser_client_qt.h"
+#include "base/json/json_reader.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
#include "base/threading/thread_restrictions.h"
@@ -64,15 +65,15 @@
#include "content/public/browser/web_contents_user_data.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
+#include "content/public/common/service_names.mojom.h"
#include "content/public/common/url_constants.h"
-#include "device/geolocation/geolocation_delegate.h"
-#include "device/geolocation/geolocation_provider.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "printing/features/features.h"
#include "net/ssl/client_cert_identity.h"
#include "services/service_manager/public/cpp/bind_source_info.h"
#include "services/service_manager/public/cpp/binder_registry.h"
+#include "services/service_manager/public/cpp/service.h"
#include "third_party/WebKit/public/platform/modules/insecure_input/insecure_input_service.mojom.h"
#include "ui/base/ui_base_switches.h"
#include "ui/display/screen.h"
@@ -81,7 +82,8 @@
#include "ui/gl/gl_share_group.h"
#include "ui/gl/gpu_timing.h"
-#include "access_token_store_qt.h"
+#include "chrome/grit/qt_webengine_resources.h"
+
#include "browser_context_adapter.h"
#include "browser_context_qt.h"
#include "browser_message_filter_qt.h"
@@ -89,11 +91,6 @@
#include "certificate_error_controller_p.h"
#include "desktop_screen_qt.h"
#include "devtools_manager_delegate_qt.h"
-#ifdef QT_USE_POSITIONING
-#include "location_provider_qt.h"
-#else
-#include "device/geolocation/location_provider.h"
-#endif
#include "media_capture_devices_dispatcher.h"
#include "network_delegate_qt.h"
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
@@ -249,28 +246,6 @@ std::unique_ptr<base::MessagePump> messagePumpFactory()
return base::WrapUnique(new MessagePumpForUIQt);
}
-// A provider of services needed by Geolocation.
-class GeolocationDelegateQt : public device::GeolocationDelegate {
-public:
- GeolocationDelegateQt() {}
- scoped_refptr<device::AccessTokenStore> CreateAccessTokenStore() final
- {
- return scoped_refptr<device::AccessTokenStore>(new AccessTokenStoreQt);
- }
-
- std::unique_ptr<device::LocationProvider> OverrideSystemLocationProvider() final
- {
-#ifdef QT_USE_POSITIONING
- return base::WrapUnique(new LocationProviderQt);
-#else
- return nullptr;
-#endif
- }
-
-private:
- DISALLOW_COPY_AND_ASSIGN(GeolocationDelegateQt);
-};
-
} // anonymous namespace
class BrowserMainPartsQt : public content::BrowserMainParts
@@ -285,11 +260,6 @@ public:
base::MessageLoop::InitMessagePumpForUIFactory(messagePumpFactory);
}
- void PreMainMessageLoopRun() override
- {
- device::GeolocationProvider::SetGeolocationDelegate(new GeolocationDelegateQt());
- }
-
void PostMainMessageLoopRun() override
{
// The BrowserContext's destructor uses the MessageLoop so it should be deleted
@@ -620,19 +590,72 @@ void ContentBrowserClientQt::BindInterfaceRequestFromFrame(content::RenderFrameH
m_frameInterfaces->TryBindInterface(interface_name, &interface_pipe);
}
-void ContentBrowserClientQt::ExposeInterfacesToRenderer(service_manager::BinderRegistry *registry,
- content::AssociatedInterfaceRegistry */*associated_registry*/,
- content::RenderProcessHost *render_process_host)
+class ServiceQt : public service_manager::Service {
+public:
+ ServiceQt();
+
+ static std::unique_ptr<service_manager::Service> Create()
+ {
+ return base::MakeUnique<ServiceQt>();
+ }
+
+private:
+ // service_manager::Service:
+ void OnBindInterface(const service_manager::BindSourceInfo& remote_info,
+ const std::string& name,
+ mojo::ScopedMessagePipeHandle handle) override;
+
+ service_manager::BinderRegistry m_registry;
+ service_manager::BinderRegistryWithArgs<const service_manager::BindSourceInfo&> m_registry_with_source_info;
+
+ DISALLOW_COPY_AND_ASSIGN(ServiceQt);
+};
+
+ServiceQt::ServiceQt()
{
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
#if BUILDFLAG(ENABLE_SPELLCHECK)
- registry->AddInterface(base::Bind(&SpellCheckHostImpl::Create, render_process_host->GetID()),
- content::BrowserThread::GetTaskRunnerForThread(content::BrowserThread::UI));
-#else
- Q_UNUSED(registry);
- Q_UNUSED(render_process_host);
+ m_registry_with_source_info.AddInterface(
+ base::Bind(&SpellCheckHostImpl::Create),
+ content::BrowserThread::GetTaskRunnerForThread(content::BrowserThread::UI));
#endif
}
+void ServiceQt::OnBindInterface(const service_manager::BindSourceInfo& remote_info,
+ const std::string& name,
+ mojo::ScopedMessagePipeHandle handle)
+{
+ content::OverrideOnBindInterface(remote_info, name, &handle);
+ if (!handle.is_valid())
+ return;
+
+ if (!m_registry.TryBindInterface(name, &handle))
+ m_registry_with_source_info.TryBindInterface(name, &handle, remote_info);
+}
+
+void ContentBrowserClientQt::RegisterInProcessServices(StaticServiceMap* services)
+{
+ service_manager::EmbeddedServiceInfo info;
+ info.factory = base::Bind(&ServiceQt::Create);
+ services->insert(std::make_pair("qtwebengine", info));
+}
+
+std::unique_ptr<base::Value> ContentBrowserClientQt::GetServiceManifestOverlay(base::StringPiece name)
+{
+ ui::ResourceBundle &rb = ui::ResourceBundle::GetSharedInstance();
+ int id = -1;
+ if (name == content::mojom::kPackagedServicesServiceName)
+ id = IDR_QTWEBENGINE_CONTENT_PACKAGED_SERVICES_MANIFEST_OVERLAY;
+ else if (name == content::mojom::kRendererServiceName)
+ id = IDR_QTWEBENGINE_CONTENT_RENDERER_MANIFEST_OVERLAY;
+ if (id == -1)
+ return nullptr;
+
+ base::StringPiece manifest_contents =
+ rb.GetRawDataResourceForScale(id, ui::ScaleFactor::SCALE_FACTOR_NONE);
+ return base::JSONReader::Read(manifest_contents);
+}
+
bool ContentBrowserClientQt::CanCreateWindow(
content::RenderFrameHost* opener,
const GURL& opener_url,
@@ -688,14 +711,14 @@ bool ContentBrowserClientQt::AllowGetCookie(const GURL &url,
bool ContentBrowserClientQt::AllowSetCookie(const GURL &url,
const GURL &first_party,
- const std::string &cookie_line,
+ const net::CanonicalCookie& /*cookie*/,
content::ResourceContext *context,
int /*render_process_id*/,
int /*render_frame_id*/,
const net::CookieOptions& /*options*/)
{
NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(context->GetRequestContext()->network_delegate());
- return networkDelegate->canSetCookies(first_party, url, cookie_line);
+ return networkDelegate->canSetCookies(first_party, url, std::string());
}
} // namespace QtWebEngineCore
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index 094ad6549..86bd2977c 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -118,10 +118,8 @@ public:
void BindInterfaceRequestFromFrame(content::RenderFrameHost* render_frame_host,
const std::string& interface_name,
mojo::ScopedMessagePipeHandle interface_pipe) override;
- void ExposeInterfacesToRenderer(service_manager::BinderRegistry *registry,
- content::AssociatedInterfaceRegistry *associated_registry,
- content::RenderProcessHost *render_process_host) override;
-
+ void RegisterInProcessServices(StaticServiceMap* services) override;
+ std::unique_ptr<base::Value> GetServiceManifestOverlay(base::StringPiece name) override;
bool CanCreateWindow(
content::RenderFrameHost* opener,
const GURL& opener_url,
@@ -146,7 +144,7 @@ public:
bool AllowSetCookie(const GURL& url,
const GURL& first_party,
- const std::string& cookie_line,
+ const net::CanonicalCookie& cookie,
content::ResourceContext* context,
int render_process_id,
int render_frame_id,
diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp
index 66c63b1b8..a412345ea 100644
--- a/src/core/content_client_qt.cpp
+++ b/src/core/content_client_qt.cpp
@@ -263,11 +263,9 @@ void AddPepperWidevine(std::vector<content::PepperPluginInfo>* plugins)
#endif // defined(USE_PROPRIETARY_CODECS)
std::string codec_string =
base::JoinString(codecs, ",");
- widevine_cdm_mime_type.additional_param_names.push_back(
- base::ASCIIToUTF16(kCdmSupportedCodecsParamName));
- widevine_cdm_mime_type.additional_param_values.push_back(
- base::ASCIIToUTF16(codec_string));
-
+ widevine_cdm_mime_type.additional_params.emplace_back(
+ base::ASCIIToUTF16(kCdmSupportedCodecsParamName),
+ base::ASCIIToUTF16(codec_string));
widevine_cdm.mime_types.push_back(widevine_cdm_mime_type);
widevine_cdm.permissions = kWidevineCdmPluginPermissions;
plugins->push_back(widevine_cdm);
@@ -300,12 +298,12 @@ std::string ContentClientQt::getUserAgent()
}
base::StringPiece ContentClientQt::GetDataResource(int resource_id, ui::ScaleFactor scale_factor) const {
- return ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(resource_id, scale_factor);
+ return ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(resource_id, scale_factor);
}
base::RefCountedMemory *ContentClientQt::GetDataResourceBytes(int resource_id) const
{
- return ResourceBundle::GetSharedInstance().LoadDataResourceBytes(resource_id);
+ return ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytes(resource_id);
}
base::string16 ContentClientQt::GetLocalizedString(int message_id) const
diff --git a/src/core/core_chromium.pri b/src/core/core_chromium.pri
index e62ffdbfb..783c41e88 100644
--- a/src/core/core_chromium.pri
+++ b/src/core/core_chromium.pri
@@ -35,7 +35,6 @@ qtConfig(egl): CONFIG += egl
INCLUDEPATH += $$PWD $$PWD/api
SOURCES = \
- access_token_store_qt.cpp \
authentication_dialog_controller.cpp \
browser_accessibility_manager_qt.cpp \
browser_accessibility_qt.cpp \
@@ -114,7 +113,6 @@ SOURCES = \
webui/webui_controller_factory_qt.cpp
HEADERS = \
- access_token_store_qt.h \
authentication_dialog_controller_p.h \
authentication_dialog_controller.h \
browser_accessibility_manager_qt.h \
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp
index f715eefbf..98008fa58 100644
--- a/src/core/devtools_frontend_qt.cpp
+++ b/src/core/devtools_frontend_qt.cpp
@@ -510,7 +510,7 @@ void DevToolsFrontendQt::SendMessageAck(int request_id, const base::Value *arg)
CallClientFunction("DevToolsAPI.embedderMessageAck", &id_value, arg, nullptr);
}
-void DevToolsFrontendQt::AgentHostClosed(content::DevToolsAgentHost *agentHost, bool /*replaced*/)
+void DevToolsFrontendQt::AgentHostClosed(content::DevToolsAgentHost *agentHost)
{
DCHECK(agentHost == m_agentHost.get());
m_agentHost = nullptr;
diff --git a/src/core/devtools_frontend_qt.h b/src/core/devtools_frontend_qt.h
index 7d00845ba..88cc7aeac 100644
--- a/src/core/devtools_frontend_qt.h
+++ b/src/core/devtools_frontend_qt.h
@@ -96,7 +96,7 @@ protected:
~DevToolsFrontendQt() override;
// content::DevToolsAgentHostClient implementation.
- void AgentHostClosed(content::DevToolsAgentHost* agent_host, bool replaced) override;
+ void AgentHostClosed(content::DevToolsAgentHost* agent_host) override;
void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host, const std::string& message) override;
void SetPreferences(const std::string& json);
diff --git a/src/core/devtools_manager_delegate_qt.cpp b/src/core/devtools_manager_delegate_qt.cpp
index 305e32278..e926a818f 100644
--- a/src/core/devtools_manager_delegate_qt.cpp
+++ b/src/core/devtools_manager_delegate_qt.cpp
@@ -49,7 +49,6 @@
#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/grit/qt_webengine_resources.h"
#include "content/browser/devtools/devtools_http_handler.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_frontend_host.h"
@@ -65,6 +64,8 @@
#include "net/socket/tcp_server_socket.h"
#include "ui/base/resource/resource_bundle.h"
+#include "qtwebengine/grit/qt_webengine_resources.h"
+
#include "type_conversion.h"
using content::DevToolsAgentHost;
@@ -180,7 +181,7 @@ void DevToolsManagerDelegateQt::Initialized(const net::IPEndPoint *ip_address)
std::string DevToolsManagerDelegateQt::GetDiscoveryPageHTML()
{
- return ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_DEVTOOLS_DISCOVERY_PAGE_HTML).as_string();
+ return ui::ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_DEVTOOLS_DISCOVERY_PAGE_HTML).as_string();
}
std::string DevToolsManagerDelegateQt::GetFrontendResource(const std::string& path)
diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp
index 941fbd211..918001adb 100644
--- a/src/core/gl_surface_qt.cpp
+++ b/src/core/gl_surface_qt.cpp
@@ -288,9 +288,9 @@ bool GLSurfaceQtGLX::Initialize(GLSurfaceFormat format)
const int pbuffer_attributes[] = {
GLX_PBUFFER_WIDTH, m_size.width(),
GLX_PBUFFER_HEIGHT, m_size.height(),
- GLX_LARGEST_PBUFFER, False,
- GLX_PRESERVED_CONTENTS, False,
- 0
+ GLX_LARGEST_PBUFFER, x11::False,
+ GLX_PRESERVED_CONTENTS, x11::False,
+ GLX_NONE
};
m_surfaceBuffer = glXCreatePbuffer(display, static_cast<GLXFBConfig>(g_config), pbuffer_attributes);
@@ -577,7 +577,7 @@ bool GLSurfaceQt::IsOffscreen()
return true;
}
-gfx::SwapResult GLSurfaceQt::SwapBuffers()
+gfx::SwapResult GLSurfaceQt::SwapBuffers(const PresentationCallback &callback)
{
LOG(ERROR) << "Attempted to call SwapBuffers on a pbuffer.";
Q_UNREACHABLE();
diff --git a/src/core/gl_surface_qt.h b/src/core/gl_surface_qt.h
index c26cb7ed0..ceb8cbba3 100644
--- a/src/core/gl_surface_qt.h
+++ b/src/core/gl_surface_qt.h
@@ -57,7 +57,7 @@ public:
void *GetDisplay() override;
void *GetConfig() override;
bool IsOffscreen() override;
- gfx::SwapResult SwapBuffers() override;
+ gfx::SwapResult SwapBuffers(const PresentationCallback &callback) override;
gfx::Size GetSize() override;
GLSurfaceFormat GetFormat() override;
diff --git a/src/core/javascript_dialog_manager_qt.cpp b/src/core/javascript_dialog_manager_qt.cpp
index fe4657405..bfa23d2a1 100644
--- a/src/core/javascript_dialog_manager_qt.cpp
+++ b/src/core/javascript_dialog_manager_qt.cpp
@@ -71,7 +71,8 @@ void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webCon
runDialogForContents(webContents, dialogType, toQt(messageText), toQt(defaultPromptText), toQt(originUrl.GetOrigin()), std::move(callback));
}
-void JavaScriptDialogManagerQt::RunBeforeUnloadDialog(content::WebContents *webContents, bool isReload,
+void JavaScriptDialogManagerQt::RunBeforeUnloadDialog(content::WebContents *webContents, content::RenderFrameHost */*render_frame_host*/,
+ bool isReload,
content::JavaScriptDialogManager::DialogClosedCallback callback) {
Q_UNUSED(isReload);
runDialogForContents(webContents, WebContentsAdapterClient::UnloadDialog, QString(), QString(), QUrl(), std::move(callback));
diff --git a/src/core/javascript_dialog_manager_qt.h b/src/core/javascript_dialog_manager_qt.h
index 2856b30f0..aa82b690f 100644
--- a/src/core/javascript_dialog_manager_qt.h
+++ b/src/core/javascript_dialog_manager_qt.h
@@ -64,8 +64,10 @@ public:
const base::string16 &messageText, const base::string16 &defaultPromptText,
DialogClosedCallback callback,
bool *didSuppressMessage) override;
- void RunBeforeUnloadDialog(content::WebContents *, bool isReload,
- content::JavaScriptDialogManager::DialogClosedCallback callback) override;
+ void RunBeforeUnloadDialog(content::WebContents *web_contents,
+ content::RenderFrameHost *render_frame_host,
+ bool is_reload,
+ DialogClosedCallback callback) override;
bool HandleJavaScriptDialog(content::WebContents *, bool accept, const base::string16 *promptOverride) override;
void CancelDialogs(content::WebContents *contents, bool /*reset_state*/) override
{
diff --git a/src/core/location_provider_qt.cpp b/src/core/location_provider_qt.cpp
index a507f32d1..5f0df2c0c 100644
--- a/src/core/location_provider_qt.cpp
+++ b/src/core/location_provider_qt.cpp
@@ -161,8 +161,8 @@ void QtPositioningHelper::updatePosition(const QGeoPositionInfo &pos)
if (!pos.isValid())
return;
Q_ASSERT(m_positionInfoSource->error() == QGeoPositionInfoSource::NoError);
- device::Geoposition newPos;
- newPos.error_code = device::Geoposition::ERROR_CODE_NONE;
+ device::mojom::Geoposition newPos;
+ newPos.error_code = device::mojom::Geoposition::ErrorCode::NONE;
newPos.error_message.clear();
newPos.timestamp = toTime(pos.timestamp());
@@ -195,15 +195,15 @@ void QtPositioningHelper::updatePosition(const QGeoPositionInfo &pos)
void QtPositioningHelper::error(QGeoPositionInfoSource::Error positioningError)
{
Q_ASSERT(positioningError != QGeoPositionInfoSource::NoError);
- device::Geoposition newPos;
+ device::mojom::Geoposition newPos;
switch (positioningError) {
case QGeoPositionInfoSource::AccessError:
- newPos.error_code = device::Geoposition::ERROR_CODE_PERMISSION_DENIED;
+ newPos.error_code = device::mojom::Geoposition::ErrorCode::PERMISSION_DENIED;
break;
case QGeoPositionInfoSource::ClosedError:
case QGeoPositionInfoSource::UnknownSourceError: // position unavailable is as good as it gets in Geoposition
default:
- newPos.error_code = device::Geoposition::ERROR_CODE_POSITION_UNAVAILABLE;
+ newPos.error_code = device::mojom::Geoposition::ErrorCode::POSITION_UNAVAILABLE;
break;
}
if (m_locationProvider)
@@ -212,11 +212,11 @@ void QtPositioningHelper::error(QGeoPositionInfoSource::Error positioningError)
void QtPositioningHelper::timeout()
{
- device::Geoposition newPos;
+ device::mojom::Geoposition newPos;
// content::Geoposition::ERROR_CODE_TIMEOUT is not handled properly in the renderer process, and the timeout
// argument used in JS never comes all the way to the browser process.
// Let's just treat it like any other error where the position is unavailable.
- newPos.error_code = device::Geoposition::ERROR_CODE_POSITION_UNAVAILABLE;
+ newPos.error_code = device::mojom::Geoposition::ErrorCode::POSITION_UNAVAILABLE;
if (m_locationProvider)
postToLocationProvider(base::Bind(&LocationProviderQt::updatePosition, m_locationProviderFactory.GetWeakPtr(), newPos));
}
@@ -240,7 +240,7 @@ LocationProviderQt::~LocationProviderQt()
}
}
-bool LocationProviderQt::StartProvider(bool highAccuracy)
+void LocationProviderQt::StartProvider(bool highAccuracy)
{
QThread *guiThread = qApp->thread();
if (!m_positioningHelper) {
@@ -249,7 +249,6 @@ bool LocationProviderQt::StartProvider(bool highAccuracy)
}
QMetaObject::invokeMethod(m_positioningHelper, "start", Qt::QueuedConnection, Q_ARG(bool, highAccuracy));
- return true;
}
void LocationProviderQt::StopProvider()
@@ -269,7 +268,7 @@ void LocationProviderQt::SetUpdateCallback(const LocationProviderUpdateCallback&
m_callback = callback;
}
-void LocationProviderQt::updatePosition(const device::Geoposition &position)
+void LocationProviderQt::updatePosition(const device::mojom::Geoposition &position)
{
m_lastKnownPosition = position;
m_callback.Run(this, position);
diff --git a/src/core/location_provider_qt.h b/src/core/location_provider_qt.h
index b1ff354a0..5c59b07ed 100644
--- a/src/core/location_provider_qt.h
+++ b/src/core/location_provider_qt.h
@@ -42,8 +42,8 @@
#include <QtCore/qcompilerdetection.h>
-#include "device/geolocation/geoposition.h"
-#include "device/geolocation/location_provider.h"
+#include "device/geolocation/public/cpp/geoposition.h"
+#include "device/geolocation/public/cpp/location_provider.h"
QT_FORWARD_DECLARE_CLASS(QThread)
@@ -61,18 +61,18 @@ public:
virtual ~LocationProviderQt();
// LocationProvider
- bool StartProvider(bool high_accuracy) override;
+ void StartProvider(bool high_accuracy) override;
void StopProvider() override;
- const device::Geoposition& GetPosition() override { return m_lastKnownPosition; }
+ const device::mojom::Geoposition& GetPosition() override { return m_lastKnownPosition; }
void OnPermissionGranted() override;
void SetUpdateCallback(const LocationProviderUpdateCallback& callback) override;
private:
friend class QtPositioningHelper;
- void updatePosition(const device::Geoposition &);
+ void updatePosition(const device::mojom::Geoposition &);
- device::Geoposition m_lastKnownPosition;
+ device::mojom::Geoposition m_lastKnownPosition;
LocationProviderUpdateCallback m_callback;
QtPositioningHelper *m_positioningHelper;
};
diff --git a/src/core/network_delegate_qt.cpp b/src/core/network_delegate_qt.cpp
index a378584b4..acebbcf0b 100644
--- a/src/core/network_delegate_qt.cpp
+++ b/src/core/network_delegate_qt.cpp
@@ -281,10 +281,10 @@ void NetworkDelegateQt::OnCompleted(net::URLRequest */*request*/, bool /*started
}
bool NetworkDelegateQt::OnCanSetCookie(const net::URLRequest& request,
- const std::string& cookie_line,
+ const net::CanonicalCookie & /*cookie*/,
net::CookieOptions*)
{
- return canSetCookies(request.site_for_cookies(), request.url(), cookie_line);
+ return canSetCookies(request.site_for_cookies(), request.url(), std::string());
}
bool NetworkDelegateQt::OnCanGetCookies(const net::URLRequest& request, const net::CookieList&)
@@ -332,7 +332,7 @@ void NetworkDelegateQt::OnBeforeRedirect(net::URLRequest*, const GURL&)
{
}
-void NetworkDelegateQt::OnResponseStarted(net::URLRequest*)
+void NetworkDelegateQt::OnResponseStarted(net::URLRequest*, int)
{
}
diff --git a/src/core/network_delegate_qt.h b/src/core/network_delegate_qt.h
index 21e00c710..b5165d229 100644
--- a/src/core/network_delegate_qt.h
+++ b/src/core/network_delegate_qt.h
@@ -62,14 +62,14 @@ public:
// net::NetworkDelegate implementation
int OnBeforeURLRequest(net::URLRequest* request, const net::CompletionCallback& callback, GURL* newUrl) override;
void OnURLRequestDestroyed(net::URLRequest* request) override;
- bool OnCanSetCookie(const net::URLRequest&, const std::string&, net::CookieOptions*) override;
+ bool OnCanSetCookie(const net::URLRequest& request, const net::CanonicalCookie& cookie, net::CookieOptions* options) override;
int OnBeforeStartTransaction(net::URLRequest *request, const net::CompletionCallback &callback, net::HttpRequestHeaders *headers) override;
void OnBeforeSendHeaders(net::URLRequest* request, const net::ProxyInfo& proxy_info,
const net::ProxyRetryInfoMap& proxy_retry_info, net::HttpRequestHeaders* headers) override;
void OnStartTransaction(net::URLRequest *request, const net::HttpRequestHeaders &headers) override;
int OnHeadersReceived(net::URLRequest*, const net::CompletionCallback&, const net::HttpResponseHeaders*, scoped_refptr<net::HttpResponseHeaders>*, GURL*) override;
void OnBeforeRedirect(net::URLRequest*, const GURL&) override;
- void OnResponseStarted(net::URLRequest*) override;
+ void OnResponseStarted(net::URLRequest*, int) override;
void OnNetworkBytesReceived(net::URLRequest*, int64_t) override;
void OnNetworkBytesSent(net::URLRequest *, int64_t) override;
void OnCompleted(net::URLRequest *request, bool started, int net_error) override;
diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp
index 95d01dd07..c65da34af 100644
--- a/src/core/permission_manager_qt.cpp
+++ b/src/core/permission_manager_qt.cpp
@@ -62,13 +62,14 @@ BrowserContextAdapter::PermissionType toQt(content::PermissionType type)
case content::PermissionType::FLASH:
case content::PermissionType::NOTIFICATIONS:
case content::PermissionType::MIDI_SYSEX:
- case content::PermissionType::PUSH_MESSAGING:
case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
case content::PermissionType::MIDI:
case content::PermissionType::DURABLE_STORAGE:
case content::PermissionType::BACKGROUND_SYNC:
case content::PermissionType::SENSORS:
case content::PermissionType::ACCESSIBILITY_EVENTS:
+ case content::PermissionType::CLIPBOARD_READ:
+ case content::PermissionType::CLIPBOARD_WRITE:
case content::PermissionType::NUM:
break;
}
diff --git a/src/core/qtwebengine.gni b/src/core/qtwebengine.gni
index eeaf6c15f..60165f320 100644
--- a/src/core/qtwebengine.gni
+++ b/src/core/qtwebengine.gni
@@ -13,12 +13,10 @@ include_dirs = [
deps = [
"//base",
- "//chrome/common:features",
"//components/error_page/common",
"//components/keyed_service/content",
"//components/visitedlink/browser",
"//components/visitedlink/renderer",
- "//components/signin/core/common:signin_features",
"//components/web_cache/browser",
"//components/web_cache/renderer",
"//components/spellcheck:build_features",
@@ -49,6 +47,8 @@ if (is_linux && !is_desktop_linux) {
deps += [ "//ui/events/ozone:events_ozone_evdev"]
}
+data_deps = [ "//qtwebengine/browser:service_manifests" ]
+
defines = [
"CHROMIUM_VERSION=\"" + chromium_version[0] + "\""
]
diff --git a/src/core/qtwebengine_resources.gni b/src/core/qtwebengine_resources.gni
index bc86eee7b..491b26efc 100644
--- a/src/core/qtwebengine_resources.gni
+++ b/src/core/qtwebengine_resources.gni
@@ -17,7 +17,7 @@ group("qtwebengine_resources") {
repack("qtwebengine_repack_resources") {
sources = [
"$root_gen_dir/blink/public/resources/blink_resources.pak",
- "$root_gen_dir/chrome/qt_webengine_resources.pak",
+ "$root_gen_dir/qtwebengine/qt_webengine_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",
@@ -27,7 +27,7 @@ repack("qtwebengine_repack_resources") {
]
output = "$root_out_dir/qtwebengine_resources.pak"
deps = [
- "//chrome/browser/resources:qt_webengine_resources",
+ "//qtwebengine/browser:qt_webengine_resources",
"//chrome/browser/resources:quota_internals_resources",
"//chrome/browser/resources:task_scheduler_internals_resources",
"//components/resources:components_resources_grit",
diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni
index bdedf11d3..c5c642ddd 100644
--- a/src/core/qtwebengine_sources.gni
+++ b/src/core/qtwebengine_sources.gni
@@ -74,6 +74,8 @@ source_set("qtwebengine_sources") {
"//chrome/common/pref_names.h",
"//chrome/common/url_constants.cc",
"//chrome/common/url_constants.h",
+ "//chrome/common/webui_url_constants.cc",
+ "//chrome/common/webui_url_constants.h",
"//extensions/common/constants.cc",
"//extensions/common/constants.h",
"//extensions/common/url_pattern.cc",
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 49c07d3ed..a9e2f2ccb 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -342,7 +342,7 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost* widget
{
auto* task_runner = base::ThreadTaskRunnerHandle::Get().get();
m_beginFrameSource.reset(new viz::DelayBasedBeginFrameSource(
- base::MakeUnique<viz::DelayBasedTimeSource>(task_runner)));
+ base::MakeUnique<viz::DelayBasedTimeSource>(task_runner), 0));
m_host->SetView(this);
#ifndef QT_NO_ACCESSIBILITY
@@ -732,7 +732,7 @@ void RenderWidgetHostViewQt::DidCreateNewRendererCompositorFrameSink(viz::mojom:
m_rendererCompositorFrameSink = frameSink;
}
-void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &local_surface_id, viz::CompositorFrame frame)
+void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &local_surface_id, viz::CompositorFrame frame, viz::mojom::HitTestRegionListPtr)
{
bool scrollOffsetChanged = (m_lastScrollOffset != frame.metadata.root_scroll_offset);
bool contentsSizeChanged = (m_lastContentsSize != frame.metadata.root_layer_size);
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 548142c84..678c1a8ee 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -152,7 +152,7 @@ public:
void SetTooltipText(const base::string16 &tooltip_text) override;
bool HasAcceleratedSurface(const gfx::Size&) override;
void DidCreateNewRendererCompositorFrameSink(viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) override;
- void SubmitCompositorFrame(const viz::LocalSurfaceId&, viz::CompositorFrame) override;
+ void SubmitCompositorFrame(const viz::LocalSurfaceId&, viz::CompositorFrame, viz::mojom::HitTestRegionListPtr) override;
void WheelEventAck(const blink::WebMouseWheelEvent &event, content::InputEventAckState ack_result) override;
void GetScreenInfo(content::ScreenInfo* results);
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index a77bcf785..63b99c7bc 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -80,6 +80,7 @@
#include "renderer/user_resource_controller.h"
#include "renderer/web_channel_ipc_transport.h"
#include "services/service_manager/public/cpp/binder_registry.h"
+#include "services/service_manager/public/cpp/connector.h"
#include "components/grit/components_resources.h"
@@ -115,7 +116,7 @@ void ContentRendererClientQt::RenderThreadStarted()
renderThread->AddObserver(UserResourceController::instance());
#if BUILDFLAG(ENABLE_SPELLCHECK)
- m_spellCheck.reset(new SpellCheck());
+ m_spellCheck.reset(new SpellCheck(this));
renderThread->AddObserver(m_spellCheck.data());
#endif
}
@@ -134,7 +135,7 @@ void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame* render_fr
UserResourceController::instance()->renderFrameCreated(render_frame);
#if BUILDFLAG(ENABLE_SPELLCHECK)
- new SpellCheckProvider(render_frame, m_spellCheck.data());
+ new SpellCheckProvider(render_frame, m_spellCheck.data(), this);
#endif
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
new printing::PrintRenderFrameHelper(
@@ -182,22 +183,26 @@ bool ContentRendererClientQt::ShouldSuppressErrorPage(content::RenderFrame *fram
return !(frame->GetWebkitPreferences().enable_error_page);
}
-std::string domain2String(blink::WebURLError::Domain domain)
+// To tap into the chromium localized strings. Ripped from the chrome layer (highly simplified).
+void ContentRendererClientQt::GetNavigationErrorStrings(content::RenderFrame* renderFrame, const blink::WebURLRequest &failedRequest,
+ const blink::WebURLError &web_error,
+ std::string *errorHtml, base::string16 *errorDescription)
{
- switch (domain) {
- case blink::WebURLError::Domain::kEmpty:
- return "(null)";
- case blink::WebURLError::Domain::kNet:
- return "net";
- case blink::WebURLError::Domain::kTest:
- return "testing";
- }
- Q_UNREACHABLE();
- return std::string();
+ GetNavigationErrorStringsInternal(renderFrame, failedRequest,
+ error_page::Error::NetError(web_error.url(), web_error.reason(), web_error.has_copy_in_cache()),
+ errorHtml, errorDescription);
}
-// To tap into the chromium localized strings. Ripped from the chrome layer (highly simplified).
-void ContentRendererClientQt::GetNavigationErrorStrings(content::RenderFrame* renderFrame, const blink::WebURLRequest &failedRequest, const blink::WebURLError &error, std::string *errorHtml, base::string16 *errorDescription)
+void ContentRendererClientQt::GetNavigationErrorStringsForHttpStatusError(content::RenderFrame* renderFrame, const blink::WebURLRequest& failedRequest,
+ const GURL& unreachable_url, int http_status,
+ std::string* errorHtml, base::string16* errorDescription)
+{
+ GetNavigationErrorStringsInternal(renderFrame, failedRequest,
+ error_page::Error::HttpError(unreachable_url, http_status),
+ errorHtml, errorDescription);
+}
+
+void ContentRendererClientQt::GetNavigationErrorStringsInternal(content::RenderFrame */*renderFrame*/, const blink::WebURLRequest &failedRequest, const error_page::Error &error, std::string *errorHtml, base::string16 *errorDescription)
{
const bool isPost = QByteArray::fromStdString(failedRequest.HttpMethod().Utf8()) == QByteArrayLiteral("POST");
@@ -211,8 +216,8 @@ void ContentRendererClientQt::GetNavigationErrorStrings(content::RenderFrame* re
// NetErrorHelper::GetErrorStringsForDnsProbe, but that one is harder to untangle.
error_page::LocalizedError::GetStrings(
- error.reason, domain2String(error.domain), error.unreachable_url, isPost,
- error.stale_copy_in_cache, false, false,
+ error.reason(), error.domain(), error.url(), isPost,
+ error.stale_copy_in_cache(), false, false,
locale, std::unique_ptr<error_page::ErrorPageParams>(), &errorStrings);
resourceId = IDR_NET_ERROR_HTML;
@@ -224,7 +229,7 @@ void ContentRendererClientQt::GetNavigationErrorStrings(content::RenderFrame* re
}
if (errorDescription)
- *errorDescription = error_page::LocalizedError::GetErrorDetails(domain2String(error.domain), error.reason, isPost);
+ *errorDescription = error_page::LocalizedError::GetErrorDetails(error.domain(), error.reason(), isPost);
}
unsigned long long ContentRendererClientQt::VisitedLinkHash(const char *canonicalUrl, size_t length)
@@ -237,6 +242,13 @@ bool ContentRendererClientQt::IsLinkVisited(unsigned long long linkHash)
return m_visitedLinkSlave->IsVisited(linkHash);
}
+void ContentRendererClientQt::GetInterface(const std::string &interface_name, mojo::ScopedMessagePipeHandle interface_pipe)
+{
+ content::RenderThread::Get()->GetConnector()->BindInterface(service_manager::Identity("qtwebengine"),
+ interface_name,
+ std::move(interface_pipe));
+}
+
// The following is based on chrome/renderer/media/chrome_key_systems.cc:
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
@@ -246,18 +258,18 @@ bool ContentRendererClientQt::IsLinkVisited(unsigned long long linkHash)
static const char kExternalClearKeyPepperType[] = "application/x-ppapi-clearkey-cdm";
static bool IsPepperCdmAvailable(const std::string& pepper_type,
- std::vector<base::string16>* additional_param_names,
- std::vector<base::string16>* additional_param_values)
+ std::vector<content::WebPluginMimeType::Param>* additional_params)
{
- bool is_available = false;
+ base::Optional<std::vector<content::WebPluginMimeType::Param>> opt_additional_params;
content::RenderThread::Get()->Send(
new QtWebEngineHostMsg_IsInternalPluginAvailableForMimeType(
pepper_type,
- &is_available,
- additional_param_names,
- additional_param_values));
+ &opt_additional_params));
+
+ if (opt_additional_params)
+ *additional_params = *opt_additional_params;
- return is_available;
+ return opt_additional_params.has_value();
}
// KeySystemProperties implementation for external Clear Key systems.
@@ -349,11 +361,8 @@ static void AddExternalClearKey(std::vector<std::unique_ptr<media::KeySystemProp
static const char kExternalClearKeyCrashKeySystem[] =
"org.chromium.externalclearkey.crash";
- std::vector<base::string16> additional_param_names;
- std::vector<base::string16> additional_param_values;
- if (!IsPepperCdmAvailable(kExternalClearKeyPepperType,
- &additional_param_names,
- &additional_param_values))
+ std::vector<content::WebPluginMimeType::Param> additional_params;
+ if (!IsPepperCdmAvailable(kExternalClearKeyPepperType, &additional_params))
return;
concrete_key_systems->emplace_back(
@@ -389,11 +398,8 @@ static void AddPepperBasedWidevine(std::vector<std::unique_ptr<media::KeySystemP
// return;
//#endif // defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
- std::vector<base::string16> additional_param_names;
- std::vector<base::string16> additional_param_values;
- if (!IsPepperCdmAvailable(kWidevineCdmPluginMimeType,
- &additional_param_names,
- &additional_param_values)) {
+ std::vector<content::WebPluginMimeType::Param> additional_params;
+ if (!IsPepperCdmAvailable(kWidevineCdmPluginMimeType, &additional_params)) {
DVLOG(1) << "Widevine CDM is not currently available.";
return;
}
diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h
index 18cf129c2..11538b3f0 100644
--- a/src/core/renderer/content_renderer_client_qt.h
+++ b/src/core/renderer/content_renderer_client_qt.h
@@ -41,9 +41,14 @@
#include "content/public/renderer/content_renderer_client.h"
#include "components/spellcheck/spellcheck_build_features.h"
+#include "services/service_manager/public/cpp/local_interface_provider.h"
#include <QScopedPointer>
+namespace error_page {
+class Error;
+}
+
namespace visitedlink {
class VisitedLinkSlave;
}
@@ -58,7 +63,9 @@ class SpellCheck;
namespace QtWebEngineCore {
-class ContentRendererClientQt : public content::ContentRendererClient {
+class ContentRendererClientQt : public content::ContentRendererClient
+ , public service_manager::LocalInterfaceProvider
+{
public:
ContentRendererClientQt();
~ContentRendererClientQt();
@@ -69,6 +76,9 @@ public:
bool HasErrorPage(int http_status_code) override;
void GetNavigationErrorStrings(content::RenderFrame* renderFrame, const blink::WebURLRequest& failedRequest,
const blink::WebURLError& error, std::string* errorHtml, base::string16* errorDescription) override;
+ void GetNavigationErrorStringsForHttpStatusError(content::RenderFrame* render_frame, const blink::WebURLRequest& failed_request,
+ const GURL& unreachable_url, int http_status,
+ std::string* error_html, base::string16* error_description) override;
unsigned long long VisitedLinkHash(const char *canonicalUrl, size_t length) override;
bool IsLinkVisited(unsigned long long linkHash) override;
@@ -78,6 +88,13 @@ public:
void RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) override;
private:
+ // service_manager::LocalInterfaceProvider:
+ void GetInterface(const std::string& name, mojo::ScopedMessagePipeHandle request_handle) override;
+
+ void GetNavigationErrorStringsInternal(content::RenderFrame* renderFrame, const blink::WebURLRequest& failedRequest,
+ const error_page::Error& error, std::string* errorHtml, base::string16* errorDescription);
+
+
QScopedPointer<visitedlink::VisitedLinkSlave> m_visitedLinkSlave;
QScopedPointer<web_cache::WebCacheImpl> m_webCacheImpl;
#if BUILDFLAG(ENABLE_SPELLCHECK)
diff --git a/src/core/renderer/pepper/pepper_flash_renderer_host_qt.cpp b/src/core/renderer/pepper/pepper_flash_renderer_host_qt.cpp
index bac1d7c1f..5d21201ba 100644
--- a/src/core/renderer/pepper/pepper_flash_renderer_host_qt.cpp
+++ b/src/core/renderer/pepper/pepper_flash_renderer_host_qt.cpp
@@ -251,12 +251,13 @@ int32_t PepperFlashRendererHostQt::OnDrawGlyphs(
params.glyph_indices.empty())
return PP_ERROR_FAILED;
- int style = SkTypeface::kNormal;
- if (static_cast<PP_BrowserFont_Trusted_Weight>(params.font_desc.weight) >= PP_BROWSERFONT_TRUSTED_WEIGHT_BOLD)
- style |= SkTypeface::kBold;
+ int weight = (params.font_desc.weight + 1) * 100;
+ SkFontStyle::Slant slant = SkFontStyle::kUpright_Slant;
if (params.font_desc.italic)
- style |= SkTypeface::kItalic;
- sk_sp<SkTypeface> typeface(SkTypeface::MakeFromName(params.font_desc.face.c_str(), SkFontStyle::FromOldStyle(style)));
+ slant = SkFontStyle::kItalic_Slant;
+ SkFontStyle style(weight, SkFontStyle::kNormal_Width, slant);
+ sk_sp<SkTypeface> typeface(
+ SkTypeface::MakeFromName(params.font_desc.face.c_str(), style));
if (!typeface)
return PP_ERROR_FAILED;
diff --git a/src/core/renderer_host/pepper/pepper_host_factory_qt.cpp b/src/core/renderer_host/pepper/pepper_host_factory_qt.cpp
index 46cd16751..00ab4963b 100644
--- a/src/core/renderer_host/pepper/pepper_host_factory_qt.cpp
+++ b/src/core/renderer_host/pepper/pepper_host_factory_qt.cpp
@@ -86,7 +86,7 @@ std::unique_ptr<ppapi::host::ResourceHost> PepperHostFactoryQt::CreateResourceHo
case PpapiHostMsg_Flash_Create::ID:
return base::WrapUnique(new PepperFlashBrowserHostQt(host_, instance, resource));
case PpapiHostMsg_FlashClipboard_Create::ID: {
- scoped_refptr<ResourceMessageFilter> clipboard_filter(new chrome::PepperFlashClipboardMessageFilter);
+ scoped_refptr<ResourceMessageFilter> clipboard_filter(new PepperFlashClipboardMessageFilter);
return base::WrapUnique(new MessageFilterHost(
host_->GetPpapiHost(), instance, resource, clipboard_filter));
}
diff --git a/src/core/ssl_host_state_delegate_qt.cpp b/src/core/ssl_host_state_delegate_qt.cpp
index d7e86cfbc..9fa62cacb 100644
--- a/src/core/ssl_host_state_delegate_qt.cpp
+++ b/src/core/ssl_host_state_delegate_qt.cpp
@@ -47,13 +47,6 @@ namespace QtWebEngineCore {
// Mirrors implementation in aw_ssl_host_state_delegate.cc
-static net::SHA256HashValue getChainFingerprint256(const net::X509Certificate &cert)
-{
- net::SHA256HashValue fingerprint =
- net::X509Certificate::CalculateChainFingerprint256(cert.os_cert_handle(), cert.GetIntermediateCertificates());
- return fingerprint;
-}
-
CertPolicy::CertPolicy()
{
}
@@ -64,7 +57,7 @@ CertPolicy::~CertPolicy()
bool CertPolicy::Check(const net::X509Certificate& cert, net::CertStatus error) const
{
- net::SHA256HashValue fingerprint = getChainFingerprint256(cert);
+ net::SHA256HashValue fingerprint = cert.CalculateChainFingerprint256();
auto allowed_iter = m_allowed.find(fingerprint);
if ((allowed_iter != m_allowed.end()) && (allowed_iter->second & error) && ((allowed_iter->second & error) == error))
return true;
@@ -73,7 +66,7 @@ bool CertPolicy::Check(const net::X509Certificate& cert, net::CertStatus error)
void CertPolicy::Allow(const net::X509Certificate& cert, net::CertStatus error)
{
- net::SHA256HashValue fingerprint = getChainFingerprint256(cert);
+ net::SHA256HashValue fingerprint = cert.CalculateChainFingerprint256();
m_allowed[fingerprint] |= error;
}
diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h
index eb7c9d48b..023bed21e 100644
--- a/src/core/type_conversion.h
+++ b/src/core/type_conversion.h
@@ -132,6 +132,11 @@ inline gfx::Point toGfx(const QPoint& point)
return gfx::Point(point.x(), point.y());
}
+inline gfx::PointF toGfx(const QPointF& point)
+{
+ return gfx::PointF(point.x(), point.y());
+}
+
inline QRect toQt(const gfx::Rect &rect)
{
return QRect(rect.x(), rect.y(), rect.width(), rect.height());
diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp
index d3f461639..7f78cbc20 100644
--- a/src/core/url_request_context_getter_qt.cpp
+++ b/src/core/url_request_context_getter_qt.cpp
@@ -80,6 +80,7 @@
#include "net/url_request/ftp_protocol_handler.h"
#include "net/url_request/url_request_intercepting_job_factory.h"
#include "net/ftp/ftp_network_layer.h"
+#include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
#include "api/qwebengineurlschemehandler.h"
#include "browser_context_adapter.h"
@@ -188,6 +189,8 @@ void URLRequestContextGetterQt::updateStorageSettings()
new ProxyConfigServiceQt(
net::ProxyService::CreateSystemProxyConfigService(
content::BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)));
+ m_proxyResolverFactory = ChromeMojoProxyResolverFactory::CreateWithStrongBinding();
+
if (m_contextInitialized)
content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
base::Bind(&URLRequestContextGetterQt::generateAllStorage, this));
@@ -263,9 +266,9 @@ void URLRequestContextGetterQt::generateStorage()
m_dhcpProxyScriptFetcherFactory.reset(new net::DhcpProxyScriptFetcherFactory);
m_storage->set_proxy_service(content::CreateProxyServiceUsingMojoFactory(
- ChromeMojoProxyResolverFactory::GetInstance(),
+ std::move(m_proxyResolverFactory),
std::unique_ptr<net::ProxyConfigService>(proxyConfigService),
- new net::ProxyScriptFetcherImpl(m_urlRequestContext.get()),
+ std::make_unique<net::ProxyScriptFetcherImpl>(m_urlRequestContext.get()),
m_dhcpProxyScriptFetcherFactory->Create(m_urlRequestContext.get()),
host_resolver.get(),
nullptr /* NetLog */,
diff --git a/src/core/url_request_context_getter_qt.h b/src/core/url_request_context_getter_qt.h
index fd80d62c2..809e4190d 100644
--- a/src/core/url_request_context_getter_qt.h
+++ b/src/core/url_request_context_getter_qt.h
@@ -128,6 +128,7 @@ private:
content::URLRequestInterceptorScopedVector m_requestInterceptors;
std::unique_ptr<net::HttpNetworkSession> m_httpNetworkSession;
std::unique_ptr<net::HttpAuthPreferences> m_httpAuthPreferences;
+ proxy_resolver::mojom::ProxyResolverFactoryPtr m_proxyResolverFactory;
QList<QByteArray> m_installedCustomSchemes;
QWebEngineUrlRequestInterceptor* m_requestInterceptor;
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 081dbd28d..770f66007 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -119,7 +119,7 @@ static const int kHistoryStreamVersion = 3;
static QVariant fromJSValue(const base::Value *result)
{
QVariant ret;
- switch (result->GetType()) {
+ switch (result->type()) {
case base::Value::Type::NONE:
break;
case base::Value::Type::BOOLEAN:
@@ -428,7 +428,7 @@ void WebContentsAdapter::initialize(WebContentsAdapterClient *adapterClient)
rendererPrefs->use_custom_colors = true;
// Qt returns a flash time (the whole cycle) in ms, chromium expects just the interval in seconds
const int qtCursorFlashTime = QGuiApplication::styleHints()->cursorFlashTime();
- rendererPrefs->caret_blink_interval = 0.5 * static_cast<double>(qtCursorFlashTime) / 1000;
+ rendererPrefs->caret_blink_interval = base::TimeDelta::FromMillisecondsD(0.5 * static_cast<double>(qtCursorFlashTime));
rendererPrefs->user_agent_override = d->browserContextAdapter->httpUserAgent().toStdString();
rendererPrefs->accept_languages = d->browserContextAdapter->httpAcceptLanguageWithoutQualities().toStdString();
#if BUILDFLAG(ENABLE_WEBRTC)
@@ -1342,8 +1342,8 @@ void WebContentsAdapter::startDragging(QObject *dragSource, const content::DropD
if (d->webContents) {
content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
if (rvh) {
- rvh->GetWidget()->DragSourceEndedAt(gfx::Point(d->lastDragClientPos.x(), d->lastDragClientPos.y()),
- gfx::Point(d->lastDragScreenPos.x(), d->lastDragScreenPos.y()),
+ rvh->GetWidget()->DragSourceEndedAt(gfx::PointF(d->lastDragClientPos.x(), d->lastDragClientPos.y()),
+ gfx::PointF(d->lastDragScreenPos.x(), d->lastDragScreenPos.y()),
d->currentDropAction);
rvh->GetWidget()->DragSourceSystemDragEnded();
}
@@ -1408,7 +1408,7 @@ static void fillDropDataFromMimeData(content::DropData *dropData, const QMimeDat
}
}
-void WebContentsAdapter::enterDrag(QDragEnterEvent *e, const QPoint &screenPos)
+void WebContentsAdapter::enterDrag(QDragEnterEvent *e, const QPointF &screenPos)
{
Q_D(WebContentsAdapter);
@@ -1420,7 +1420,7 @@ void WebContentsAdapter::enterDrag(QDragEnterEvent *e, const QPoint &screenPos)
content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
rvh->GetWidget()->FilterDropData(d->currentDropData.get());
- rvh->GetWidget()->DragTargetDragEnter(*d->currentDropData, toGfx(e->pos()), toGfx(screenPos),
+ rvh->GetWidget()->DragTargetDragEnter(*d->currentDropData, toGfx(e->posF()), toGfx(screenPos),
toWeb(e->possibleActions()),
flagsFromModifiers(e->keyboardModifiers()));
}
@@ -1462,11 +1462,11 @@ static int toWeb(Qt::KeyboardModifiers modifiers)
return result;
}
-Qt::DropAction WebContentsAdapter::updateDragPosition(QDragMoveEvent *e, const QPoint &screenPos)
+Qt::DropAction WebContentsAdapter::updateDragPosition(QDragMoveEvent *e, const QPointF &screenPos)
{
Q_D(WebContentsAdapter);
content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
- d->lastDragClientPos = toGfx(e->pos());
+ d->lastDragClientPos = toGfx(e->posF());
d->lastDragScreenPos = toGfx(screenPos);
rvh->GetWidget()->DragTargetDragOver(d->lastDragClientPos, d->lastDragScreenPos, toWeb(e->possibleActions()),
toWeb(e->mouseButtons()) | toWeb(e->keyboardModifiers()));
@@ -1503,7 +1503,7 @@ void WebContentsAdapter::updateDragAction(int action)
d->currentDropAction = static_cast<blink::WebDragOperation>(action);
}
-void WebContentsAdapter::endDragging(const QPoint &clientPos, const QPoint &screenPos)
+void WebContentsAdapter::endDragging(const QPointF &clientPos, const QPointF &screenPos)
{
Q_D(WebContentsAdapter);
content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
@@ -1586,7 +1586,7 @@ FaviconManager *WebContentsAdapter::faviconManager()
void WebContentsAdapter::viewSource()
{
Q_D(WebContentsAdapter);
- d->webContents->ViewSource();
+ d->webContents->GetMainFrame()->ViewSource();
}
bool WebContentsAdapter::canViewSource()
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 367e44397..54b07b4ff 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -173,10 +173,10 @@ public:
void startDragging(QObject *dragSource, const content::DropData &dropData,
Qt::DropActions allowedActions, const QPixmap &pixmap, const QPoint &offset);
- void enterDrag(QDragEnterEvent *e, const QPoint &screenPos);
- Qt::DropAction updateDragPosition(QDragMoveEvent *e, const QPoint &screenPos);
+ void enterDrag(QDragEnterEvent *e, const QPointF &screenPos);
+ Qt::DropAction updateDragPosition(QDragMoveEvent *e, const QPointF &screenPos);
void updateDragAction(int action);
- void endDragging(const QPoint &clientPos, const QPoint &screenPos);
+ void endDragging(const QPointF &clientPos, const QPointF &screenPos);
void leaveDrag();
void printToPDF(const QPageLayout&, const QString&);
quint64 printToPDFCallbackResult(const QPageLayout &,
diff --git a/src/core/web_contents_adapter_p.h b/src/core/web_contents_adapter_p.h
index 50096c92e..5b902fc94 100644
--- a/src/core/web_contents_adapter_p.h
+++ b/src/core/web_contents_adapter_p.h
@@ -53,10 +53,10 @@
#include "web_contents_adapter.h"
-#include <base/callback.h>
+#include "base/callback.h"
#include "base/memory/ref_counted.h"
-#include <ui/gfx/geometry/point.h>
-#include <third_party/WebKit/public/platform/WebDragOperation.h>
+#include "ui/gfx/geometry/point_f.h"
+#include "third_party/WebKit/public/platform/WebDragOperation.h"
#include <QScopedPointer>
#include <QSharedPointer>
@@ -98,8 +98,8 @@ public:
std::unique_ptr<content::DropData> currentDropData;
blink::WebDragOperation currentDropAction;
bool updateDragActionCalled;
- gfx::Point lastDragClientPos;
- gfx::Point lastDragScreenPos;
+ gfx::PointF lastDragClientPos;
+ gfx::PointF lastDragScreenPos;
std::unique_ptr<QTemporaryDir> dndTmpDir;
DevToolsFrontendQt *devToolsFrontend;
};
diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp
index 0ad3c1c38..1e7e718da 100644
--- a/src/core/web_contents_view_qt.cpp
+++ b/src/core/web_contents_view_qt.cpp
@@ -258,5 +258,20 @@ void WebContentsViewQt::GetScreenInfo(content::ScreenInfo* results) const
rwhv->GetScreenInfo(results);
}
+void WebContentsViewQt::FocusThroughTabTraversal(bool reverse)
+{
+ content::WebContentsImpl *web_contents = static_cast<content::WebContentsImpl*>(m_webContents);
+ if (web_contents->ShowingInterstitialPage()) {
+ web_contents->GetInterstitialPage()->FocusThroughTabTraversal(reverse);
+ return;
+ }
+ content::RenderWidgetHostView *fullscreen_view = web_contents->GetFullscreenRenderWidgetHostView();
+ if (fullscreen_view) {
+ fullscreen_view->Focus();
+ return;
+ }
+ web_contents->GetRenderViewHost()->SetInitialFocus(reverse);
+}
+
} // namespace QtWebEngineCore
diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h
index 5db4e2879..1e4b27535 100644
--- a/src/core/web_contents_view_qt.h
+++ b/src/core/web_contents_view_qt.h
@@ -120,6 +120,9 @@ public:
void GetScreenInfo(content::ScreenInfo* results) const override;
+ void FocusThroughTabTraversal(bool reverse) override;
+
+
#if defined(OS_MACOSX)
void SetAllowOtherViews(bool allow) override { m_allowOtherViews = allow; }
bool GetAllowOtherViews() const override { return m_allowOtherViews; }
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index e6907cb8a..b9820d4df 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -72,6 +72,7 @@
#include "gpu/ipc/host/gpu_switches.h"
#include "net/base/port_util.h"
#include "ppapi/features/features.h"
+#include "services/service_manager/sandbox/switches.h"
#include "ui/events/event_switches.h"
#include "ui/native_theme/native_theme_features.h"
#include "ui/gl/gl_switches.h"
@@ -332,7 +333,7 @@ WebEngineContext::WebEngineContext()
#if defined(Q_OS_WIN)
parsedCommandLine->AppendSwitch(switches::kNoSandbox);
#elif defined(Q_OS_LINUX)
- parsedCommandLine->AppendSwitch(switches::kDisableSetuidSandbox);
+ parsedCommandLine->AppendSwitch(service_manager::switches::kDisableSetuidSandbox);
#endif
} else {
parsedCommandLine->AppendSwitch(switches::kNoSandbox);
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index d16c2bd15..4cd4b6452 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -276,10 +276,10 @@ void WebEngineSettings::initDefaults()
QtWebEngineCore::WebEngineContext::current();
base::CommandLine* commandLine = base::CommandLine::ForCurrentProcess();
bool smoothScrolling = commandLine->HasSwitch(switches::kEnableSmoothScrolling);
- bool webGL = content::GpuProcessHost::gpu_enabled() &&
+ bool webGL =
!commandLine->HasSwitch(switches::kDisable3DAPIs) &&
!commandLine->HasSwitch(switches::kDisableWebGL);
- bool accelerated2dCanvas = content::GpuProcessHost::gpu_enabled() &&
+ bool accelerated2dCanvas =
!commandLine->HasSwitch(switches::kDisableAccelerated2dCanvas);
bool allowRunningInsecureContent = commandLine->HasSwitch(switches::kAllowRunningInsecureContent);
s_defaultAttributes.insert(ScrollAnimatorEnabled, smoothScrolling);
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp
index 4fb89d4e6..44c04e3e6 100644
--- a/src/core/web_event_factory.cpp
+++ b/src/core/web_event_factory.cpp
@@ -1203,15 +1203,13 @@ static WebPointerProperties::PointerType pointerTypeForTabletEvent(const QTablet
WebMouseEvent WebEventFactory::toWebMouseEvent(QMouseEvent *ev, double dpiScale)
{
WebMouseEvent webKitEvent(webEventTypeForEvent(ev),
- ev->x() / dpiScale,
- ev->y() / dpiScale,
- ev->globalX(),
- ev->globalY(),
+ WebFloatPoint(ev->x() / dpiScale, ev->y() / dpiScale),
+ WebFloatPoint(ev->globalX(), ev->globalY()),
+ mouseButtonForEvent<QMouseEvent>(ev),
+ 0,
modifiersForEvent(ev),
currentTimeForEvent(ev));
- webKitEvent.button = mouseButtonForEvent<QMouseEvent>(ev);
- webKitEvent.click_count = 0;
webKitEvent.pointer_type = WebPointerProperties::PointerType::kMouse;
return webKitEvent;
@@ -1235,10 +1233,10 @@ WebMouseEvent WebEventFactory::toWebMouseEvent(QHoverEvent *ev, double dpiScale)
WebMouseEvent WebEventFactory::toWebMouseEvent(QTabletEvent *ev, double dpiScale)
{
WebMouseEvent webKitEvent(webEventTypeForEvent(ev),
- ev->x() / dpiScale,
- ev->y() / dpiScale,
- ev->globalX(),
- ev->globalY(),
+ WebFloatPoint(ev->x() / dpiScale, ev->y() / dpiScale),
+ WebFloatPoint(ev->globalX(), ev->globalY()),
+ mouseButtonForEvent<QTabletEvent>(ev),
+ 0,
modifiersForEvent(ev),
currentTimeForEvent(ev));
@@ -1248,9 +1246,6 @@ WebMouseEvent WebEventFactory::toWebMouseEvent(QTabletEvent *ev, double dpiScale
webKitEvent.tangential_pressure = ev->tangentialPressure();
webKitEvent.twist = ev->rotation();
webKitEvent.pointer_type = pointerTypeForTabletEvent(ev);
-
- webKitEvent.button = mouseButtonForEvent<QTabletEvent>(ev);
- webKitEvent.click_count = 0;
return webKitEvent;
}
diff --git a/tools/scripts/git_submodule.py b/tools/scripts/git_submodule.py
index fcf2af37a..c2f5d9c31 100644
--- a/tools/scripts/git_submodule.py
+++ b/tools/scripts/git_submodule.py
@@ -81,8 +81,10 @@ class DEPSParser:
if len(rev) == 40: # Length of a git shasum
submodule.ref = rev
+ elif len(rev) == 0:
+ submodule.ref = 'master'
else:
- sys.exit("Invalid shasum: " + str(rev))
+ sys.exit("Invalid shasum: " + str(scope[dep]))
submodules.append(submodule)
return submodules
diff --git a/tools/scripts/init-repository.py b/tools/scripts/init-repository.py
index dc5cdb8ce..a5bef10c3 100755
--- a/tools/scripts/init-repository.py
+++ b/tools/scripts/init-repository.py
@@ -79,8 +79,8 @@ def updateLastChange():
os.chdir(chromium_src)
print 'updating LASTCHANGE files'
subprocess.call(['python', 'build/util/lastchange.py', '-o', 'build/util/LASTCHANGE'])
- subprocess.call(['python', 'build/util/lastchange.py', '-s', 'third_party/WebKit', '-o', 'build/util/LASTCHANGE.blink'])
subprocess.call(['python', 'build/util/lastchange.py', '-m', 'SKIA_COMMIT_HASH', '-s', 'third_party/skia', '--header', 'skia/ext/skia_commit_hash.h'])
+ subprocess.call(['python', 'build/util/lastchange.py', '-m', 'GPU_LISTS_VERSION', '--revision-id-only', '--header', 'gpu/config/gpu_lists_version.h'])
os.chdir(currentDir)
def initUpstreamSubmodules():
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index a6274f0aa..0b279f5d3 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -92,18 +92,18 @@ def isInChromiumBlacklist(file_path):
not 'third_party/chromevox' in file_path and
not 'media/webrtc/desktop_media_list.h' in file_path and
not 'media/webrtc/desktop_streams_registry.' in file_path and
- not 'browser/custom_handlers/protocol_handler_registry.' in file_path and
- not 'browser/custom_handlers/protocol_handler_registry_factory.' in file_path and
not 'browser/net/chrome_mojo_proxy_resolver_factory.' in file_path and
+ not '/browser/custom_handlers/' in file_path and
not '/browser/devtools/' in file_path and
not '/browser/ui/webui/' in file_path and
not 'common/chrome_constants.' in file_path and
not 'common/chrome_paths' in file_path and
not 'common/chrome_switches.' in file_path and
not 'common/content_restriction.h' in file_path and
- not 'common/custom_handlers/protocol_handler.' in file_path and
+ not 'common/custom_handlers/' in file_path and
not 'common/spellcheck_' in file_path and
not 'common/url_constants' in file_path and
+ not 'common/webui_url_constants' in file_path and
not '/extensions/api/' in file_path and
not '/extensions/browser/api/' in file_path and
not '/extensions/permissions/' in file_path and
@@ -319,8 +319,8 @@ def exportChromium():
files = listFilesInCurrentRepository()
# Add LASTCHANGE files which are not tracked by git.
files.append('build/util/LASTCHANGE')
- files.append('build/util/LASTCHANGE.blink')
files.append('skia/ext/skia_commit_hash.h')
+ files.append('gpu/config/gpu_lists_version.h')
print 'copying files to ' + third_party_chromium
for i in xrange(len(files)):
printProgress(i+1, len(files))
diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py
index 7a22765ef..6e2ab7cda 100644
--- a/tools/scripts/version_resolver.py
+++ b/tools/scripts/version_resolver.py
@@ -38,8 +38,8 @@ import json
import urllib2
import git_submodule as GitSubmodule
-chromium_version = '63.0.3239.117'
-chromium_branch = '3239'
+chromium_version = '64.0.3282.139'
+chromium_branch = '3282'
ninja_version = 'v1.8.2'
json_url = 'http://omahaproxy.appspot.com/all.json'