Home | History | Annotate | Download | only in adview
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_GUESTVIEW_ADVIEW_ADVIEW_GUEST_H_
      6 #define CHROME_BROWSER_GUESTVIEW_ADVIEW_ADVIEW_GUEST_H_
      7 
      8 #include "base/values.h"
      9 #include "chrome/browser/guestview/guestview.h"
     10 #include "content/public/browser/web_contents_observer.h"
     11 
     12 // An AdViewGuest is a WebContentsObserver on the guest WebContents of a
     13 // <adview> tag. It provides the browser-side implementation of the <adview>
     14 // API and manages the lifetime of <adview> extension events. AdViewGuest is
     15 // created on attachment. When a guest WebContents is associated with
     16 // a particular embedder WebContents, we call this "attachment".
     17 // TODO(fsamuel): There might be an opportunity here to refactor and reuse code
     18 // between AdViewGuest and WebViewGuest.
     19 class AdViewGuest : public GuestView,
     20                     public content::WebContentsObserver {
     21  public:
     22   AdViewGuest(content::WebContents* guest_web_contents,
     23               const std::string& extension_id);
     24 
     25   static AdViewGuest* From(int embedder_process_id, int instance_id);
     26 
     27   // GuestView implementation.
     28   virtual GuestView::Type GetViewType() const OVERRIDE;
     29   virtual WebViewGuest* AsWebView() OVERRIDE;
     30   virtual AdViewGuest* AsAdView() OVERRIDE;
     31 
     32  private:
     33   virtual ~AdViewGuest();
     34 
     35   virtual void DidCommitProvisionalLoadForFrame(
     36       int64 frame_id,
     37       const base::string16& frame_unique_name,
     38       bool is_main_frame,
     39       const GURL& url,
     40       content::PageTransition transition_type,
     41       content::RenderViewHost* render_view_host) OVERRIDE;
     42   virtual void DidFailProvisionalLoad(
     43       int64 frame_id,
     44       const base::string16& frame_unique_name,
     45       bool is_main_frame,
     46       const GURL& validated_url,
     47       int error_code,
     48       const base::string16& error_description,
     49       content::RenderViewHost* render_view_host) OVERRIDE;
     50 
     51   DISALLOW_COPY_AND_ASSIGN(AdViewGuest);
     52 };
     53 
     54 #endif  // CHROME_BROWSER_GUESTVIEW_ADVIEW_ADVIEW_GUEST_H_
     55