Remove 'blink::WebSerializedOrigin' (7/7)
[chromium-blink-merge.git] / components / html_viewer / web_layer_impl.cc
blobca715af9bcd9cc35d35ddaa58646f4ff5fccff9f
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/html_viewer/web_layer_impl.h"
7 #include "cc/layers/layer.h"
8 #include "components/html_viewer/frame.h"
9 #include "ui/mojo/geometry/geometry.mojom.h"
11 using blink::WebFloatPoint;
12 using blink::WebSize;
14 namespace html_viewer {
16 WebLayerImpl::WebLayerImpl(Frame* frame)
17 : frame_(frame) {
20 WebLayerImpl::~WebLayerImpl() {
23 void WebLayerImpl::setBounds(const WebSize& size) {
24 mojo::Rect rect = frame_->view()->bounds();
25 rect.width = size.width;
26 rect.height = size.height;
27 frame_->view()->SetBounds(rect);
28 cc_blink::WebLayerImpl::setBounds(size);
31 void WebLayerImpl::setPosition(const WebFloatPoint& position) {
32 mojo::Rect rect = frame_->view()->bounds();
33 rect.x = 0;
34 rect.y = 0;
35 // TODO(fsamuel): This is a temporary hack until we have a UI process in
36 // Mandoline. The View will always lag behind the cc::Layer.
37 cc::Layer* current_layer = layer();
38 while (current_layer) {
39 rect.x += current_layer->position().x();
40 rect.x -= current_layer->scroll_offset().x();
41 rect.y += current_layer->position().y();
42 rect.y -= current_layer->scroll_offset().y();
43 current_layer = current_layer->parent();
45 frame_->view()->SetBounds(rect);
46 cc_blink::WebLayerImpl::setPosition(position);
49 } // namespace html_viewer