summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------src/3rdparty0
-rw-r--r--src/core/content_browser_client_qt.cpp16
-rw-r--r--src/core/content_browser_client_qt.h1
-rw-r--r--src/core/content_main_delegate_qt.cpp2
-rw-r--r--src/core/render_widget_host_view_qt.cpp10
-rw-r--r--src/core/render_widget_host_view_qt.h2
-rw-r--r--src/core/render_widget_host_view_qt_delegate.h2
-rw-r--r--src/core/user_script_controller_host.cpp7
-rw-r--r--src/core/user_script_controller_host.h2
-rw-r--r--src/core/web_contents_adapter.cpp3
-rw-r--r--src/core/web_engine_library_info.cpp11
-rw-r--r--src/core/web_engine_library_info.h1
-rw-r--r--src/webengine/api/qquickwebenginehistory_p.h4
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.cpp2
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginecertificateerror.h2
-rw-r--r--src/webenginewidgets/api/qwebenginehistory.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h4
-rw-r--r--src/webenginewidgets/api/qwebengineview.h2
-rw-r--r--src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp5
-rw-r--r--tests/auto/quick/qmltests/tst_qmltests.cpp3
21 files changed, 67 insertions, 16 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject 6b1784803e5333987c5e86087ec782a3eaacfa7
+Subproject 6d7b9ab74288eab0f846e5fa92854c9a49bee19
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 28b3f691c..16f0b00e3 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -48,8 +48,10 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/resource_dispatcher_host.h"
#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
#include "content/public/common/url_constants.h"
+#include "ui/base/ui_base_switches.h"
#include "ui/gfx/screen.h"
#include "ui/gl/gl_context.h"
#include "ui/gl/gl_implementation.h"
@@ -69,6 +71,7 @@
#include "resource_dispatcher_host_delegate_qt.h"
#include "user_script_controller_host.h"
#include "web_contents_delegate_qt.h"
+#include "web_engine_library_info.h"
#if defined(ENABLE_PLUGINS)
#include "content/public/browser/browser_ppapi_host.h"
@@ -338,7 +341,7 @@ void ContentBrowserClientQt::RenderProcessWillLaunch(content::RenderProcessHost*
{
// FIXME: Add a settings variable to enable/disable the file scheme.
content::ChildProcessSecurityPolicy::GetInstance()->GrantScheme(host->GetID(), url::kFileScheme);
- static_cast<BrowserContextQt*>(host->GetBrowserContext())->m_adapter->userScriptController()->renderProcessHostCreated(host);
+ static_cast<BrowserContextQt*>(host->GetBrowserContext())->m_adapter->userScriptController()->renderProcessStartedWithHost(host);
}
void ContentBrowserClientQt::ResourceDispatcherHostCreated()
@@ -447,7 +450,16 @@ content::LocationProvider *ContentBrowserClientQt::OverrideSystemLocationProvide
std::string ContentBrowserClientQt::GetApplicationLocale()
{
- return QLocale().bcp47Name().toStdString();
+ return WebEngineLibraryInfo::getApplicationLocale();
+}
+
+void ContentBrowserClientQt::AppendExtraCommandLineSwitches(base::CommandLine* command_line, int child_process_id)
+{
+ Q_UNUSED(child_process_id);
+
+ std::string processType = command_line->GetSwitchValueASCII(switches::kProcessType);
+ if (processType == switches::kZygoteProcess)
+ command_line->AppendSwitchASCII(switches::kLang, GetApplicationLocale());
}
#if defined(ENABLE_PLUGINS)
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index 84c559c5d..141c82a8f 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -119,6 +119,7 @@ public:
virtual blink::WebNotificationPermission CheckDesktopNotificationPermission(const GURL& source_origin, content::ResourceContext* context, int render_process_id) Q_DECL_OVERRIDE;
virtual std::string GetApplicationLocale() Q_DECL_OVERRIDE;
+ virtual void AppendExtraCommandLineSwitches(base::CommandLine* command_line, int child_process_id) Q_DECL_OVERRIDE;
#if defined(ENABLE_PLUGINS)
virtual void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) Q_DECL_OVERRIDE;
diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp
index b8e40a448..4003823b1 100644
--- a/src/core/content_main_delegate_qt.cpp
+++ b/src/core/content_main_delegate_qt.cpp
@@ -67,7 +67,7 @@ static base::StringPiece PlatformResourceProvider(int key) {
void ContentMainDelegateQt::PreSandboxStartup()
{
net::NetModule::SetResourceProvider(PlatformResourceProvider);
- ui::ResourceBundle::InitSharedInstanceWithLocale(QLocale().name().toStdString(), 0, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
+ ui::ResourceBundle::InitSharedInstanceWithLocale(WebEngineLibraryInfo::getApplicationLocale(), 0, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
// Suppress info, warning and error messages per default.
int logLevel = logging::LOG_FATAL;
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 0f9286252..572bc340c 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -715,6 +715,16 @@ void RenderWidgetHostViewQt::notifyResize()
m_host->WasResized();
}
+void RenderWidgetHostViewQt::notifyShown()
+{
+ WasShown();
+}
+
+void RenderWidgetHostViewQt::notifyHidden()
+{
+ WasHidden();
+}
+
void RenderWidgetHostViewQt::windowBoundsChanged()
{
m_host->SendScreenRects();
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 68330a486..248c52f6e 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -159,6 +159,8 @@ public:
// Overridden from RenderWidgetHostViewQtDelegateClient.
virtual QSGNode *updatePaintNode(QSGNode *) Q_DECL_OVERRIDE;
virtual void notifyResize() Q_DECL_OVERRIDE;
+ virtual void notifyShown() Q_DECL_OVERRIDE;
+ virtual void notifyHidden() Q_DECL_OVERRIDE;
virtual void windowBoundsChanged() Q_DECL_OVERRIDE;
virtual void windowChanged() Q_DECL_OVERRIDE;
virtual bool forwardEvent(QEvent *) Q_DECL_OVERRIDE;
diff --git a/src/core/render_widget_host_view_qt_delegate.h b/src/core/render_widget_host_view_qt_delegate.h
index a12f3055e..da595b91f 100644
--- a/src/core/render_widget_host_view_qt_delegate.h
+++ b/src/core/render_widget_host_view_qt_delegate.h
@@ -64,6 +64,8 @@ public:
virtual ~RenderWidgetHostViewQtDelegateClient() { }
virtual QSGNode *updatePaintNode(QSGNode *) = 0;
virtual void notifyResize() = 0;
+ virtual void notifyShown() = 0;
+ virtual void notifyHidden() = 0;
virtual void windowBoundsChanged() = 0;
virtual void windowChanged() = 0;
virtual bool forwardEvent(QEvent *) = 0;
diff --git a/src/core/user_script_controller_host.cpp b/src/core/user_script_controller_host.cpp
index 69284dbe1..227a639b1 100644
--- a/src/core/user_script_controller_host.cpp
+++ b/src/core/user_script_controller_host.cpp
@@ -186,8 +186,11 @@ void UserScriptControllerHost::reserve(WebContentsAdapter *adapter, int count)
m_perContentsScripts[adapter->webContents()].reserve(count);
}
-void UserScriptControllerHost::renderProcessHostCreated(content::RenderProcessHost *renderer)
+void UserScriptControllerHost::renderProcessStartedWithHost(content::RenderProcessHost *renderer)
{
+ if (m_observedProcesses.contains(renderer))
+ return;
+
if (m_renderProcessObserver.isNull())
m_renderProcessObserver.reset(new RenderProcessObserverHelper(this));
renderer->AddObserver(m_renderProcessObserver.data());
@@ -207,6 +210,8 @@ UserScriptControllerHost::UserScriptControllerHost()
UserScriptControllerHost::~UserScriptControllerHost()
{
+ Q_FOREACH (content::RenderProcessHost *renderer, m_observedProcesses)
+ renderer->RemoveObserver(m_renderProcessObserver.data());
}
} // namespace
diff --git a/src/core/user_script_controller_host.h b/src/core/user_script_controller_host.h
index 293b5d2dd..49c96b333 100644
--- a/src/core/user_script_controller_host.h
+++ b/src/core/user_script_controller_host.h
@@ -66,7 +66,7 @@ public:
void reserve(WebContentsAdapter *adapter, int count);
const QSet<UserScript> registeredScripts(WebContentsAdapter *adapter) const;
- void renderProcessHostCreated(content::RenderProcessHost *renderer);
+ void renderProcessStartedWithHost(content::RenderProcessHost *renderer);
private:
Q_DISABLE_COPY(UserScriptControllerHost)
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 718003c45..f0b0a0d94 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -44,8 +44,6 @@
#include "browser_accessibility_qt.h"
#include "browser_context_adapter.h"
#include "browser_context_qt.h"
-#include "content_browser_client_qt.h"
-#include "javascript_dialog_manager_qt.h"
#include "media_capture_devices_dispatcher.h"
#include "qt_render_view_observer_host.h"
#include "type_conversion.h"
@@ -54,7 +52,6 @@
#include "web_contents_view_qt.h"
#include "web_engine_context.h"
#include "web_engine_settings.h"
-#include "web_engine_visited_links_manager.h"
#include "base/values.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp
index 17f6b2a05..e78ab09e7 100644
--- a/src/core/web_engine_library_info.cpp
+++ b/src/core/web_engine_library_info.cpp
@@ -38,9 +38,11 @@
#include "web_engine_library_info.h"
#include "base/base_paths.h"
+#include "base/command_line.h"
#include "base/files/file_util.h"
#include "content/public/common/content_paths.h"
#include "ui/base/ui_base_paths.h"
+#include "ui/base/ui_base_switches.h"
#include "type_conversion.h"
#include <QByteArray>
@@ -289,3 +291,12 @@ base::string16 WebEngineLibraryInfo::getApplicationName()
{
return toString16(qApp->applicationName());
}
+
+std::string WebEngineLibraryInfo::getApplicationLocale()
+{
+ CommandLine *parsedCommandLine = CommandLine::ForCurrentProcess();
+ if (!parsedCommandLine->HasSwitch(switches::kLang))
+ return QLocale().bcp47Name().toStdString();
+
+ return parsedCommandLine->GetSwitchValueASCII(switches::kLang);
+}
diff --git a/src/core/web_engine_library_info.h b/src/core/web_engine_library_info.h
index cb7301b63..e85258078 100644
--- a/src/core/web_engine_library_info.h
+++ b/src/core/web_engine_library_info.h
@@ -49,6 +49,7 @@ public:
static base::FilePath getPath(int key);
// Called by localized_error in our custom chrome layer
static base::string16 getApplicationName();
+ static std::string getApplicationLocale();
};
diff --git a/src/webengine/api/qquickwebenginehistory_p.h b/src/webengine/api/qquickwebenginehistory_p.h
index cb6aff2bc..9b3eeb617 100644
--- a/src/webengine/api/qquickwebenginehistory_p.h
+++ b/src/webengine/api/qquickwebenginehistory_p.h
@@ -67,7 +67,7 @@ public:
private:
QQuickWebEngineHistoryListModel();
- Q_DECLARE_PRIVATE(QQuickWebEngineHistoryListModel);
+ Q_DECLARE_PRIVATE(QQuickWebEngineHistoryListModel)
QScopedPointer<QQuickWebEngineHistoryListModelPrivate> d_ptr;
friend class QQuickWebEngineHistory;
@@ -98,7 +98,7 @@ public:
private:
QQuickWebEngineHistory();
- Q_DECLARE_PRIVATE(QQuickWebEngineHistory);
+ Q_DECLARE_PRIVATE(QQuickWebEngineHistory)
QScopedPointer<QQuickWebEngineHistoryPrivate> d_ptr;
};
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
index 0a534ac2c..a3999ccab 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -120,11 +120,13 @@ void RenderWidgetHostViewQtDelegateQuick::unlockMouse()
void RenderWidgetHostViewQtDelegateQuick::show()
{
setVisible(true);
+ m_client->notifyShown();
}
void RenderWidgetHostViewQtDelegateQuick::hide()
{
setVisible(false);
+ m_client->notifyHidden();
}
bool RenderWidgetHostViewQtDelegateQuick::isVisible() const
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp
index 39c48ea5c..be240a8ae 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp
@@ -79,11 +79,13 @@ QRectF RenderWidgetHostViewQtDelegateQuickWindow::contentsRect() const
void RenderWidgetHostViewQtDelegateQuickWindow::show()
{
QQuickWindow::show();
+ m_realDelegate->show();
}
void RenderWidgetHostViewQtDelegateQuickWindow::hide()
{
QQuickWindow::hide();
+ m_realDelegate->hide();
}
bool RenderWidgetHostViewQtDelegateQuickWindow::isVisible() const
diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.h b/src/webenginewidgets/api/qwebenginecertificateerror.h
index 4ada5560d..90b23208c 100644
--- a/src/webenginewidgets/api/qwebenginecertificateerror.h
+++ b/src/webenginewidgets/api/qwebenginecertificateerror.h
@@ -75,7 +75,7 @@ public:
private:
Q_DISABLE_COPY(QWebEngineCertificateError)
- Q_DECLARE_PRIVATE(QWebEngineCertificateError);
+ Q_DECLARE_PRIVATE(QWebEngineCertificateError)
QScopedPointer<QWebEngineCertificateErrorPrivate> d_ptr;
};
diff --git a/src/webenginewidgets/api/qwebenginehistory.h b/src/webenginewidgets/api/qwebenginehistory.h
index f7f2db81e..0471e28e6 100644
--- a/src/webenginewidgets/api/qwebenginehistory.h
+++ b/src/webenginewidgets/api/qwebenginehistory.h
@@ -67,7 +67,7 @@ public:
bool isValid() const;
private:
QWebEngineHistoryItem(QWebEngineHistoryItemPrivate *priv);
- Q_DECLARE_PRIVATE_D(d.data(), QWebEngineHistoryItem);
+ Q_DECLARE_PRIVATE_D(d.data(), QWebEngineHistoryItem)
QExplicitlySharedDataPointer<QWebEngineHistoryItemPrivate> d;
friend class QWebEngineHistory;
friend class QWebEngineHistoryPrivate;
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 63892d197..4414ed1d5 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -125,7 +125,7 @@ public:
FindBackward = 1,
FindCaseSensitively = 2,
};
- Q_DECLARE_FLAGS(FindFlags, FindFlag);
+ Q_DECLARE_FLAGS(FindFlags, FindFlag)
enum WebWindowType {
WebBrowserWindow,
@@ -270,7 +270,7 @@ protected:
virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame);
private:
- Q_DECLARE_PRIVATE(QWebEnginePage);
+ Q_DECLARE_PRIVATE(QWebEnginePage)
QScopedPointer<QWebEnginePagePrivate> d_ptr;
#ifndef QT_NO_ACTION
Q_PRIVATE_SLOT(d_func(), void _q_webActionTriggered(bool checked))
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index 747dc8717..6b37dbf39 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -120,7 +120,7 @@ protected:
virtual bool event(QEvent*) Q_DECL_OVERRIDE;
private:
- Q_DECLARE_PRIVATE(QWebEngineView);
+ Q_DECLARE_PRIVATE(QWebEngineView)
QScopedPointer<QWebEngineViewPrivate> d_ptr;
friend class QWebEnginePage;
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
index 865d0f93f..d615b0f9c 100644
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
@@ -136,13 +136,16 @@ void RenderWidgetHostViewQtDelegateWidget::show()
{
// Check if we're attached to a QWebEngineView, we don't
// want to show anything else than popups as top-level.
- if (parent() || m_isPopup)
+ if (parent() || m_isPopup) {
QOpenGLWidget::show();
+ m_client->notifyShown();
+ }
}
void RenderWidgetHostViewQtDelegateWidget::hide()
{
QOpenGLWidget::hide();
+ m_client->notifyHidden();
}
bool RenderWidgetHostViewQtDelegateWidget::isVisible() const
diff --git a/tests/auto/quick/qmltests/tst_qmltests.cpp b/tests/auto/quick/qmltests/tst_qmltests.cpp
index 4f4f847be..1ef8be582 100644
--- a/tests/auto/quick/qmltests/tst_qmltests.cpp
+++ b/tests/auto/quick/qmltests/tst_qmltests.cpp
@@ -49,6 +49,9 @@ int main(int argc, char **argv)
qputenv("QML2_IMPORT_PATH", QByteArray(TESTS_SOURCE_DIR "qmltests/mock-delegates"));
QScopedPointer<Application> app;
+ // Force to use English language for testing due to error message checks
+ QLocale::setDefault(QLocale("en"));
+
if (!QCoreApplication::instance())
app.reset(new Application(argc, argv));
QtWebEngine::initialize();