| 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 #ifndef CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ | 5 #ifndef CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ |
| 6 #define CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ | 6 #define CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ |
| 7 | 7 |
| 8 #include <queue> | 8 #include <queue> |
| 9 | 9 |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 // This method can be overriden by subclasses. This gives the derived class | 134 // This method can be overriden by subclasses. This gives the derived class |
| 135 // an opportunity to perform setup actions before attachment. | 135 // an opportunity to perform setup actions before attachment. |
| 136 virtual void WillAttachToEmbedder() {} | 136 virtual void WillAttachToEmbedder() {} |
| 137 | 137 |
| 138 // This method is called when the guest WebContents is about to be destroyed. | 138 // This method is called when the guest WebContents is about to be destroyed. |
| 139 // | 139 // |
| 140 // This gives the derived class an opportunity to perform some cleanup prior | 140 // This gives the derived class an opportunity to perform some cleanup prior |
| 141 // to destruction. | 141 // to destruction. |
| 142 virtual void WillDestroy() {} | 142 virtual void WillDestroy() {} |
| 143 | 143 |
| 144 // This method is to be implemented by the derived class. It determines | 144 // This method is to be implemented by the derived class. Access to guest |
| 145 // whether the guest view type of the derived class can be used by the | 145 // views are determined by the availability of the internal extension API |
| 146 // provided embedder extension ID. | 146 // used to implement the guest view. |
| 147 virtual bool CanEmbedderUseGuestView( | 147 // |
| 148 const std::string& embedder_extension_id) = 0; | 148 // This should be the name of the API as it appears in the _api_features.json |
| 149 // file. |
| 150 virtual const char* GetAPINamespace() = 0; |
| 149 | 151 |
| 150 // This method is to be implemented by the derived class. Given a set of | 152 // This method is to be implemented by the derived class. Given a set of |
| 151 // initialization parameters, a concrete subclass of GuestViewBase can | 153 // initialization parameters, a concrete subclass of GuestViewBase can |
| 152 // create a specialized WebContents that it returns back to GuestViewBase. | 154 // create a specialized WebContents that it returns back to GuestViewBase. |
| 153 typedef base::Callback<void(content::WebContents*)> | 155 typedef base::Callback<void(content::WebContents*)> |
| 154 WebContentsCreatedCallback; | 156 WebContentsCreatedCallback; |
| 155 virtual void CreateWebContents( | 157 virtual void CreateWebContents( |
| 156 const std::string& embedder_extension_id, | 158 const std::string& embedder_extension_id, |
| 157 int embedder_render_process_id, | 159 int embedder_render_process_id, |
| 158 const base::DictionaryValue& create_params, | 160 const base::DictionaryValue& create_params, |
| 159 const WebContentsCreatedCallback& callback) = 0; | 161 const WebContentsCreatedCallback& callback) = 0; |
| 160 | 162 |
| 161 // This creates a WebContents and initializes |this| GuestViewBase to use the | 163 // This creates a WebContents and initializes |this| GuestViewBase to use the |
| 162 // newly created WebContents. | 164 // newly created WebContents. |
| 163 void Init(const std::string& embedder_extension_id, | 165 void Init(const std::string& embedder_extension_id, |
| 164 int embedder_render_process_id, | 166 content::WebContents* embedder_web_contents, |
| 165 const base::DictionaryValue& create_params, | 167 const base::DictionaryValue& create_params, |
| 166 const WebContentsCreatedCallback& callback); | 168 const WebContentsCreatedCallback& callback); |
| 167 | 169 |
| 168 void InitWithWebContents( | 170 void InitWithWebContents( |
| 169 const std::string& embedder_extension_id, | 171 const std::string& embedder_extension_id, |
| 170 int embedder_render_process_id, | 172 int embedder_render_process_id, |
| 171 content::WebContents* guest_web_contents); | 173 content::WebContents* guest_web_contents); |
| 172 | 174 |
| 173 bool IsViewType(const char* const view_type) const { | 175 bool IsViewType(const char* const view_type) const { |
| 174 return !strcmp(GetViewType(), view_type); | 176 return !strcmp(GetViewType(), view_type); |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 gfx::Size min_auto_size_; | 326 gfx::Size min_auto_size_; |
| 325 | 327 |
| 326 // This is used to ensure pending tasks will not fire after this object is | 328 // This is used to ensure pending tasks will not fire after this object is |
| 327 // destroyed. | 329 // destroyed. |
| 328 base::WeakPtrFactory<GuestViewBase> weak_ptr_factory_; | 330 base::WeakPtrFactory<GuestViewBase> weak_ptr_factory_; |
| 329 | 331 |
| 330 DISALLOW_COPY_AND_ASSIGN(GuestViewBase); | 332 DISALLOW_COPY_AND_ASSIGN(GuestViewBase); |
| 331 }; | 333 }; |
| 332 | 334 |
| 333 #endif // CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ | 335 #endif // CHROME_BROWSER_GUEST_VIEW_GUEST_VIEW_BASE_H_ |
| OLD | NEW |