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

Unified Diff: chrome/utility/extensions/extensions_handler.cc

Issue 2610953003: Convert utility process WiFi Credentials IPC to mojo (Closed)
Patch Set: Add mojom test network name. Created 3 years, 11 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: chrome/utility/extensions/extensions_handler.cc
diff --git a/chrome/utility/extensions/extensions_handler.cc b/chrome/utility/extensions/extensions_handler.cc
index 9992d42ec90fe10e797ef4849fae210e8b7ba3ff..753279fdaee53384734380c11a1cea87d2c0a402 100644
--- a/chrome/utility/extensions/extensions_handler.cc
+++ b/chrome/utility/extensions/extensions_handler.cc
@@ -32,6 +32,7 @@
#endif
#if defined(OS_WIN)
+#include "chrome/common/extensions/wifi_credentials_getter.mojom.h"
#include "chrome/utility/media_galleries/itunes_pref_parser_win.h"
#include "components/wifi/wifi_service.h"
#endif // defined(OS_WIN)
@@ -95,6 +96,46 @@ class MediaParserImpl : public extensions::mojom::MediaParser {
DISALLOW_COPY_AND_ASSIGN(MediaParserImpl);
};
+#if defined(OS_WIN)
+class WiFiCredentialsGetterImpl
+ : public extensions::mojom::WiFiCredentialsGetter {
+ public:
+ WiFiCredentialsGetterImpl() = default;
+ ~WiFiCredentialsGetterImpl() override = default;
+
+ static void Create(extensions::mojom::WiFiCredentialsGetterRequest request) {
+ mojo::MakeStrongBinding(base::MakeUnique<WiFiCredentialsGetterImpl>(),
+ std::move(request));
+ }
+
+ private:
+ // extensions::mojom::WiFiCredentialsGetter:
+ void GetWiFiCredentials(const std::string& ssid,
+ const GetWiFiCredentialsCallback& callback) override {
+ if (ssid == kWiFiTestNetwork) {
+ callback.Run(true, ssid); // test-mode: return the ssid in key_data.
+ return;
+ }
+
+ std::unique_ptr<wifi::WiFiService> wifi_service(
+ wifi::WiFiService::Create());
+ wifi_service->Initialize(nullptr);
+
+ std::string key_data;
+ std::string error;
+ wifi_service->GetKeyFromSystem(ssid, &key_data, &error);
+
+ const bool success = error.empty();
+ if (!success)
+ key_data.clear();
+
+ callback.Run(success, key_data);
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(WiFiCredentialsGetterImpl);
+};
+#endif // defined(OS_WIN)
+
} // namespace
namespace extensions {
@@ -117,10 +158,14 @@ void ExtensionsHandler::ExposeInterfacesToBrowser(
service_manager::InterfaceRegistry* registry,
ChromeContentUtilityClient* utility_client,
bool running_elevated) {
- // If our process runs with elevated privileges, only add elevated
- // Mojo services to the interface registry.
- if (running_elevated)
+ // If our process runs with elevated privileges, only add elevated Mojo
+ // services to the interface registry.
+ if (running_elevated) {
+#if defined(OS_WIN)
+ registry->AddInterface(base::Bind(&WiFiCredentialsGetterImpl::Create));
+#endif
return;
+ }
registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client));
}
@@ -144,11 +189,6 @@ bool ExtensionsHandler::OnMessageReceived(const IPC::Message& message) {
OnIndexPicasaAlbumsContents)
#endif // defined(OS_WIN) || defined(OS_MACOSX)
-#if defined(OS_WIN)
- IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_GetWiFiCredentials,
- OnGetWiFiCredentials)
-#endif // defined(OS_WIN)
-
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -227,17 +267,4 @@ void ExtensionsHandler::OnIndexPicasaAlbumsContents(
}
#endif // defined(OS_WIN) || defined(OS_MACOSX)
-#if defined(OS_WIN)
-void ExtensionsHandler::OnGetWiFiCredentials(const std::string& network_guid) {
- std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create());
- wifi_service->Initialize(NULL);
-
- std::string key_data;
- std::string error;
- wifi_service->GetKeyFromSystem(network_guid, &key_data, &error);
-
- Send(new ChromeUtilityHostMsg_GotWiFiCredentials(key_data, error.empty()));
-}
-#endif // defined(OS_WIN)
-
} // namespace extensions
« no previous file with comments | « chrome/utility/extensions/extensions_handler.h ('k') | content/browser/utility_process_mojo_client_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698