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

Side by Side Diff: content/browser/browser_plugin/test_guest_manager_delegate.cc

Issue 258373002: Towards moving guest management to chrome: Introduce GuestViewManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Android build 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/browser_plugin/test_guest_manager_delegate.h"
6
7 #include "base/logging.h"
8 #include "base/memory/singleton.h"
9 #include "content/public/browser/site_instance.h"
10 #include "content/public/browser/web_contents.h"
11
12 namespace content {
13
14 TestGuestManagerDelegate::TestGuestManagerDelegate()
15 : next_instance_id_(0) {
16 }
17
18 TestGuestManagerDelegate::~TestGuestManagerDelegate() {
19 }
20
21 // static.
22 TestGuestManagerDelegate* TestGuestManagerDelegate::GetInstance() {
23 return Singleton<TestGuestManagerDelegate>::get();
24 }
25
26 int TestGuestManagerDelegate::GetNextInstanceID() {
27 return ++next_instance_id_;
28 }
29
30 void TestGuestManagerDelegate::AddGuest(
31 int guest_instance_id,
32 WebContents* guest_web_contents) {
33 DCHECK(guest_web_contents_by_instance_id_.find(guest_instance_id) ==
34 guest_web_contents_by_instance_id_.end());
35 guest_web_contents_by_instance_id_[guest_instance_id] = guest_web_contents;
36 }
37
38 void TestGuestManagerDelegate::RemoveGuest(
39 int guest_instance_id) {
40 GuestInstanceMap::iterator it =
41 guest_web_contents_by_instance_id_.find(guest_instance_id);
42 DCHECK(it != guest_web_contents_by_instance_id_.end());
43 guest_web_contents_by_instance_id_.erase(it);
44 }
45
46 WebContents* TestGuestManagerDelegate::GetGuestByInstanceID(
47 int guest_instance_id,
48 int embedder_render_process_id) {
49 GuestInstanceMap::const_iterator it =
50 guest_web_contents_by_instance_id_.find(guest_instance_id);
51 if (it == guest_web_contents_by_instance_id_.end())
52 return NULL;
53 return it->second;
54 }
55
56 bool TestGuestManagerDelegate::CanEmbedderAccessInstanceIDMaybeKill(
57 int embedder_render_process_id,
58 int guest_instance_id) {
59 return true;
60 }
61
62 bool TestGuestManagerDelegate::CanEmbedderAccessInstanceID(
63 int embedder_render_process_id,
64 int guest_instance_id) {
65 return true;
66 }
67
68 SiteInstance* TestGuestManagerDelegate::GetGuestSiteInstance(
69 const GURL& guest_site) {
70 for (GuestInstanceMap::const_iterator it =
71 guest_web_contents_by_instance_id_.begin();
72 it != guest_web_contents_by_instance_id_.end(); ++it) {
73 if (it->second->GetSiteInstance()->GetSiteURL() == guest_site)
74 return it->second->GetSiteInstance();
75 }
76 return NULL;
77 }
78
79 bool TestGuestManagerDelegate::ForEachGuest(
80 WebContents* embedder_web_contents,
81 const GuestCallback& callback) {
82 for (GuestInstanceMap::iterator it =
83 guest_web_contents_by_instance_id_.begin();
84 it != guest_web_contents_by_instance_id_.end(); ++it) {
85 WebContents* guest = it->second;
86 if (embedder_web_contents != guest->GetEmbedderWebContents())
87 continue;
88
89 if (callback.Run(guest))
90 return true;
91 }
92 return false;
93 }
94
95 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698