OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/protocol/page_handler.h" | 5 #include "content/browser/devtools/protocol/page_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 if (!host_ || !host_->GetView()) | 390 if (!host_ || !host_->GetView()) |
391 return; | 391 return; |
392 | 392 |
393 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( | 393 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
394 host_->GetView()); | 394 host_->GetView()); |
395 // TODO(vkuzkokov): do not use previous frame metadata. | 395 // TODO(vkuzkokov): do not use previous frame metadata. |
396 cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; | 396 cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; |
397 | 397 |
398 gfx::SizeF viewport_size_dip = gfx::ScaleSize( | 398 gfx::SizeF viewport_size_dip = gfx::ScaleSize( |
399 metadata.scrollable_viewport_size, metadata.page_scale_factor); | 399 metadata.scrollable_viewport_size, metadata.page_scale_factor); |
400 gfx::SizeF screen_size_dip = gfx::ScaleSize(view->GetPhysicalBackingSize(), | 400 gfx::SizeF screen_size_dip = |
401 1 / metadata.device_scale_factor); | 401 gfx::ScaleSize(gfx::SizeF(view->GetPhysicalBackingSize()), |
| 402 1 / metadata.device_scale_factor); |
402 | 403 |
403 blink::WebScreenInfo screen_info; | 404 blink::WebScreenInfo screen_info; |
404 view->GetScreenInfo(&screen_info); | 405 view->GetScreenInfo(&screen_info); |
405 double device_scale_factor = screen_info.deviceScaleFactor; | 406 double device_scale_factor = screen_info.deviceScaleFactor; |
406 double scale = 1; | 407 double scale = 1; |
407 | 408 |
408 if (screencast_max_width_ > 0) { | 409 if (screencast_max_width_ > 0) { |
409 double max_width_dip = screencast_max_width_ / device_scale_factor; | 410 double max_width_dip = screencast_max_width_ / device_scale_factor; |
410 scale = std::min(scale, max_width_dip / screen_size_dip.width()); | 411 scale = std::min(scale, max_width_dip / screen_size_dip.width()); |
411 } | 412 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 | 466 |
466 // Consider metadata empty in case it has no device scale factor. | 467 // Consider metadata empty in case it has no device scale factor. |
467 if (metadata.device_scale_factor == 0 || !host_ || data.empty()) | 468 if (metadata.device_scale_factor == 0 || !host_ || data.empty()) |
468 return; | 469 return; |
469 | 470 |
470 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( | 471 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
471 host_->GetView()); | 472 host_->GetView()); |
472 if (!view) | 473 if (!view) |
473 return; | 474 return; |
474 | 475 |
475 gfx::SizeF screen_size_dip = gfx::ScaleSize( | 476 gfx::SizeF screen_size_dip = |
476 view->GetPhysicalBackingSize(), 1 / metadata.device_scale_factor); | 477 gfx::ScaleSize(gfx::SizeF(view->GetPhysicalBackingSize()), |
| 478 1 / metadata.device_scale_factor); |
477 scoped_refptr<ScreencastFrameMetadata> param_metadata = | 479 scoped_refptr<ScreencastFrameMetadata> param_metadata = |
478 ScreencastFrameMetadata::Create() | 480 ScreencastFrameMetadata::Create() |
479 ->set_page_scale_factor(metadata.page_scale_factor) | 481 ->set_page_scale_factor(metadata.page_scale_factor) |
480 ->set_offset_top(metadata.location_bar_content_translation.y()) | 482 ->set_offset_top(metadata.location_bar_content_translation.y()) |
481 ->set_device_width(screen_size_dip.width()) | 483 ->set_device_width(screen_size_dip.width()) |
482 ->set_device_height(screen_size_dip.height()) | 484 ->set_device_height(screen_size_dip.height()) |
483 ->set_scroll_offset_x(metadata.root_scroll_offset.x()) | 485 ->set_scroll_offset_x(metadata.root_scroll_offset.x()) |
484 ->set_scroll_offset_y(metadata.root_scroll_offset.y()) | 486 ->set_scroll_offset_y(metadata.root_scroll_offset.y()) |
485 ->set_timestamp(timestamp.ToDoubleT()); | 487 ->set_timestamp(timestamp.ToDoubleT()); |
486 client_->ScreencastFrame(ScreencastFrameParams::Create() | 488 client_->ScreencastFrame(ScreencastFrameParams::Create() |
(...skipping 22 matching lines...) Expand all Loading... |
509 | 511 |
510 void PageHandler::OnColorPicked(int r, int g, int b, int a) { | 512 void PageHandler::OnColorPicked(int r, int g, int b, int a) { |
511 scoped_refptr<dom::RGBA> color = | 513 scoped_refptr<dom::RGBA> color = |
512 dom::RGBA::Create()->set_r(r)->set_g(g)->set_b(b)->set_a(a); | 514 dom::RGBA::Create()->set_r(r)->set_g(g)->set_b(b)->set_a(a); |
513 client_->ColorPicked(ColorPickedParams::Create()->set_color(color)); | 515 client_->ColorPicked(ColorPickedParams::Create()->set_color(color)); |
514 } | 516 } |
515 | 517 |
516 } // namespace page | 518 } // namespace page |
517 } // namespace devtools | 519 } // namespace devtools |
518 } // namespace content | 520 } // namespace content |
OLD | NEW |