Chromium Code Reviews| Index: chrome/utility/chrome_content_utility_client.cc |
| diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc |
| index 2fea5c2f9ca90654d7990acc0bc056474a4c20e7..d32de625ea9990f27ad3aeb21a9539e7e3abd565 100644 |
| --- a/chrome/utility/chrome_content_utility_client.cc |
| +++ b/chrome/utility/chrome_content_utility_client.cc |
| @@ -115,7 +115,7 @@ std::unique_ptr<service_manager::Service> CreateImageDecoderService() { |
| ChromeContentUtilityClient::ChromeContentUtilityClient() |
| : filter_messages_(false) { |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| - handlers_.push_back(new extensions::ExtensionsHandler(this)); |
| + handlers_.push_back(new extensions::ExtensionsHandler()); |
| handlers_.push_back(new image_writer::ImageWriterHandler()); |
| #endif |
| @@ -192,13 +192,16 @@ bool ChromeContentUtilityClient::OnMessageReceived( |
| void ChromeContentUtilityClient::ExposeInterfacesToBrowser( |
| service_manager::InterfaceRegistry* registry) { |
| - // When the utility process is running with elevated privileges, we need to |
| - // filter messages so that only a whitelist of IPCs can run. In Mojo, there's |
| - // no way of filtering individual messages. Instead, we can avoid adding |
| - // non-whitelisted Mojo services to the service_manager::InterfaceRegistry. |
| - // TODO(amistry): Use a whitelist once the whistlisted IPCs have been |
| - // converted to Mojo. |
| - if (filter_messages_) |
| + const bool running_elevated = |
| + base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kUtilityProcessRunningElevated); |
| +#if BUILDFLAG(ENABLE_EXTENSIONS) |
| + extensions::ExtensionsHandler::ExposeInterfacesToBrowser(registry, this, |
| + running_elevated); |
| +#endif |
| + // If our process runs with elevated privileges, only add elevated |
| + // Mojo services to the service_manager::InterfaceRegistry. |
|
Sam McNally
2017/01/10 06:55:14
I don't think the service_manager:: prefix is need
Noel Gordon
2017/01/10 22:52:36
Done. "service_manager::InterfaceRegistry." -> "i
|
| + if (running_elevated) |
| return; |
| #if !defined(OS_ANDROID) |