Reland r124453. The change was reverted in 140030 to be merged with M20.
Original CL:
---
WebWidgetClient::screenInfo() no longer does a synchronous IPC.
Instead it grabs the necessary info from a cached WebScreenInfo factory.
BUG=111401
TEST=Manually
Review URL: https://chromiumcodereview.appspot.com/10536012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140691 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 0fa18e04..14b716e 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -72,6 +72,7 @@
using content::RenderThread;
RenderWidget::RenderWidget(WebKit::WebPopupType popup_type,
+ const WebKit::WebScreenInfo& screen_info,
bool swapped_out)
: routing_id_(MSG_ROUTING_NONE),
surface_id_(0),
@@ -103,6 +104,7 @@
is_accelerated_compositing_active_(false),
animation_update_pending_(false),
invalidation_task_posted_(false),
+ screen_info_(screen_info),
invert_(false) {
if (!swapped_out)
RenderProcess::current()->AddRefProcess();
@@ -125,10 +127,11 @@
// static
RenderWidget* RenderWidget::Create(int32 opener_id,
- WebKit::WebPopupType popup_type) {
+ WebKit::WebPopupType popup_type,
+ const WebKit::WebScreenInfo& screen_info) {
DCHECK(opener_id != MSG_ROUTING_NONE);
scoped_refptr<RenderWidget> widget(
- new RenderWidget(popup_type, false));
+ new RenderWidget(popup_type, screen_info, false));
widget->Init(opener_id); // adds reference
return widget;
}
@@ -1663,19 +1666,7 @@
}
WebScreenInfo RenderWidget::screenInfo() {
- WebScreenInfo results;
- if (host_window_set_)
- Send(new ViewHostMsg_GetScreenInfo(routing_id_, host_window_, &results));
- else {
- DLOG(WARNING) << "Unable to retrieve screen information, no host window";
-#if defined(USE_AURA)
- // TODO(backer): Remove this a temporary workaround for crbug.com/111929
- // once we get a proper fix.
- results.availableRect.width = 1000;
- results.availableRect.height = 1000;
-#endif
- }
- return results;
+ return screen_info_;
}
void RenderWidget::resetInputMethod() {