| Index: mojo/services/html_viewer/html_document.cc
|
| diff --git a/mojo/services/html_viewer/html_document.cc b/mojo/services/html_viewer/html_document.cc
|
| index 0f35b8d7d94de8895b479d2d41d3ae1839d70cea..5db9763c26d1a9a310517a2a43edc601a205a5ad 100644
|
| --- a/mojo/services/html_viewer/html_document.cc
|
| +++ b/mojo/services/html_viewer/html_document.cc
|
| @@ -41,6 +41,7 @@
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkColor.h"
|
| #include "third_party/skia/include/core/SkDevice.h"
|
| +#include "ui/gfx/geometry/dip_util.h"
|
|
|
| using mojo::AxProvider;
|
| using mojo::Rect;
|
| @@ -135,10 +136,7 @@ void HTMLDocument::OnEmbed(
|
| root_ = root;
|
| embedder_service_provider_ = exposed_services.Pass();
|
| navigator_host_.set_service_provider(embedder_service_provider_.get());
|
| -
|
| - blink::WebSize root_size(root_->bounds().width, root_->bounds().height);
|
| - web_view_->resize(root_size);
|
| - web_layer_tree_view_impl_->setViewportSize(root_size);
|
| + UpdateWebviewSizeFromViewSize();
|
| web_layer_tree_view_impl_->set_view(root_);
|
| root_->AddObserver(this);
|
| }
|
| @@ -174,6 +172,16 @@ void HTMLDocument::Load(URLResponsePtr response) {
|
| web_view_->mainFrame()->loadRequest(web_request);
|
| }
|
|
|
| +void HTMLDocument::UpdateWebviewSizeFromViewSize() {
|
| + web_view_->setDeviceScaleFactor(root_->viewport_metrics().device_pixel_ratio);
|
| + const gfx::Size size_in_pixels(root_->bounds().width, root_->bounds().height);
|
| + const gfx::Size size_in_dips = gfx::ConvertSizeToDIP(
|
| + root_->viewport_metrics().device_pixel_ratio, size_in_pixels);
|
| + web_view_->resize(
|
| + blink::WebSize(size_in_dips.width(), size_in_dips.height()));
|
| + web_layer_tree_view_impl_->setViewportSize(size_in_pixels);
|
| +}
|
| +
|
| blink::WebStorageNamespace* HTMLDocument::createSessionStorageNamespace() {
|
| return new WebStorageNamespaceImpl();
|
| }
|
| @@ -301,8 +309,7 @@ void HTMLDocument::OnViewBoundsChanged(View* view,
|
| const Rect& old_bounds,
|
| const Rect& new_bounds) {
|
| DCHECK_EQ(view, root_);
|
| - web_view_->resize(
|
| - blink::WebSize(view->bounds().width, view->bounds().height));
|
| + UpdateWebviewSizeFromViewSize();
|
| }
|
|
|
| void HTMLDocument::OnViewDestroyed(View* view) {
|
|
|