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

Side by Side Diff: chrome/browser/extensions/api/gcd_private/gcd_private_api.cc

Issue 427123002: Added function to get list of networks with prefetched passwords (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wifi_session1
Patch Set: Created 6 years, 4 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 unified diff | Download patch
OLDNEW
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/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 const std::string& api, 278 const std::string& api,
279 const base::DictionaryValue& input, 279 const base::DictionaryValue& input,
280 MessageResponseCallback callback) { 280 MessageResponseCallback callback) {
281 const base::DictionaryValue* input_actual = &input; 281 const base::DictionaryValue* input_actual = &input;
282 #if defined(ENABLE_WIFI_BOOTSTRAPPING) 282 #if defined(ENABLE_WIFI_BOOTSTRAPPING)
283 scoped_ptr<base::DictionaryValue> input_cloned; 283 scoped_ptr<base::DictionaryValue> input_cloned;
284 284
285 if (api == kPrivatAPISetup) { 285 if (api == kPrivatAPISetup) {
286 const base::DictionaryValue* wifi = NULL; 286 const base::DictionaryValue* wifi = NULL;
287 287
288 if (input.GetDictionary(kPrivetKeyWifi, &wifi) && 288 if (input.GetDictionary(kPrivetKeyWifi, &wifi)) {
289 !wifi->HasKey(kPrivetKeyPassphrase)) {
290 // If the message is a setup message, has a wifi section, try sending the
291 // passphrase.
292 std::string ssid; 289 std::string ssid;
293 290
294 if (!wifi->GetString(kPrivetKeySSID, &ssid)) { 291 if (!wifi->GetString(kPrivetKeySSID, &ssid)) {
295 callback.Run(gcd_private::STATUS_SETUPPARSEERROR, 292 callback.Run(gcd_private::STATUS_SETUPPARSEERROR,
296 base::DictionaryValue()); 293 base::DictionaryValue());
297 return; 294 return;
298 } 295 }
299 296
300 PasswordMap::iterator found = wifi_passwords_.find(ssid); 297 if (!wifi->HasKey(kPrivetKeyPassphrase)) {
301 if (found == wifi_passwords_.end()) { 298 // If the message is a setup message, has a wifi section, try sending
302 callback.Run(gcd_private::STATUS_WIFIPASSWORDERROR, 299 // the passphrase.
303 base::DictionaryValue()); 300
304 return; 301 PasswordMap::iterator found = wifi_passwords_.find(ssid);
302 if (found == wifi_passwords_.end()) {
303 callback.Run(gcd_private::STATUS_WIFIPASSWORDERROR,
304 base::DictionaryValue());
305 return;
306 }
307
308 input_cloned.reset(input.DeepCopy());
309 input_cloned->SetString(kPrivetKeyPassphraseDotted, found->second);
310 input_actual = input_cloned.get();
305 } 311 }
306
307 input_cloned.reset(input.DeepCopy());
308 input_cloned->SetString(kPrivetKeyPassphraseDotted, found->second);
309 input_actual = input_cloned.get();
310 } 312 }
311 } 313 }
312 #endif 314 #endif
313 315
314 GCDSessionMap::iterator found = sessions_.find(session_id); 316 GCDSessionMap::iterator found = sessions_.find(session_id);
315 317
316 if (found == sessions_.end()) { 318 if (found == sessions_.end()) {
317 callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR, 319 callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR,
318 base::DictionaryValue()); 320 base::DictionaryValue());
319 return; 321 return;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 wifi_manager_->Start(); 355 wifi_manager_->Start();
354 } 356 }
355 } 357 }
356 358
357 #endif 359 #endif
358 360
359 void GcdPrivateAPI::RemoveSession(int session_id) { 361 void GcdPrivateAPI::RemoveSession(int session_id) {
360 sessions_.erase(session_id); 362 sessions_.erase(session_id);
361 } 363 }
362 364
365 scoped_ptr<base::ListValue> GcdPrivateAPI::GetPrefetchedSSIDList() {
366 scoped_ptr<base::ListValue> retval(new base::ListValue);
367
368 #if defined(ENABLE_WIFI_BOOTSTRAPPING)
369 for (PasswordMap::iterator i = wifi_passwords_.begin();
370 i != wifi_passwords_.end();
371 i++) {
372 retval->AppendString(i->first);
373 }
374 #endif
375
376 return retval.Pass();
377 }
378
363 // static 379 // static
364 void GcdPrivateAPI::SetGCDApiFlowFactoryForTests( 380 void GcdPrivateAPI::SetGCDApiFlowFactoryForTests(
365 GCDApiFlowFactoryForTests* factory) { 381 GCDApiFlowFactoryForTests* factory) {
366 g_gcd_api_flow_factory = factory; 382 g_gcd_api_flow_factory = factory;
367 } 383 }
368 384
369 GcdPrivateRequest::GcdPrivateRequest( 385 GcdPrivateRequest::GcdPrivateRequest(
370 const std::string& api, 386 const std::string& api,
371 const base::DictionaryValue& input, 387 const base::DictionaryValue& input,
372 const GcdPrivateAPI::MessageResponseCallback& callback, 388 const GcdPrivateAPI::MessageResponseCallback& callback,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 } 576 }
561 577
562 GcdPrivateQueryForNewLocalDevicesFunction:: 578 GcdPrivateQueryForNewLocalDevicesFunction::
563 ~GcdPrivateQueryForNewLocalDevicesFunction() { 579 ~GcdPrivateQueryForNewLocalDevicesFunction() {
564 } 580 }
565 581
566 bool GcdPrivateQueryForNewLocalDevicesFunction::RunSync() { 582 bool GcdPrivateQueryForNewLocalDevicesFunction::RunSync() {
567 GcdPrivateAPI* gcd_api = 583 GcdPrivateAPI* gcd_api =
568 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile()); 584 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
569 585
570 if (!gcd_api)
571 return false;
572 586
573 if (!gcd_api->QueryForDevices()) { 587 if (!gcd_api->QueryForDevices()) {
574 error_ = 588 error_ =
575 "You must first subscribe to onDeviceStateChanged or onDeviceRemoved " 589 "You must first subscribe to onDeviceStateChanged or onDeviceRemoved "
576 "notifications"; 590 "notifications";
577 return false; 591 return false;
578 } 592 }
579 593
580 return true; 594 return true;
581 } 595 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 bool GcdPrivateEstablishSessionFunction::RunAsync() { 638 bool GcdPrivateEstablishSessionFunction::RunAsync() {
625 scoped_ptr<gcd_private::EstablishSession::Params> params = 639 scoped_ptr<gcd_private::EstablishSession::Params> params =
626 gcd_private::EstablishSession::Params::Create(*args_); 640 gcd_private::EstablishSession::Params::Create(*args_);
627 641
628 if (!params) 642 if (!params)
629 return false; 643 return false;
630 644
631 GcdPrivateAPI* gcd_api = 645 GcdPrivateAPI* gcd_api =
632 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile()); 646 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
633 647
634 if (!gcd_api)
635 return false;
636 648
637 gcd_api->EstablishSession( 649 gcd_api->EstablishSession(
638 params->ip_address, 650 params->ip_address,
639 params->port, 651 params->port,
640 base::Bind(&GcdPrivateEstablishSessionFunction::OnConfirmCodeCallback, 652 base::Bind(&GcdPrivateEstablishSessionFunction::OnConfirmCodeCallback,
641 this)); 653 this));
642 654
643 return true; 655 return true;
644 } 656 }
645 657
(...skipping 16 matching lines...) Expand all
662 bool GcdPrivateConfirmCodeFunction::RunAsync() { 674 bool GcdPrivateConfirmCodeFunction::RunAsync() {
663 scoped_ptr<gcd_private::ConfirmCode::Params> params = 675 scoped_ptr<gcd_private::ConfirmCode::Params> params =
664 gcd_private::ConfirmCode::Params::Create(*args_); 676 gcd_private::ConfirmCode::Params::Create(*args_);
665 677
666 if (!params) 678 if (!params)
667 return false; 679 return false;
668 680
669 GcdPrivateAPI* gcd_api = 681 GcdPrivateAPI* gcd_api =
670 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile()); 682 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
671 683
672 if (!gcd_api)
673 return false;
674 684
675 gcd_api->ConfirmCode( 685 gcd_api->ConfirmCode(
676 params->session_id, 686 params->session_id,
677 base::Bind(&GcdPrivateConfirmCodeFunction::OnSessionEstablishedCallback, 687 base::Bind(&GcdPrivateConfirmCodeFunction::OnSessionEstablishedCallback,
678 this)); 688 this));
679 689
680 return true; 690 return true;
681 } 691 }
682 692
683 void GcdPrivateConfirmCodeFunction::OnSessionEstablishedCallback( 693 void GcdPrivateConfirmCodeFunction::OnSessionEstablishedCallback(
(...skipping 11 matching lines...) Expand all
695 bool GcdPrivateSendMessageFunction::RunAsync() { 705 bool GcdPrivateSendMessageFunction::RunAsync() {
696 scoped_ptr<gcd_private::PassMessage::Params> params = 706 scoped_ptr<gcd_private::PassMessage::Params> params =
697 gcd_private::PassMessage::Params::Create(*args_); 707 gcd_private::PassMessage::Params::Create(*args_);
698 708
699 if (!params) 709 if (!params)
700 return false; 710 return false;
701 711
702 GcdPrivateAPI* gcd_api = 712 GcdPrivateAPI* gcd_api =
703 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile()); 713 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
704 714
705 if (!gcd_api)
706 return false;
707 715
708 gcd_api->SendMessage( 716 gcd_api->SendMessage(
709 params->session_id, 717 params->session_id,
710 params->api, 718 params->api,
711 params->input.additional_properties, 719 params->input.additional_properties,
712 base::Bind(&GcdPrivateSendMessageFunction::OnMessageSentCallback, this)); 720 base::Bind(&GcdPrivateSendMessageFunction::OnMessageSentCallback, this));
713 721
714 return true; 722 return true;
715 } 723 }
716 724
(...skipping 16 matching lines...) Expand all
733 bool GcdPrivateTerminateSessionFunction::RunAsync() { 741 bool GcdPrivateTerminateSessionFunction::RunAsync() {
734 scoped_ptr<gcd_private::TerminateSession::Params> params = 742 scoped_ptr<gcd_private::TerminateSession::Params> params =
735 gcd_private::TerminateSession::Params::Create(*args_); 743 gcd_private::TerminateSession::Params::Create(*args_);
736 744
737 if (!params) 745 if (!params)
738 return false; 746 return false;
739 747
740 GcdPrivateAPI* gcd_api = 748 GcdPrivateAPI* gcd_api =
741 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile()); 749 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
742 750
743 if (!gcd_api)
744 return false;
745 751
746 gcd_api->RemoveSession(params->session_id); 752 gcd_api->RemoveSession(params->session_id);
747 753
748 SendResponse(true); 754 SendResponse(true);
749 return true; 755 return true;
750 } 756 }
751 757
752 GcdPrivateGetCommandDefinitionsFunction:: 758 GcdPrivateGetCommandDefinitionsFunction::
753 GcdPrivateGetCommandDefinitionsFunction() { 759 GcdPrivateGetCommandDefinitionsFunction() {
754 } 760 }
755 761
756 GcdPrivateGetCommandDefinitionsFunction:: 762 GcdPrivateGetCommandDefinitionsFunction::
757 ~GcdPrivateGetCommandDefinitionsFunction() { 763 ~GcdPrivateGetCommandDefinitionsFunction() {
758 } 764 }
759 765
766 GcdPrivateGetPrefetchedWifiNameListFunction::
767 GcdPrivateGetPrefetchedWifiNameListFunction() {
768 }
769
770 GcdPrivateGetPrefetchedWifiNameListFunction::
771 ~GcdPrivateGetPrefetchedWifiNameListFunction() {
772 }
773
774 bool GcdPrivateGetPrefetchedWifiNameListFunction::RunSync() {
775 GcdPrivateAPI* gcd_api =
776 BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(GetProfile());
777
778 DCHECK(gcd_api);
779 scoped_ptr<base::ListValue> ssid_list = gcd_api->GetPrefetchedSSIDList();
780
781 SetResult(ssid_list.release());
782
783 return true;
784 }
785
760 bool GcdPrivateGetCommandDefinitionsFunction::RunAsync() { 786 bool GcdPrivateGetCommandDefinitionsFunction::RunAsync() {
761 return false; 787 return false;
762 } 788 }
763 789
764 GcdPrivateInsertCommandFunction::GcdPrivateInsertCommandFunction() { 790 GcdPrivateInsertCommandFunction::GcdPrivateInsertCommandFunction() {
765 } 791 }
766 792
767 GcdPrivateInsertCommandFunction::~GcdPrivateInsertCommandFunction() { 793 GcdPrivateInsertCommandFunction::~GcdPrivateInsertCommandFunction() {
768 } 794 }
769 795
(...skipping 25 matching lines...) Expand all
795 } 821 }
796 822
797 GcdPrivateGetCommandsListFunction::~GcdPrivateGetCommandsListFunction() { 823 GcdPrivateGetCommandsListFunction::~GcdPrivateGetCommandsListFunction() {
798 } 824 }
799 825
800 bool GcdPrivateGetCommandsListFunction::RunAsync() { 826 bool GcdPrivateGetCommandsListFunction::RunAsync() {
801 return false; 827 return false;
802 } 828 }
803 829
804 } // namespace extensions 830 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698