| OLD | NEW |
| 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 "extensions/browser/process_manager.h" | 5 #include "extensions/browser/process_manager.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" |
| 8 #include "content/public/browser/content_browser_client.h" | 9 #include "content/public/browser/content_browser_client.h" |
| 9 #include "content/public/browser/notification_service.h" | 10 #include "content/public/browser/notification_service.h" |
| 10 #include "content/public/browser/site_instance.h" | 11 #include "content/public/browser/site_instance.h" |
| 11 #include "content/public/common/content_client.h" | 12 #include "content/public/common/content_client.h" |
| 12 #include "content/public/test/test_browser_context.h" | 13 #include "content/public/test/test_browser_context.h" |
| 13 #include "extensions/browser/extension_registry.h" | 14 #include "extensions/browser/extension_registry.h" |
| 14 #include "extensions/browser/extensions_test.h" | 15 #include "extensions/browser/extensions_test.h" |
| 15 #include "extensions/browser/notification_types.h" | 16 #include "extensions/browser/notification_types.h" |
| 16 #include "extensions/browser/process_manager_delegate.h" | 17 #include "extensions/browser/process_manager_delegate.h" |
| 17 #include "extensions/browser/test_extensions_browser_client.h" | 18 #include "extensions/browser/test_extensions_browser_client.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 48 } | 49 } |
| 49 | 50 |
| 50 bool is_background_page_allowed_; | 51 bool is_background_page_allowed_; |
| 51 bool defer_creating_startup_background_hosts_; | 52 bool defer_creating_startup_background_hosts_; |
| 52 }; | 53 }; |
| 53 | 54 |
| 54 } // namespace | 55 } // namespace |
| 55 | 56 |
| 56 class ProcessManagerTest : public ExtensionsTest { | 57 class ProcessManagerTest : public ExtensionsTest { |
| 57 public: | 58 public: |
| 58 ProcessManagerTest() : extension_registry_(browser_context()) { | 59 ProcessManagerTest() {} |
| 60 |
| 61 ~ProcessManagerTest() override {} |
| 62 |
| 63 void SetUp() override { |
| 64 ExtensionsTest::SetUp(); |
| 65 extension_registry_ = |
| 66 base::MakeUnique<ExtensionRegistry>(browser_context()); |
| 59 extensions_browser_client()->set_process_manager_delegate( | 67 extensions_browser_client()->set_process_manager_delegate( |
| 60 &process_manager_delegate_); | 68 &process_manager_delegate_); |
| 61 } | 69 } |
| 62 | 70 |
| 63 ~ProcessManagerTest() override {} | |
| 64 | |
| 65 // Use original_context() to make it clear it is a non-incognito context. | 71 // Use original_context() to make it clear it is a non-incognito context. |
| 66 BrowserContext* original_context() { return browser_context(); } | 72 BrowserContext* original_context() { return browser_context(); } |
| 67 ExtensionRegistry* extension_registry() { return &extension_registry_; } | 73 ExtensionRegistry* extension_registry() { return extension_registry_.get(); } |
| 68 TestProcessManagerDelegate* process_manager_delegate() { | 74 TestProcessManagerDelegate* process_manager_delegate() { |
| 69 return &process_manager_delegate_; | 75 return &process_manager_delegate_; |
| 70 } | 76 } |
| 71 | 77 |
| 72 // Returns true if the notification |type| is registered for |manager| with | 78 // Returns true if the notification |type| is registered for |manager| with |
| 73 // source |context|. Pass NULL for |context| for all sources. | 79 // source |context|. Pass NULL for |context| for all sources. |
| 74 static bool IsRegistered(ProcessManager* manager, | 80 static bool IsRegistered(ProcessManager* manager, |
| 75 int type, | 81 int type, |
| 76 BrowserContext* context) { | 82 BrowserContext* context) { |
| 77 return manager->registrar_.IsRegistered( | 83 return manager->registrar_.IsRegistered( |
| 78 manager, type, content::Source<BrowserContext>(context)); | 84 manager, type, content::Source<BrowserContext>(context)); |
| 79 } | 85 } |
| 80 | 86 |
| 81 private: | 87 private: |
| 82 ExtensionRegistry extension_registry_; // Shared between BrowserContexts. | 88 std::unique_ptr<ExtensionRegistry> |
| 89 extension_registry_; // Shared between BrowserContexts. |
| 83 TestProcessManagerDelegate process_manager_delegate_; | 90 TestProcessManagerDelegate process_manager_delegate_; |
| 84 | 91 |
| 85 DISALLOW_COPY_AND_ASSIGN(ProcessManagerTest); | 92 DISALLOW_COPY_AND_ASSIGN(ProcessManagerTest); |
| 86 }; | 93 }; |
| 87 | 94 |
| 88 // Test that notification registration works properly. | 95 // Test that notification registration works properly. |
| 89 TEST_F(ProcessManagerTest, ExtensionNotificationRegistration) { | 96 TEST_F(ProcessManagerTest, ExtensionNotificationRegistration) { |
| 90 // Test for a normal context ProcessManager. | 97 // Test for a normal context ProcessManager. |
| 91 std::unique_ptr<ProcessManager> manager1(ProcessManager::CreateForTesting( | 98 std::unique_ptr<ProcessManager> manager1(ProcessManager::CreateForTesting( |
| 92 original_context(), extension_registry())); | 99 original_context(), extension_registry())); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 scoped_refptr<SiteInstance> site21 = | 235 scoped_refptr<SiteInstance> site21 = |
| 229 manager1->GetSiteInstanceForURL(ext2_url1); | 236 manager1->GetSiteInstanceForURL(ext2_url1); |
| 230 EXPECT_NE(site11, site21); | 237 EXPECT_NE(site11, site21); |
| 231 | 238 |
| 232 scoped_refptr<SiteInstance> other_profile_site = | 239 scoped_refptr<SiteInstance> other_profile_site = |
| 233 manager2->GetSiteInstanceForURL(ext1_url1); | 240 manager2->GetSiteInstanceForURL(ext1_url1); |
| 234 EXPECT_NE(site11, other_profile_site); | 241 EXPECT_NE(site11, other_profile_site); |
| 235 } | 242 } |
| 236 | 243 |
| 237 } // namespace extensions | 244 } // namespace extensions |
| OLD | NEW |