Index: chrome/common/extensions/chrome_extensions_client.cc |
diff --git a/chrome/common/extensions/chrome_extensions_client.cc b/chrome/common/extensions/chrome_extensions_client.cc |
index d2ece73b1043fe5e4ccc6b3b59c0ace952b220dd..913b0cd41d7b214ad6262a0505181b81dfdb027a 100644 |
--- a/chrome/common/extensions/chrome_extensions_client.cc |
+++ b/chrome/common/extensions/chrome_extensions_client.cc |
@@ -10,8 +10,10 @@ |
#include "chrome/common/extensions/features/base_feature_provider.h" |
#include "chrome/common/url_constants.h" |
#include "content/public/common/url_constants.h" |
+#include "extensions/common/common_manifest_handlers.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/manifest_constants.h" |
+#include "extensions/common/manifest_handler.h" |
#include "extensions/common/permissions/api_permission_set.h" |
#include "extensions/common/permissions/permission_message.h" |
#include "extensions/common/switches.h" |
@@ -38,7 +40,13 @@ ChromeExtensionsClient::~ChromeExtensionsClient() { |
} |
void ChromeExtensionsClient::Initialize() { |
- RegisterChromeManifestHandlers(); |
+ // Registration could already be finalized in unit tests, where the utility |
+ // thread runs in-process. |
+ if (!ManifestHandler::IsRegistrationFinalized()) { |
+ RegisterCommonManifestHandlers(); |
+ RegisterChromeManifestHandlers(); |
+ ManifestHandler::FinalizeRegistration(); |
+ } |
// Set up the scripting whitelist. |
// Whitelist ChromeVox, an accessibility extension from Google that needs |