| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ui/views/controls/webview/webview.h" |
| |
| #include "content/public/browser/browser_context.h" |
| #include "ipc/ipc_message.h" |
| #include "ui/views/controls/native/native_view_host.h" |
| |
| namespace views { |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebView, public: |
| |
| WebView::WebView(content::BrowserContext* browser_context) |
| : wcv_holder_(new NativeViewHost), |
| browser_context_(browser_context) { |
| Init(); |
| } |
| |
| WebView::~WebView() { |
| } |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebView, private: |
| |
| void WebView::Init() { |
| AddChildView(wcv_holder_); |
| web_contents_.reset( |
| content::WebContents::Create(browser_context_, NULL, MSG_ROUTING_NONE, |
| NULL, NULL)); |
| } |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebView, View overrides: |
| |
| void WebView::OnBoundsChanged(const gfx::Rect& previous_bounds) { |
| wcv_holder_->SetSize(bounds().size()); |
| } |
| |
| void WebView::ViewHierarchyChanged(bool is_add, View* parent, View* child) { |
| if (is_add && child == this) |
| wcv_holder_->Attach(web_contents_->GetNativeView()); |
| } |
| |
| } // namespace views |