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

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

Issue 2610953003: Convert utility process WiFi Credentials IPC to mojo (Closed)
Patch Set: Delete the credentials getter_ early in the browser test. 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..3b4483260cf1209229325bb750a08c8220eddd65 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.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,45 @@ class MediaParserImpl : public extensions::mojom::MediaParser {
DISALLOW_COPY_AND_ASSIGN(MediaParserImpl);
};
+#if defined(OS_WIN)
+class WiFiCredentialsImpl : public extensions::mojom::WiFiCredentials {
+ public:
+ static void Create(extensions::mojom::WiFiCredentialsRequest request) {
Sam McNally 2017/01/16 04:16:20 Constructors and destructors before methods.
Noel Gordon 2017/01/16 11:09:58 Done.
+ mojo::MakeStrongBinding(base::MakeUnique<WiFiCredentialsImpl>(),
+ std::move(request));
+ }
+
+ WiFiCredentialsImpl() = default;
+ ~WiFiCredentialsImpl() override = default;
+
+ private:
+ // extensions::mojom::WiFiCredentials:
+ void GetWiFiCredentials(const std::string& ssid,
+ const GetWiFiCredentialsCallback& callback) override {
+ if (ssid == "chrome://test-wifi-get-key-from-system") {
+ callback.Run(true, ssid); // test-mode: echo the ssid back 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();
Sam McNally 2017/01/16 04:16:20 This wasn't here before.
Noel Gordon 2017/01/16 11:09:58 But is now because security. If this API fails, t
+
+ callback.Run(success, key_data);
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(WiFiCredentialsImpl);
+};
+#endif // defined(OS_WIN)
+
} // namespace
namespace extensions {
@@ -119,8 +159,12 @@ void ExtensionsHandler::ExposeInterfacesToBrowser(
bool running_elevated) {
// If our process runs with elevated privileges, only add elevated
// Mojo services to the interface registry.
- if (running_elevated)
+ if (running_elevated) {
+#if defined(OS_WIN)
+ registry->AddInterface(base::Bind(&WiFiCredentialsImpl::Create));
+#endif
return;
+ }
registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client));
}
@@ -144,11 +188,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 +266,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

Powered by Google App Engine
This is Rietveld 408576698