Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / extensions / browser / process_manager.cc
index 217d389..96a8b28 100644 (file)
@@ -17,8 +17,6 @@
 #include "chrome/browser/extensions/api/runtime/runtime_api.h"
 #include "chrome/browser/extensions/extension_host.h"
 #include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
-#include "chrome/browser/extensions/extension_util.h"
 #include "chrome/common/extensions/extension_messages.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
@@ -35,6 +33,7 @@
 #include "content/public/browser/web_contents_user_data.h"
 #include "content/public/common/renderer_preferences.h"
 #include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_system.h"
 #include "extensions/browser/extensions_browser_client.h"
 #include "extensions/browser/view_type_utils.h"
 #include "extensions/common/extension.h"
@@ -128,8 +127,7 @@ class RenderViewHostDestructionObserver
   explicit RenderViewHostDestructionObserver(WebContents* web_contents)
       : WebContentsObserver(web_contents) {
     BrowserContext* context = web_contents->GetBrowserContext();
-    process_manager_ =
-        ExtensionSystem::GetForBrowserContext(context)->process_manager();
+    process_manager_ = ExtensionSystem::Get(context)->process_manager();
   }
 
   friend class content::WebContentsUserData<RenderViewHostDestructionObserver>;
@@ -345,11 +343,11 @@ void ProcessManager::UnregisterRenderViewHost(
   }
 }
 
-void ProcessManager::RegisterRenderViewHost(RenderViewHost* render_view_host) {
+bool ProcessManager::RegisterRenderViewHost(RenderViewHost* render_view_host) {
   const Extension* extension = GetExtensionForRenderViewHost(
       render_view_host);
   if (!extension)
-    return;
+    return false;
 
   WebContents* web_contents = WebContents::FromRenderViewHost(render_view_host);
   all_extension_views_[render_view_host] = GetViewType(web_contents);
@@ -358,6 +356,7 @@ void ProcessManager::RegisterRenderViewHost(RenderViewHost* render_view_host) {
   // extension views are visible. Keepalive count balanced in
   // UnregisterRenderViewHost.
   IncrementLazyKeepaliveCountForView(render_view_host);
+  return true;
 }
 
 SiteInstance* ProcessManager::GetSiteInstanceForURL(const GURL& url) {
@@ -570,7 +569,7 @@ void ProcessManager::CancelSuspend(const Extension* extension) {
 }
 
 void ProcessManager::OnBrowserWindowReady() {
-  ExtensionService* service = ExtensionSystem::GetForBrowserContext(
+  ExtensionService* service = ExtensionSystem::Get(
       GetBrowserContext())->extension_service();
   // On Chrome OS, a login screen is implemented as a browser.
   // This browser has no extension service.  In this case,
@@ -613,7 +612,7 @@ void ProcessManager::Observe(int type,
 
     case chrome::NOTIFICATION_EXTENSION_LOADED: {
       BrowserContext* context = content::Source<BrowserContext>(source).ptr();
-      ExtensionSystem* system = ExtensionSystem::GetForBrowserContext(context);
+      ExtensionSystem* system = ExtensionSystem::Get(context);
       if (system->ready().is_signaled()) {
         // The extension system is ready, so create the background host.
         const Extension* extension =
@@ -674,8 +673,9 @@ void ProcessManager::Observe(int type,
       // The above will unregister a RVH when it gets swapped out with a new
       // one. However we need to watch the WebContents to know when a RVH is
       // deleted because the WebContents has gone away.
-      RenderViewHostDestructionObserver::CreateForWebContents(contents);
-      RegisterRenderViewHost(switched_details->second);
+      if (RegisterRenderViewHost(switched_details->second)) {
+        RenderViewHostDestructionObserver::CreateForWebContents(contents);
+      }
       break;
     }
 
@@ -853,8 +853,8 @@ IncognitoProcessManager::IncognitoProcessManager(
     BrowserContext* incognito_context,
     BrowserContext* original_context)
     : ProcessManager(incognito_context, original_context),
-      original_manager_(ExtensionSystem::GetForBrowserContext(
-          original_context)->process_manager()) {
+      original_manager_(
+          ExtensionSystem::Get(original_context)->process_manager()) {
   DCHECK(incognito_context->IsOffTheRecord());
 
   // The original profile will have its own ProcessManager to
@@ -870,7 +870,8 @@ IncognitoProcessManager::IncognitoProcessManager(
 ExtensionHost* IncognitoProcessManager::CreateBackgroundHost(
     const Extension* extension, const GURL& url) {
   if (IncognitoInfo::IsSplitMode(extension)) {
-    if (util::IsIncognitoEnabled(extension->id(), GetBrowserContext()))
+    if (ExtensionsBrowserClient::Get()->IsExtensionIncognitoEnabled(
+            extension->id(), GetBrowserContext()))
       return ProcessManager::CreateBackgroundHost(extension, url);
   } else {
     // Do nothing. If an extension is spanning, then its original-profile