| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // DOMView is a ChromeView that displays the content of a web DOM. | 5 // DOMView is a ChromeView that displays the content of a web DOM. |
| 6 // It should be used with data: URLs. | 6 // It should be used with data: URLs. |
| 7 | 7 |
| 8 #ifndef CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ | 8 #ifndef CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ |
| 9 #define CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ | 9 #define CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ |
| 10 #pragma once | 10 #pragma once |
| 11 | 11 |
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 14 #include "googleurl/src/gurl.h" | 14 #include "googleurl/src/gurl.h" |
| 15 #include "ui/views/controls/native/native_view_host.h" | 15 #include "ui/views/controls/native/native_view_host.h" |
| 16 #include "ui/views/events/event.h" | 16 #include "ui/views/events/event.h" |
| 17 | 17 |
| 18 class Profile; | 18 class Profile; |
| 19 |
| 20 namespace content { |
| 19 class SiteInstance; | 21 class SiteInstance; |
| 22 }; |
| 20 | 23 |
| 21 class DOMView : public views::NativeViewHost { | 24 class DOMView : public views::NativeViewHost { |
| 22 public: | 25 public: |
| 23 // Internal class name. | 26 // Internal class name. |
| 24 static const char kViewClassName[]; | 27 static const char kViewClassName[]; |
| 25 | 28 |
| 26 DOMView(); | 29 DOMView(); |
| 27 virtual ~DOMView(); | 30 virtual ~DOMView(); |
| 28 | 31 |
| 29 // Overridden from View. | 32 // Overridden from View. |
| 30 virtual std::string GetClassName() const OVERRIDE; | 33 virtual std::string GetClassName() const OVERRIDE; |
| 31 | 34 |
| 32 // Initialize the view, creating the contents. This should be | 35 // Initialize the view, creating the contents. This should be |
| 33 // called once the view has been added to a container. | 36 // called once the view has been added to a container. |
| 34 // | 37 // |
| 35 // If |instance| is not null, then the view will be loaded in the same | 38 // If |instance| is not null, then the view will be loaded in the same |
| 36 // process as the given instance. | 39 // process as the given instance. |
| 37 bool Init(Profile* profile, SiteInstance* instance); | 40 bool Init(Profile* profile, content::SiteInstance* instance); |
| 38 | 41 |
| 39 // Loads the given URL into the page. You must have previously called Init(). | 42 // Loads the given URL into the page. You must have previously called Init(). |
| 40 void LoadURL(const GURL& url); | 43 void LoadURL(const GURL& url); |
| 41 | 44 |
| 42 // The TabContents displaying the DOM contents; may be null. | 45 // The TabContents displaying the DOM contents; may be null. |
| 43 TabContentsWrapper* dom_contents() const { return dom_contents_.get(); } | 46 TabContentsWrapper* dom_contents() const { return dom_contents_.get(); } |
| 44 | 47 |
| 45 protected: | 48 protected: |
| 46 // Overridden from View. | 49 // Overridden from View. |
| 47 virtual bool SkipDefaultKeyEventProcessing(const views::KeyEvent& e) OVERRIDE; | 50 virtual bool SkipDefaultKeyEventProcessing(const views::KeyEvent& e) OVERRIDE; |
| 48 virtual void OnFocus() OVERRIDE; | 51 virtual void OnFocus() OVERRIDE; |
| 49 virtual void ViewHierarchyChanged(bool is_add, views::View* parent, | 52 virtual void ViewHierarchyChanged(bool is_add, views::View* parent, |
| 50 views::View* child) OVERRIDE; | 53 views::View* child) OVERRIDE; |
| 51 | 54 |
| 52 // AttachTabContents calls Attach to hook up the NativeViewHost. This is | 55 // AttachTabContents calls Attach to hook up the NativeViewHost. This is |
| 53 // here because depending on whether this is a touch build or not the | 56 // here because depending on whether this is a touch build or not the |
| 54 // implementation varies slightly, while Detach is the same in both cases. | 57 // implementation varies slightly, while Detach is the same in both cases. |
| 55 void AttachTabContents(); | 58 void AttachTabContents(); |
| 56 | 59 |
| 57 // Returns new allocated TabContents instance, caller is responsible deleting. | 60 // Returns new allocated TabContents instance, caller is responsible deleting. |
| 58 // Override in derived classes to replace TabContents with derivative. | 61 // Override in derived classes to replace TabContents with derivative. |
| 59 virtual content::WebContents* CreateTabContents( | 62 virtual content::WebContents* CreateTabContents( |
| 60 Profile* profile, SiteInstance* instance); | 63 Profile* profile, content::SiteInstance* instance); |
| 61 | 64 |
| 62 scoped_ptr<TabContentsWrapper> dom_contents_; | 65 scoped_ptr<TabContentsWrapper> dom_contents_; |
| 63 | 66 |
| 64 private: | 67 private: |
| 65 bool initialized_; | 68 bool initialized_; |
| 66 | 69 |
| 67 DISALLOW_COPY_AND_ASSIGN(DOMView); | 70 DISALLOW_COPY_AND_ASSIGN(DOMView); |
| 68 }; | 71 }; |
| 69 | 72 |
| 70 #endif // CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ | 73 #endif // CHROME_BROWSER_UI_VIEWS_DOM_VIEW_H_ |
| OLD | NEW |