Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: chrome/browser/guest_view/guest_view_base.cc

Issue 261013005: BrowserPlugin: Move CreateGuest to chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@guestview_manager_simplify_api
Patch Set: Fixed content_browsertests after a change Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/android/content_view_util.cc ('k') | chrome/browser/guest_view/guest_view_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698