OLD | NEW |
| (Empty) |
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 #include "chrome/browser/guestview/adview/adview_guest.h" | |
6 | |
7 #include "base/strings/string_util.h" | |
8 #include "chrome/browser/guestview/adview/adview_constants.h" | |
9 #include "chrome/browser/guestview/guestview_constants.h" | |
10 #include "content/public/browser/web_contents.h" | |
11 #include "net/base/net_errors.h" | |
12 | |
13 using content::WebContents; | |
14 | |
15 AdViewGuest::AdViewGuest(WebContents* guest_web_contents, | |
16 const std::string& extension_id) | |
17 : GuestView(guest_web_contents, extension_id), | |
18 WebContentsObserver(guest_web_contents) { | |
19 } | |
20 | |
21 // static | |
22 AdViewGuest* AdViewGuest::From(int embedder_process_id, | |
23 int guest_instance_id) { | |
24 GuestView* guest = GuestView::From(embedder_process_id, guest_instance_id); | |
25 if (!guest) | |
26 return NULL; | |
27 return guest->AsAdView(); | |
28 } | |
29 | |
30 GuestView::Type AdViewGuest::GetViewType() const { | |
31 return GuestView::ADVIEW; | |
32 } | |
33 | |
34 WebViewGuest* AdViewGuest::AsWebView() { | |
35 return NULL; | |
36 } | |
37 | |
38 AdViewGuest* AdViewGuest::AsAdView() { | |
39 return this; | |
40 } | |
41 | |
42 AdViewGuest::~AdViewGuest() { | |
43 } | |
44 | |
45 void AdViewGuest::DidCommitProvisionalLoadForFrame( | |
46 int64 frame_id, | |
47 const base::string16& frame_unique_name, | |
48 bool is_main_frame, | |
49 const GURL& url, | |
50 content::PageTransition transition_type, | |
51 content::RenderViewHost* render_view_host) { | |
52 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | |
53 args->SetString(guestview::kUrl, url.spec()); | |
54 args->SetBoolean(guestview::kIsTopLevel, is_main_frame); | |
55 DispatchEvent(new GuestView::Event(adview::kEventLoadCommit, args.Pass())); | |
56 } | |
57 | |
58 void AdViewGuest::DidFailProvisionalLoad( | |
59 int64 frame_id, | |
60 const base::string16& frame_unique_name, | |
61 bool is_main_frame, | |
62 const GURL& validated_url, | |
63 int error_code, | |
64 const base::string16& error_description, | |
65 content::RenderViewHost* render_view_host) { | |
66 // Translate the |error_code| into an error string. | |
67 std::string error_type; | |
68 base::RemoveChars(net::ErrorToString(error_code), "net::", &error_type); | |
69 | |
70 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | |
71 args->SetBoolean(guestview::kIsTopLevel, is_main_frame); | |
72 args->SetString(guestview::kUrl, validated_url.spec()); | |
73 args->SetString(guestview::kReason, error_type); | |
74 DispatchEvent(new GuestView::Event(adview::kEventLoadAbort, args.Pass())); | |
75 } | |
OLD | NEW |