Chromium Code Reviews| 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_; } |