summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2014-05-16 13:34:31 +0200
committerAndras Becsi <andras.becsi@theqtcompany.com>2014-12-09 10:54:27 +0100
commit5d9c49272fcc780ae66355dc8429b26d61a6fc86 (patch)
tree4a9a9783742b581fa4f5617ce3114b4b2f562921
parent1598d3566c7a8eae1f10acc168f7abfce9f133c5 (diff)
downloadqtwebengine-chromium-5d9c49272fcc780ae66355dc8429b26d61a6fc86.tar.gz
<chromium> Fix Renderer and GPU threads on windows
These threads are using the UI message loop on Windows per default. This won't work since the UI message loop is handled by Qt and the Renderer and GPU threads won't work with it properly. Force these threads for using the default message loop as they use it on Linux platform. Change-Id: I8b04ba9070912378cf1d13173ddff48e98f9a49b Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
-rw-r--r--chromium/content/browser/browser_main_loop.cc2
-rw-r--r--chromium/content/browser/renderer_host/render_process_host_impl.cc2
-rw-r--r--chromium/content/renderer/renderer_main.cc2
3 files changed, 4 insertions, 2 deletions
diff --git a/chromium/content/browser/browser_main_loop.cc b/chromium/content/browser/browser_main_loop.cc
index c7dd81bcf36..af47b77c820 100644
--- a/chromium/content/browser/browser_main_loop.cc
+++ b/chromium/content/browser/browser_main_loop.cc
@@ -680,7 +680,7 @@ int BrowserMainLoop::CreateThreads() {
"BrowserMainLoop::CreateThreads:start",
"Thread", "BrowserThread::FILE");
thread_to_start = &file_thread_;
-#if defined(OS_WIN)
+#if defined(OS_WIN) && !defined(TOOLKIT_QT)
// On Windows, the FILE thread needs to be have a UI message loop
// which pumps messages in such a way that Google Update can
// communicate back to us.
diff --git a/chromium/content/browser/renderer_host/render_process_host_impl.cc b/chromium/content/browser/renderer_host/render_process_host_impl.cc
index c582a6e97a6..f8040723f2a 100644
--- a/chromium/content/browser/renderer_host/render_process_host_impl.cc
+++ b/chromium/content/browser/renderer_host/render_process_host_impl.cc
@@ -594,7 +594,7 @@ bool RenderProcessHostImpl::Init() {
in_process_renderer_.reset(g_renderer_main_thread_factory(channel_id));
base::Thread::Options options;
-#if defined(OS_WIN) && !defined(OS_MACOSX)
+#if defined(OS_WIN) && !defined(OS_MACOSX) && !defined(TOOLKIT_QT)
// In-process plugins require this to be a UI message loop.
options.message_loop_type = base::MessageLoop::TYPE_UI;
#else
diff --git a/chromium/content/renderer/renderer_main.cc b/chromium/content/renderer/renderer_main.cc
index 706480c5f88..1904816045b 100644
--- a/chromium/content/renderer/renderer_main.cc
+++ b/chromium/content/renderer/renderer_main.cc
@@ -149,6 +149,8 @@ int RendererMain(const MainFunctionParams& parameters) {
// http://crbug.com/306348#c24 for details.
scoped_ptr<base::MessagePump> pump(new base::MessagePumpNSRunLoop());
base::MessageLoop main_message_loop(pump.Pass());
+#elif defined(OS_WIN) && defined(TOOLKIT_QT)
+ base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT);
#else
// The main message loop of the renderer services doesn't have IO or UI tasks.
base::MessageLoop main_message_loop;