credential_getter_win.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_CREDENTIAL_GETTER_WIN_H_
6#define CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_CREDENTIAL_GETTER_WIN_H_
7
8#include <string>
9
10#include "base/message_loop/message_loop_proxy.h"
11#include "content/public/browser/utility_process_host.h"
12#include "content/public/browser/utility_process_host_client.h"
13
14namespace local_discovery {
15namespace wifi {
16
17class CredentialGetterWin : public content::UtilityProcessHostClient {
18 public:
19  typedef base::Callback<void(bool success, const std::string& key)>
20      CredentialsCallback;
21
22  CredentialGetterWin();
23  virtual ~CredentialGetterWin();
24
25  void StartGetCredentials(const std::string& network_guid,
26                           const CredentialsCallback& callback);
27
28 private:
29  // UtilityProcessHostClient
30  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
31  virtual void OnProcessCrashed(int exit_code) OVERRIDE;
32  virtual void OnProcessLaunchFailed() OVERRIDE;
33
34  // IPC message handlers.
35  void OnGotCredentials(const std::string& key_data, bool success);
36
37  void StartOnIOThread(const std::string& network_guid);
38
39  void PostCallback(bool success, const std::string& key_data);
40
41  CredentialsCallback callback_;
42  scoped_refptr<base::MessageLoopProxy> callback_runner_;
43};
44
45}  // namespace wifi
46}  // namespace local_discovery
47
48#endif  // CHROME_BROWSER_LOCAL_DISCOVERY_WIFI_CREDENTIAL_GETTER_WIN_H_
49