OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/devtools/renderer_overrides_handler.h" | 5 #include "content/browser/devtools/renderer_overrides_handler.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/barrier_closure.h" | 10 #include "base/barrier_closure.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 #include "content/public/browser/web_contents.h" | 36 #include "content/public/browser/web_contents.h" |
37 #include "content/public/browser/web_contents_delegate.h" | 37 #include "content/public/browser/web_contents_delegate.h" |
38 #include "content/public/common/content_client.h" | 38 #include "content/public/common/content_client.h" |
39 #include "content/public/common/page_transition_types.h" | 39 #include "content/public/common/page_transition_types.h" |
40 #include "content/public/common/referrer.h" | 40 #include "content/public/common/referrer.h" |
41 #include "ipc/ipc_sender.h" | 41 #include "ipc/ipc_sender.h" |
42 #include "net/base/net_util.h" | 42 #include "net/base/net_util.h" |
43 #include "third_party/WebKit/public/web/WebInputEvent.h" | 43 #include "third_party/WebKit/public/web/WebInputEvent.h" |
44 #include "ui/gfx/codec/jpeg_codec.h" | 44 #include "ui/gfx/codec/jpeg_codec.h" |
45 #include "ui/gfx/codec/png_codec.h" | 45 #include "ui/gfx/codec/png_codec.h" |
| 46 #include "ui/gfx/display.h" |
| 47 #include "ui/gfx/screen.h" |
46 #include "ui/gfx/size_conversions.h" | 48 #include "ui/gfx/size_conversions.h" |
47 #include "ui/snapshot/snapshot.h" | 49 #include "ui/snapshot/snapshot.h" |
48 #include "url/gurl.h" | 50 #include "url/gurl.h" |
49 #include "webkit/browser/quota/quota_manager.h" | 51 #include "webkit/browser/quota/quota_manager.h" |
50 | 52 |
51 using blink::WebGestureEvent; | 53 using blink::WebGestureEvent; |
52 using blink::WebInputEvent; | 54 using blink::WebInputEvent; |
53 using blink::WebMouseEvent; | 55 using blink::WebMouseEvent; |
54 | 56 |
55 namespace content { | 57 namespace content { |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 RenderViewHost* host = agent_->GetRenderViewHost(); | 199 RenderViewHost* host = agent_->GetRenderViewHost(); |
198 if (!host->GetView()) | 200 if (!host->GetView()) |
199 return; | 201 return; |
200 | 202 |
201 last_frame_time_ = base::TimeTicks::Now(); | 203 last_frame_time_ = base::TimeTicks::Now(); |
202 std::string format; | 204 std::string format; |
203 int quality = kDefaultScreenshotQuality; | 205 int quality = kDefaultScreenshotQuality; |
204 double scale = 1; | 206 double scale = 1; |
205 ParseCaptureParameters(screencast_command_.get(), &format, &quality, &scale); | 207 ParseCaptureParameters(screencast_command_.get(), &format, &quality, &scale); |
206 | 208 |
| 209 const gfx::Display& display = |
| 210 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
| 211 float device_scale_factor = display.device_scale_factor(); |
| 212 |
| 213 gfx::Rect view_bounds = host->GetView()->GetViewBounds(); |
| 214 gfx::Size snapshot_size(gfx::ToCeiledSize( |
| 215 gfx::ScaleSize(view_bounds.size(), scale / device_scale_factor))); |
| 216 |
207 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( | 217 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
208 host->GetView()); | 218 host->GetView()); |
209 | |
210 gfx::Rect view_bounds = host->GetView()->GetViewBounds(); | |
211 gfx::Size snapshot_size = gfx::ToFlooredSize( | |
212 gfx::ScaleSize(view_bounds.size(), scale)); | |
213 | |
214 view->CopyFromCompositingSurface( | 219 view->CopyFromCompositingSurface( |
215 view_bounds, snapshot_size, | 220 view_bounds, snapshot_size, |
216 base::Bind(&RendererOverridesHandler::ScreencastFrameCaptured, | 221 base::Bind(&RendererOverridesHandler::ScreencastFrameCaptured, |
217 weak_factory_.GetWeakPtr(), | 222 weak_factory_.GetWeakPtr(), |
218 format, quality, last_compositor_frame_metadata_), | 223 format, quality, last_compositor_frame_metadata_), |
219 SkBitmap::kARGB_8888_Config); | 224 SkBitmap::kARGB_8888_Config); |
220 } | 225 } |
221 | 226 |
222 void RendererOverridesHandler::ParseCaptureParameters( | 227 void RendererOverridesHandler::ParseCaptureParameters( |
223 DevToolsProtocol::Command* command, | 228 DevToolsProtocol::Command* command, |
(...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 return NULL; | 998 return NULL; |
994 } | 999 } |
995 event.data.pinchUpdate.scale = static_cast<float>(scale); | 1000 event.data.pinchUpdate.scale = static_cast<float>(scale); |
996 } | 1001 } |
997 | 1002 |
998 host->ForwardGestureEvent(event); | 1003 host->ForwardGestureEvent(event); |
999 return command->SuccessResponse(NULL); | 1004 return command->SuccessResponse(NULL); |
1000 } | 1005 } |
1001 | 1006 |
1002 } // namespace content | 1007 } // namespace content |
OLD | NEW |