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

Unified Diff: content/shell/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: Merge with ToT Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: content/shell/browser/browser_plugin/test_guest_manager_delegate.cc
diff --git a/content/shell/browser/browser_plugin/test_guest_manager_delegate.cc b/content/shell/browser/browser_plugin/test_guest_manager_delegate.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c4d12662beeb036ed85a96e6c3d1ae66d47eb716
--- /dev/null
+++ b/content/shell/browser/browser_plugin/test_guest_manager_delegate.cc
@@ -0,0 +1,101 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/shell/browser/browser_plugin/test_guest_manager_delegate.h"
+
+#include "base/logging.h"
+#include "base/memory/singleton.h"
+#include "content/public/browser/site_instance.h"
+#include "content/public/browser/web_contents.h"
+
+namespace content {
+
+TestGuestManagerDelegate::TestGuestManagerDelegate()
+ : next_instance_id_(0) {
+}
+
+TestGuestManagerDelegate::~TestGuestManagerDelegate() {
+}
+
+// static.
+TestGuestManagerDelegate* TestGuestManagerDelegate::GetInstance() {
+ return Singleton<TestGuestManagerDelegate>::get();
+}
+
+int TestGuestManagerDelegate::GetNextInstanceID() {
+ return ++next_instance_id_;
+}
+
+void TestGuestManagerDelegate::AddGuest(
+ int guest_instance_id,
+ WebContents* guest_web_contents) {
+ DCHECK(guest_web_contents_by_instance_id_.find(guest_instance_id) ==
+ guest_web_contents_by_instance_id_.end());
+ guest_web_contents_by_instance_id_[guest_instance_id] = guest_web_contents;
+}
+
+void TestGuestManagerDelegate::RemoveGuest(
+ int guest_instance_id) {
+ GuestInstanceMap::iterator it =
+ guest_web_contents_by_instance_id_.find(guest_instance_id);
+ DCHECK(it != guest_web_contents_by_instance_id_.end());
+ guest_web_contents_by_instance_id_.erase(it);
+}
+
+WebContents* TestGuestManagerDelegate::GetGuestByInstanceID(
+ int guest_instance_id,
+ int embedder_render_process_id) {
+ GuestInstanceMap::const_iterator it =
+ guest_web_contents_by_instance_id_.find(guest_instance_id);
+ if (it == guest_web_contents_by_instance_id_.end())
+ return NULL;
+ return it->second;
+}
+
+bool TestGuestManagerDelegate::CanEmbedderAccessInstanceIDMaybeKill(
+ int embedder_render_process_id,
+ int guest_instance_id) {
+ return true;
+}
+
+bool TestGuestManagerDelegate::CanEmbedderAccessInstanceID(
+ int embedder_render_process_id,
+ int guest_instance_id) {
+ return true;
+}
+
+SiteInstance* TestGuestManagerDelegate::GetGuestSiteInstance(
+ const GURL& guest_site) {
+ for (GuestInstanceMap::const_iterator it =
+ guest_web_contents_by_instance_id_.begin();
+ it != guest_web_contents_by_instance_id_.end(); ++it) {
+ if (it->second->GetSiteInstance()->GetSiteURL() == guest_site)
+ return it->second->GetSiteInstance();
+ }
+ return NULL;
+}
+
+bool TestGuestManagerDelegate::ForEachGuest(
+ WebContents* embedder_web_contents,
+ const GuestCallback& callback) {
+ for (GuestInstanceMap::iterator it =
+ guest_web_contents_by_instance_id_.begin();
+ it != guest_web_contents_by_instance_id_.end(); ++it) {
+ WebContents* guest = it->second;
+ if (embedder_web_contents != guest->GetEmbedderWebContents())
+ continue;
+
+ if (callback.Run(guest))
+ return true;
+ }
+ return false;
+}
+
+void TestGuestManagerDelegate::RequestInstanceID(
+ const std::string& src,
+ const InstanceIDResponseCallback& callback) {
+ callback.Run(GetNextInstanceID());
+}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698