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

Unified Diff: extensions/browser/process_manager_unittest.cc

Issue 2802433004: ExtensionsTest: Move initialization to SetUp and avoid potential UAF. (Closed)
Patch Set: Avoid UAF. Created 3 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: extensions/browser/process_manager_unittest.cc
diff --git a/extensions/browser/process_manager_unittest.cc b/extensions/browser/process_manager_unittest.cc
index 1bc3507653369b0da49876c65441c3dc663f7872..8057631fd88cb837a422dbc65a7a41ca73807603 100644
--- a/extensions/browser/process_manager_unittest.cc
+++ b/extensions/browser/process_manager_unittest.cc
@@ -5,6 +5,7 @@
#include "extensions/browser/process_manager.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/site_instance.h"
@@ -55,16 +56,21 @@ class TestProcessManagerDelegate : public ProcessManagerDelegate {
class ProcessManagerTest : public ExtensionsTest {
public:
- ProcessManagerTest() : extension_registry_(browser_context()) {
+ ProcessManagerTest() {}
+
+ ~ProcessManagerTest() override {}
+
+ void SetUp() override {
+ ExtensionsTest::SetUp();
+ extension_registry_ =
+ base::MakeUnique<ExtensionRegistry>(browser_context());
extensions_browser_client()->set_process_manager_delegate(
&process_manager_delegate_);
}
- ~ProcessManagerTest() override {}
-
// Use original_context() to make it clear it is a non-incognito context.
BrowserContext* original_context() { return browser_context(); }
- ExtensionRegistry* extension_registry() { return &extension_registry_; }
+ ExtensionRegistry* extension_registry() { return extension_registry_.get(); }
TestProcessManagerDelegate* process_manager_delegate() {
return &process_manager_delegate_;
}
@@ -79,7 +85,8 @@ class ProcessManagerTest : public ExtensionsTest {
}
private:
- ExtensionRegistry extension_registry_; // Shared between BrowserContexts.
+ std::unique_ptr<ExtensionRegistry>
+ extension_registry_; // Shared between BrowserContexts.
TestProcessManagerDelegate process_manager_delegate_;
DISALLOW_COPY_AND_ASSIGN(ProcessManagerTest);

Powered by Google App Engine
This is Rietveld 408576698