| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/gcd_private/gcd_private_api.h" | 5 #include "chrome/browser/extensions/api/gcd_private/gcd_private_api.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/memory/linked_ptr.h" | 8 #include "base/memory/linked_ptr.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace gcd_private = api::gcd_private; | 35 namespace gcd_private = api::gcd_private; |
| 36 | 36 |
| 37 namespace { | 37 namespace { |
| 38 | 38 |
| 39 const int kNumRequestsNeeded = 2; | 39 const int kNumRequestsNeeded = 2; |
| 40 | 40 |
| 41 const char kIDPrefixCloudPrinter[] = "cloudprint:"; | 41 const char kIDPrefixCloudPrinter[] = "cloudprint:"; |
| 42 const char kIDPrefixGcd[] = "gcd:"; | 42 const char kIDPrefixGcd[] = "gcd:"; |
| 43 const char kIDPrefixMdns[] = "mdns:"; | 43 const char kIDPrefixMdns[] = "mdns:"; |
| 44 | 44 |
| 45 #if defined(ENABLE_WIFI_BOOTSTRAPPING) | |
| 46 const char kPrivatAPISetup[] = "/privet/v3/setup/start"; | 45 const char kPrivatAPISetup[] = "/privet/v3/setup/start"; |
| 47 const char kPrivetKeyWifi[] = "wifi"; | 46 const char kPrivetKeyWifi[] = "wifi"; |
| 48 const char kPrivetKeyPassphrase[] = "passphrase"; | 47 const char kPrivetKeyPassphrase[] = "passphrase"; |
| 49 const char kPrivetKeySSID[] = "ssid"; | 48 const char kPrivetKeySSID[] = "ssid"; |
| 50 const char kPrivetKeyPassphraseDotted[] = "wifi.passphrase"; | 49 const char kPrivetKeyPassphraseDotted[] = "wifi.passphrase"; |
| 51 #endif // ENABLE_WIFI_BOOTSTRAPPING | |
| 52 | 50 |
| 53 scoped_ptr<Event> MakeDeviceStateChangedEvent( | 51 scoped_ptr<Event> MakeDeviceStateChangedEvent( |
| 54 const gcd_private::GCDDevice& device) { | 52 const gcd_private::GCDDevice& device) { |
| 55 scoped_ptr<base::ListValue> params = | 53 scoped_ptr<base::ListValue> params = |
| 56 gcd_private::OnDeviceStateChanged::Create(device); | 54 gcd_private::OnDeviceStateChanged::Create(device); |
| 57 scoped_ptr<Event> event( | 55 scoped_ptr<Event> event( |
| 58 new Event(gcd_private::OnDeviceStateChanged::kEventName, params.Pass())); | 56 new Event(gcd_private::OnDeviceStateChanged::kEventName, params.Pass())); |
| 59 return event.Pass(); | 57 return event.Pass(); |
| 60 } | 58 } |
| 61 | 59 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 scoped_ptr<local_discovery::PrivetDeviceLister> privet_device_lister_; | 179 scoped_ptr<local_discovery::PrivetDeviceLister> privet_device_lister_; |
| 182 GCDDeviceMap known_devices_; | 180 GCDDeviceMap known_devices_; |
| 183 | 181 |
| 184 GCDSessionMap sessions_; | 182 GCDSessionMap sessions_; |
| 185 int last_session_id_; | 183 int last_session_id_; |
| 186 | 184 |
| 187 content::BrowserContext* const browser_context_; | 185 content::BrowserContext* const browser_context_; |
| 188 | 186 |
| 189 #if defined(ENABLE_WIFI_BOOTSTRAPPING) | 187 #if defined(ENABLE_WIFI_BOOTSTRAPPING) |
| 190 scoped_ptr<local_discovery::wifi::WifiManager> wifi_manager_; | 188 scoped_ptr<local_discovery::wifi::WifiManager> wifi_manager_; |
| 189 #endif |
| 191 PasswordMap wifi_passwords_; | 190 PasswordMap wifi_passwords_; |
| 192 #endif | |
| 193 }; | 191 }; |
| 194 | 192 |
| 195 class GcdPrivateRequest : public local_discovery::PrivetV3Session::Request { | 193 class GcdPrivateRequest : public local_discovery::PrivetV3Session::Request { |
| 196 public: | 194 public: |
| 197 GcdPrivateRequest(const std::string& api, | 195 GcdPrivateRequest(const std::string& api, |
| 198 const base::DictionaryValue& input, | 196 const base::DictionaryValue& input, |
| 199 const GcdPrivateAPIImpl::MessageResponseCallback& callback, | 197 const GcdPrivateAPIImpl::MessageResponseCallback& callback, |
| 200 GcdPrivateSessionHolder* session_holder); | 198 GcdPrivateSessionHolder* session_holder); |
| 201 virtual ~GcdPrivateRequest(); | 199 virtual ~GcdPrivateRequest(); |
| 202 | 200 |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 } | 382 } |
| 385 | 383 |
| 386 found->second->ConfirmCode(code, callback); | 384 found->second->ConfirmCode(code, callback); |
| 387 } | 385 } |
| 388 | 386 |
| 389 void GcdPrivateAPIImpl::SendMessage(int session_id, | 387 void GcdPrivateAPIImpl::SendMessage(int session_id, |
| 390 const std::string& api, | 388 const std::string& api, |
| 391 const base::DictionaryValue& input, | 389 const base::DictionaryValue& input, |
| 392 MessageResponseCallback callback) { | 390 MessageResponseCallback callback) { |
| 393 const base::DictionaryValue* input_actual = &input; | 391 const base::DictionaryValue* input_actual = &input; |
| 394 #if defined(ENABLE_WIFI_BOOTSTRAPPING) | |
| 395 scoped_ptr<base::DictionaryValue> input_cloned; | 392 scoped_ptr<base::DictionaryValue> input_cloned; |
| 396 | 393 |
| 397 if (api == kPrivatAPISetup) { | 394 if (api == kPrivatAPISetup) { |
| 398 const base::DictionaryValue* wifi = NULL; | 395 const base::DictionaryValue* wifi = NULL; |
| 399 | 396 |
| 400 if (input.GetDictionary(kPrivetKeyWifi, &wifi)) { | 397 if (input.GetDictionary(kPrivetKeyWifi, &wifi)) { |
| 401 std::string ssid; | 398 std::string ssid; |
| 402 | 399 |
| 403 if (!wifi->GetString(kPrivetKeySSID, &ssid)) { | 400 if (!wifi->GetString(kPrivetKeySSID, &ssid)) { |
| 404 callback.Run(gcd_private::STATUS_SETUPPARSEERROR, | 401 callback.Run(gcd_private::STATUS_SETUPPARSEERROR, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 416 base::DictionaryValue()); | 413 base::DictionaryValue()); |
| 417 return; | 414 return; |
| 418 } | 415 } |
| 419 | 416 |
| 420 input_cloned.reset(input.DeepCopy()); | 417 input_cloned.reset(input.DeepCopy()); |
| 421 input_cloned->SetString(kPrivetKeyPassphraseDotted, found->second); | 418 input_cloned->SetString(kPrivetKeyPassphraseDotted, found->second); |
| 422 input_actual = input_cloned.get(); | 419 input_actual = input_cloned.get(); |
| 423 } | 420 } |
| 424 } | 421 } |
| 425 } | 422 } |
| 426 #endif | |
| 427 | 423 |
| 428 GCDSessionMap::iterator found = sessions_.find(session_id); | 424 GCDSessionMap::iterator found = sessions_.find(session_id); |
| 429 | 425 |
| 430 if (found == sessions_.end()) { | 426 if (found == sessions_.end()) { |
| 431 callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR, | 427 callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR, |
| 432 base::DictionaryValue()); | 428 base::DictionaryValue()); |
| 433 return; | 429 return; |
| 434 } | 430 } |
| 435 | 431 |
| 436 found->second->SendMessage(api, *input_actual, callback); | 432 found->second->SendMessage(api, *input_actual, callback); |
| (...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 } | 931 } |
| 936 | 932 |
| 937 GcdPrivateGetCommandsListFunction::~GcdPrivateGetCommandsListFunction() { | 933 GcdPrivateGetCommandsListFunction::~GcdPrivateGetCommandsListFunction() { |
| 938 } | 934 } |
| 939 | 935 |
| 940 bool GcdPrivateGetCommandsListFunction::RunAsync() { | 936 bool GcdPrivateGetCommandsListFunction::RunAsync() { |
| 941 return false; | 937 return false; |
| 942 } | 938 } |
| 943 | 939 |
| 944 } // namespace extensions | 940 } // namespace extensions |
| OLD | NEW |