Index: chrome/browser/guestview/guestview.h |
diff --git a/chrome/browser/guestview/guestview.h b/chrome/browser/guestview/guestview.h |
index 63b28bbda232fa1386c276da2cd080ed87a4121d..7d8c6ab8c191574431a3df71f685cc746a46f7af 100644 |
--- a/chrome/browser/guestview/guestview.h |
+++ b/chrome/browser/guestview/guestview.h |
@@ -82,11 +82,14 @@ class GuestView : public content::BrowserPluginGuestDelegate { |
virtual Type GetViewType() const; |
- // Returns a WebViewGuest if this GuestView belongs to a <webview>. |
- virtual WebViewGuest* AsWebView() = 0; |
- |
- // Returns an AdViewGuest if the GuestView belongs to an <adview>. |
- virtual AdViewGuest* AsAdView() = 0; |
+ // Returns a *ViewGuest if this GuestView is of the given view type. |
+ template <class T> |
Xi Han
2014/04/15 21:35:37
We do not want a bunch of As*View functions, e.g.,
|
+ T* As() { |
+ if (GetViewType() == T::Type()) { |
+ return static_cast<T*>(this); |
+ } |
+ return NULL; |
+ } |
// Returns whether this guest has an associated embedder. |
bool attached() const { return !!embedder_web_contents_; } |