| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/guest_view/guest_view_base.h" | 5 #include "chrome/browser/guest_view/guest_view_base.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "chrome/browser/guest_view/ad_view/ad_view_guest.h" | 8 #include "chrome/browser/guest_view/ad_view/ad_view_guest.h" |
| 9 #include "chrome/browser/guest_view/guest_view_constants.h" | 9 #include "chrome/browser/guest_view/guest_view_constants.h" |
| 10 #include "chrome/browser/guest_view/guest_view_manager.h" | 10 #include "chrome/browser/guest_view/guest_view_manager.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 embedder_web_contents_(NULL), | 46 embedder_web_contents_(NULL), |
| 47 embedder_extension_id_(embedder_extension_id), | 47 embedder_extension_id_(embedder_extension_id), |
| 48 embedder_render_process_id_(0), | 48 embedder_render_process_id_(0), |
| 49 browser_context_(guest_web_contents->GetBrowserContext()), | 49 browser_context_(guest_web_contents->GetBrowserContext()), |
| 50 guest_instance_id_(guest_web_contents->GetEmbeddedInstanceID()), | 50 guest_instance_id_(guest_web_contents->GetEmbeddedInstanceID()), |
| 51 view_instance_id_(guestview::kInstanceIDNone), | 51 view_instance_id_(guestview::kInstanceIDNone), |
| 52 opener_(opener), | 52 opener_(opener), |
| 53 weak_ptr_factory_(this) { | 53 weak_ptr_factory_(this) { |
| 54 webcontents_guestview_map.Get().insert( | 54 webcontents_guestview_map.Get().insert( |
| 55 std::make_pair(guest_web_contents, this)); | 55 std::make_pair(guest_web_contents, this)); |
| 56 GuestViewManager::FromBrowserContext(browser_context_)-> |
| 57 AddGuest(guest_instance_id_, guest_web_contents); |
| 56 } | 58 } |
| 57 | 59 |
| 58 // static | 60 // static |
| 59 GuestViewBase* GuestViewBase::Create( | 61 GuestViewBase* GuestViewBase::Create( |
| 60 WebContents* guest_web_contents, | 62 WebContents* guest_web_contents, |
| 61 const std::string& embedder_extension_id, | 63 const std::string& embedder_extension_id, |
| 62 const std::string& view_type, | 64 const std::string& view_type, |
| 63 const base::WeakPtr<GuestViewBase>& opener) { | 65 const base::WeakPtr<GuestViewBase>& opener) { |
| 64 if (view_type == "webview") { | 66 if (view_type == "webview") { |
| 65 return new WebViewGuest(guest_web_contents, embedder_extension_id, opener); | 67 return new WebViewGuest(guest_web_contents, embedder_extension_id, opener); |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 return; | 180 return; |
| 179 } | 181 } |
| 180 opener_ = base::WeakPtr<GuestViewBase>(); | 182 opener_ = base::WeakPtr<GuestViewBase>(); |
| 181 } | 183 } |
| 182 | 184 |
| 183 GuestViewBase::~GuestViewBase() { | 185 GuestViewBase::~GuestViewBase() { |
| 184 std::pair<int, int> key(embedder_render_process_id_, guest_instance_id_); | 186 std::pair<int, int> key(embedder_render_process_id_, guest_instance_id_); |
| 185 | 187 |
| 186 webcontents_guestview_map.Get().erase(guest_web_contents()); | 188 webcontents_guestview_map.Get().erase(guest_web_contents()); |
| 187 | 189 |
| 190 GuestViewManager::FromBrowserContext(browser_context_)-> |
| 191 RemoveGuest(guest_instance_id_); |
| 192 |
| 188 pending_events_.clear(); | 193 pending_events_.clear(); |
| 189 } | 194 } |
| 190 | 195 |
| 191 void GuestViewBase::DispatchEvent(Event* event) { | 196 void GuestViewBase::DispatchEvent(Event* event) { |
| 192 scoped_ptr<Event> event_ptr(event); | 197 scoped_ptr<Event> event_ptr(event); |
| 193 if (!in_extension()) { | 198 if (!in_extension()) { |
| 194 NOTREACHED(); | 199 NOTREACHED(); |
| 195 return; | 200 return; |
| 196 } | 201 } |
| 197 | 202 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 221 void GuestViewBase::SendQueuedEvents() { | 226 void GuestViewBase::SendQueuedEvents() { |
| 222 if (!attached()) | 227 if (!attached()) |
| 223 return; | 228 return; |
| 224 | 229 |
| 225 while (!pending_events_.empty()) { | 230 while (!pending_events_.empty()) { |
| 226 linked_ptr<Event> event_ptr = pending_events_.front(); | 231 linked_ptr<Event> event_ptr = pending_events_.front(); |
| 227 pending_events_.pop_front(); | 232 pending_events_.pop_front(); |
| 228 DispatchEvent(event_ptr.release()); | 233 DispatchEvent(event_ptr.release()); |
| 229 } | 234 } |
| 230 } | 235 } |
| OLD | NEW |