| Index: chrome/renderer/extensions/extension_process_bindings.cc
|
| diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
|
| index 98b45f1bdba276f4b3162d1da45cef27775082fd..87efbc4969bf236aed60687ec0eafd9505c50865 100644
|
| --- a/chrome/renderer/extensions/extension_process_bindings.cc
|
| +++ b/chrome/renderer/extensions/extension_process_bindings.cc
|
| @@ -9,8 +9,11 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| +#include "base/command_line.h"
|
| #include "base/json/json_reader.h"
|
| #include "base/singleton.h"
|
| +#include "chrome/common/child_process_logging.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_message_bundle.h"
|
| #include "chrome/common/extensions/url_pattern.h"
|
| @@ -102,6 +105,19 @@ static L10nMessagesMap* GetL10nMessagesMap(const std::string extension_id) {
|
| }
|
| }
|
|
|
| +static std::vector<std::string> GetActiveExtensionIDs() {
|
| + std::vector<std::string> extension_ids;
|
| + ExtensionPermissionsMap& permissions =
|
| + Singleton<SingletonData>()->permissions_;
|
| +
|
| + for (ExtensionPermissionsMap::iterator iter = permissions.begin();
|
| + iter != permissions.end(); ++iter) {
|
| + extension_ids.push_back(iter->first);
|
| + }
|
| +
|
| + return extension_ids;
|
| +}
|
| +
|
| // A RenderViewVisitor class that iterates through the set of available
|
| // views, looking for a view of the given type, in the given browser window
|
| // and within the given extension.
|
| @@ -626,6 +642,12 @@ void ExtensionProcessBindings::SetAPIPermissions(
|
| permissions_map[Extension::kPermissionNames[i]] = false;
|
| for (size_t i = 0; i < permissions.size(); ++i)
|
| permissions_map[permissions[i]] = true;
|
| +
|
| + // Ugly hack. We also update our list of active extensions here. This always
|
| + // gets called, even if the extension has no api permissions. In single
|
| + // process, this has already been done in the browser code.
|
| + if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess))
|
| + child_process_logging::SetActiveExtensions(GetActiveExtensionIDs());
|
| }
|
|
|
| // static
|
|
|