Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1139)

Unified Diff: content/browser/devtools/renderer_overrides_handler.cc

Issue 351633002: DevTools: Implemented new properties of ScreencastFrameMetadata (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Added property device. Removed bad use of GetRequestedRendererSize Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/devtools/renderer_overrides_handler.cc
diff --git a/content/browser/devtools/renderer_overrides_handler.cc b/content/browser/devtools/renderer_overrides_handler.cc
index e6d18c3ef726ca3aac0d82361e50b3f3e3fdec0a..b4e699a4b03c6a38bec0d16b98dc3d2bb5345fc0 100644
--- a/content/browser/devtools/renderer_overrides_handler.cc
+++ b/content/browser/devtools/renderer_overrides_handler.cc
@@ -203,9 +203,16 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() {
last_frame_time_ = base::TimeTicks::Now();
- RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
- host->GetView());
- gfx::Size screen_size_dip(view->GetRequestedRendererSize());
+ // FIXME: do not use previous frame metadata.
pfeldman 2014/06/25 13:19:10 // TODO(vkuzkokov): do not ... as per chromium cod
+ cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_;
+
+ float page_scale = metadata.page_scale_factor;
+ gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size, page_scale);
dgozman 2014/06/25 13:25:38 I'd say this is actually viewport_size_dip.
+
+ float total_bar_height = metadata.location_bar_content_translation.y() +
dgozman 2014/06/25 13:25:38 total_bar_height_dip
+ metadata.overdraw_bottom_height;
+ gfx::SizeF screen_size_dip(view_size_dip.width(),
dgozman 2014/06/25 13:25:38 And this one is view_size_dip.
+ view_size_dip.height() + total_bar_height);
std::string format;
int quality = kDefaultScreenshotQuality;
@@ -224,6 +231,8 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() {
&max_height);
}
+ RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
+ host->GetView());
blink::WebScreenInfo screen_info;
view->GetScreenInfo(&screen_info);
double device_scale_factor = screen_info.deviceScaleFactor;
@@ -244,14 +253,8 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() {
if (scale <= 0)
scale = 0.1;
- // FIXME: do not use previous frame metadata.
- cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_;
- gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size,
- metadata.page_scale_factor);
-
gfx::Size snapshot_size_dip(gfx::ToRoundedSize(
gfx::ScaleSize(view_size_dip, scale)));
-
if (snapshot_size_dip.width() > 0 && snapshot_size_dip.height() > 0) {
gfx::Rect view_bounds_dip(gfx::ToRoundedSize(view_size_dip));
view->CopyFromCompositingSurface(
@@ -609,6 +612,18 @@ void RendererOverridesHandler::ScreencastFrameCaptured(
response_metadata->Set(
devtools::Page::ScreencastFrameMetadata::kParamViewport, viewport);
+ gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size,
+ metadata.page_scale_factor);
+ base::DictionaryValue* device = new base::DictionaryValue();
+ device->SetDouble(devtools::DOM::Rect::kParamWidth,
+ view_size_dip.width());
+ device->SetDouble(devtools::DOM::Rect::kParamHeight,
+ view_size_dip.height() +
+ metadata.location_bar_content_translation.y() +
+ metadata.overdraw_bottom_height);
+ response_metadata->Set(
+ devtools::Page::ScreencastFrameMetadata::kParamDevice, device);
pfeldman 2014/06/25 13:19:10 This would require the roll, no? I'd rather have t
+
response->Set(devtools::Page::screencastFrame::kParamMetadata,
response_metadata);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698