diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-05-07 16:40:26 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-08 18:46:56 +0200 |
commit | ac5cdf7600948a3e403ca3262d7597dc198a0755 (patch) | |
tree | 555aeb2793b43ea49e6f305aec0093d6aab868e2 /src/core/content_browser_client_qt.cpp | |
parent | 1ca3a574117bdd8e67381b178a823e7d695f4bfd (diff) |
Fix a crash when attempting to drag
Q_UNREACHABLE in RenderWidgetHostViewQt::GetNativeView is now called
through RenderViewHostImpl::OnStartDragging since the last Chromium
update.
Even after removing this, OnStartDragging will now also try fetching
the device pixel ratio through gfx::Screen::GetNativeScreen().
Provide a dummy implementation of gfx::Screen only to avoid the crash,
the class still doesn't do anything and is filled with Q_UNREACHABLEs
to catch if any of those methods are reached in a future Chromium
update.
Change-Id: I2e9dafab5e4622df97100dd7a859523067635118
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'src/core/content_browser_client_qt.cpp')
-rw-r--r-- | src/core/content_browser_client_qt.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 8945ad0e5..200ebd35f 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -49,11 +49,13 @@ #include "content/public/browser/resource_dispatcher_host.h" #include "content/public/common/main_function_params.h" #include "content/public/common/url_constants.h" +#include "ui/gfx/screen.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_share_group.h" #include "browser_context_qt.h" +#include "desktop_screen_qt.h" #include "dev_tools_http_handler_delegate_qt.h" #include "media_capture_devices_dispatcher.h" #include "resource_dispatcher_host_delegate_qt.h" @@ -186,6 +188,8 @@ public: int PreCreateThreads() Q_DECL_OVERRIDE { base::ThreadRestrictions::SetIOAllowed(true); + // Like ChromeBrowserMainExtraPartsAura::PreCreateThreads does. + gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, new DesktopScreenQt); return 0; } |