- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / guestview / adview / adview_guest.h
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 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 string16& frame_unique_name,
45       bool is_main_frame,
46       const GURL& validated_url,
47       int error_code,
48       const 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_