Index: chrome/browser/guest_view/guest_view_base.cc |
diff --git a/chrome/browser/guest_view/guest_view_base.cc b/chrome/browser/guest_view/guest_view_base.cc |
index 402ee2b6db5cf0555d95303a386d44d905685734..e9b5ebaa22d5f84fab50a5b85dcafebd298304dd 100644 |
--- a/chrome/browser/guest_view/guest_view_base.cc |
+++ b/chrome/browser/guest_view/guest_view_base.cc |
@@ -143,12 +143,6 @@ void GuestViewBase::InitWithWebContents( |
} |
// static |
-void GuestViewBase::RegisterGuestViewTypes() { |
- GuestView<WebViewGuest>::Register(); |
- GuestView<AppViewGuest>::Register(); |
-} |
- |
-// static |
void GuestViewBase::RegisterGuestViewType( |
const std::string& view_type, |
const GuestCreationCallback& callback) { |
@@ -163,6 +157,9 @@ GuestViewBase* GuestViewBase::Create( |
content::BrowserContext* browser_context, |
int guest_instance_id, |
const std::string& view_type) { |
+ if (guest_view_registry.Get().empty()) |
+ RegisterGuestViewTypes(); |
+ |
GuestViewCreationMap::iterator it = |
guest_view_registry.Get().find(view_type); |
if (it == guest_view_registry.Get().end()) { |
@@ -386,3 +383,9 @@ void GuestViewBase::CompleteInit(const std::string& embedder_extension_id, |
guest_web_contents); |
callback.Run(guest_web_contents); |
} |
+ |
+// static |
+void GuestViewBase::RegisterGuestViewTypes() { |
+ AppViewGuest::Register(); |
+ WebViewGuest::Register(); |
+} |