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

Side by Side Diff: extensions/browser/api/networking_private/networking_private_api.cc

Issue 2751423004: Move NetworkingPrivateDelegate::CryptoVerify to networking_cast_private (Closed)
Patch Set: blocking pool removed Created 3 years, 9 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 "extensions/browser/api/networking_private/networking_private_api.h" 5 #include "extensions/browser/api/networking_private/networking_private_api.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/memory/ptr_util.h"
12 #include "components/onc/onc_constants.h" 13 #include "components/onc/onc_constants.h"
14 #include "extensions/browser/api/extensions_api_client.h"
15 #include "extensions/browser/api/networking_private/networking_cast_private_dele gate.h"
13 #include "extensions/browser/api/networking_private/networking_private_delegate. h" 16 #include "extensions/browser/api/networking_private/networking_private_delegate. h"
14 #include "extensions/browser/api/networking_private/networking_private_delegate_ factory.h" 17 #include "extensions/browser/api/networking_private/networking_private_delegate_ factory.h"
15 #include "extensions/browser/extension_function_registry.h" 18 #include "extensions/browser/extension_function_registry.h"
16 #include "extensions/common/api/networking_private.h" 19 #include "extensions/common/api/networking_private.h"
17 #include "extensions/common/extension_api.h" 20 #include "extensions/common/extension_api.h"
18 #include "extensions/common/features/feature_provider.h" 21 #include "extensions/common/features/feature_provider.h"
19 22
20 namespace extensions { 23 namespace extensions {
21 24
22 namespace { 25 namespace {
(...skipping 19 matching lines...) Expand all
42 45
43 bool CanChangeSharedConfig(const Extension* extension, 46 bool CanChangeSharedConfig(const Extension* extension,
44 Feature::Context context) { 47 Feature::Context context) {
45 #if defined(OS_CHROMEOS) 48 #if defined(OS_CHROMEOS)
46 return context == Feature::WEBUI_CONTEXT; 49 return context == Feature::WEBUI_CONTEXT;
47 #else 50 #else
48 return true; 51 return true;
49 #endif 52 #endif
50 } 53 }
51 54
55 std::unique_ptr<NetworkingCastPrivateDelegate::Credentials> AsCastCredentials(
56 api::networking_private::VerificationProperties& properties) {
57 return base::MakeUnique<NetworkingCastPrivateDelegate::Credentials>(
58 properties.certificate,
59 properties.intermediate_certificates
60 ? *properties.intermediate_certificates
61 : std::vector<std::string>(),
62 properties.signed_data, properties.device_ssid, properties.device_serial,
63 properties.device_bssid, properties.public_key, properties.nonce);
64 }
65
52 } // namespace 66 } // namespace
53 67
54 namespace private_api = api::networking_private; 68 namespace private_api = api::networking_private;
55 69
56 namespace networking_private { 70 namespace networking_private {
57 71
58 // static 72 // static
59 const char kErrorAccessToSharedConfig[] = "Error.CannotChangeSharedConfig"; 73 const char kErrorAccessToSharedConfig[] = "Error.CannotChangeSharedConfig";
60 const char kErrorInvalidNetworkGuid[] = "Error.InvalidNetworkGuid"; 74 const char kErrorInvalidNetworkGuid[] = "Error.InvalidNetworkGuid";
61 const char kErrorInvalidNetworkOperation[] = "Error.InvalidNetworkOperation"; 75 const char kErrorInvalidNetworkOperation[] = "Error.InvalidNetworkOperation";
62 const char kErrorNetworkUnavailable[] = "Error.NetworkUnavailable"; 76 const char kErrorNetworkUnavailable[] = "Error.NetworkUnavailable";
63 const char kErrorEncryptionError[] = "Error.EncryptionError";
64 const char kErrorNotReady[] = "Error.NotReady"; 77 const char kErrorNotReady[] = "Error.NotReady";
65 const char kErrorNotSupported[] = "Error.NotSupported"; 78 const char kErrorNotSupported[] = "Error.NotSupported";
66 const char kErrorPolicyControlled[] = "Error.PolicyControlled"; 79 const char kErrorPolicyControlled[] = "Error.PolicyControlled";
67 const char kErrorSimLocked[] = "Error.SimLocked"; 80 const char kErrorSimLocked[] = "Error.SimLocked";
68 81
69 } // namespace networking_private 82 } // namespace networking_private
70 83
71 //////////////////////////////////////////////////////////////////////////////// 84 ////////////////////////////////////////////////////////////////////////////////
72 // NetworkingPrivateGetPropertiesFunction 85 // NetworkingPrivateGetPropertiesFunction
73 86
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 // http://crbug.com/678737 605 // http://crbug.com/678737
593 if (!HasPrivateNetworkingAccess(extension(), source_context_type(), 606 if (!HasPrivateNetworkingAccess(extension(), source_context_type(),
594 source_url())) { 607 source_url())) {
595 return RespondNow(Error(kPrivateOnlyError)); 608 return RespondNow(Error(kPrivateOnlyError));
596 } 609 }
597 610
598 std::unique_ptr<private_api::VerifyDestination::Params> params = 611 std::unique_ptr<private_api::VerifyDestination::Params> params =
599 private_api::VerifyDestination::Params::Create(*args_); 612 private_api::VerifyDestination::Params::Create(*args_);
600 EXTENSION_FUNCTION_VALIDATE(params); 613 EXTENSION_FUNCTION_VALIDATE(params);
601 614
602 GetDelegate(browser_context()) 615 NetworkingCastPrivateDelegate* delegate =
603 ->VerifyDestination( 616 ExtensionsAPIClient::Get()->GetNetworkingCastPrivateDelegate();
604 params->properties, 617 if (!delegate)
605 base::Bind(&NetworkingPrivateVerifyDestinationFunction::Success, 618 return RespondNow(Error("Not supported."));
606 this), 619
607 base::Bind(&NetworkingPrivateVerifyDestinationFunction::Failure, 620 delegate->VerifyDestination(
608 this)); 621 AsCastCredentials(params->properties),
622 base::Bind(&NetworkingPrivateVerifyDestinationFunction::Success, this),
623 base::Bind(&NetworkingPrivateVerifyDestinationFunction::Failure, this));
609 // Success() or Failure() might have been called synchronously at this point. 624 // Success() or Failure() might have been called synchronously at this point.
610 // In that case this function has already called Respond(). Return 625 // In that case this function has already called Respond(). Return
611 // AlreadyResponded() in that case. 626 // AlreadyResponded() in that case.
612 return did_respond() ? AlreadyResponded() : RespondLater(); 627 return did_respond() ? AlreadyResponded() : RespondLater();
613 } 628 }
614 629
615 void NetworkingPrivateVerifyDestinationFunction::Success(bool result) { 630 void NetworkingPrivateVerifyDestinationFunction::Success(bool result) {
616 Respond( 631 Respond(
617 ArgumentList(private_api::VerifyDestination::Results::Create(result))); 632 ArgumentList(private_api::VerifyDestination::Results::Create(result)));
618 } 633 }
(...skipping 17 matching lines...) Expand all
636 // TODO(tbarzic): Consider exposing this via separate API. 651 // TODO(tbarzic): Consider exposing this via separate API.
637 // http://crbug.com/678737 652 // http://crbug.com/678737
638 if (!HasPrivateNetworkingAccess(extension(), source_context_type(), 653 if (!HasPrivateNetworkingAccess(extension(), source_context_type(),
639 source_url())) { 654 source_url())) {
640 return RespondNow(Error(kPrivateOnlyError)); 655 return RespondNow(Error(kPrivateOnlyError));
641 } 656 }
642 std::unique_ptr<private_api::VerifyAndEncryptCredentials::Params> params = 657 std::unique_ptr<private_api::VerifyAndEncryptCredentials::Params> params =
643 private_api::VerifyAndEncryptCredentials::Params::Create(*args_); 658 private_api::VerifyAndEncryptCredentials::Params::Create(*args_);
644 EXTENSION_FUNCTION_VALIDATE(params); 659 EXTENSION_FUNCTION_VALIDATE(params);
645 660
646 GetDelegate(browser_context()) 661 NetworkingCastPrivateDelegate* delegate =
647 ->VerifyAndEncryptCredentials( 662 ExtensionsAPIClient::Get()->GetNetworkingCastPrivateDelegate();
648 params->network_guid, params->properties, 663 if (!delegate)
649 base::Bind( 664 return RespondNow(Error("Not supported."));
650 &NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success, 665
651 this), 666 delegate->VerifyAndEncryptCredentials(
652 base::Bind( 667 params->network_guid, AsCastCredentials(params->properties),
653 &NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure, 668 base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success,
654 this)); 669 this),
670 base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure,
671 this));
655 // Success() or Failure() might have been called synchronously at this point. 672 // Success() or Failure() might have been called synchronously at this point.
656 // In that case this function has already called Respond(). Return 673 // In that case this function has already called Respond(). Return
657 // AlreadyResponded() in that case. 674 // AlreadyResponded() in that case.
658 return did_respond() ? AlreadyResponded() : RespondLater(); 675 return did_respond() ? AlreadyResponded() : RespondLater();
659 } 676 }
660 677
661 void NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success( 678 void NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success(
662 const std::string& result) { 679 const std::string& result) {
663 Respond(ArgumentList( 680 Respond(ArgumentList(
664 private_api::VerifyAndEncryptCredentials::Results::Create(result))); 681 private_api::VerifyAndEncryptCredentials::Results::Create(result)));
(...skipping 18 matching lines...) Expand all
683 // TODO(tbarzic): Consider exposing this via separate API. 700 // TODO(tbarzic): Consider exposing this via separate API.
684 // http://crbug.com/678737 701 // http://crbug.com/678737
685 if (!HasPrivateNetworkingAccess(extension(), source_context_type(), 702 if (!HasPrivateNetworkingAccess(extension(), source_context_type(),
686 source_url())) { 703 source_url())) {
687 return RespondNow(Error(kPrivateOnlyError)); 704 return RespondNow(Error(kPrivateOnlyError));
688 } 705 }
689 std::unique_ptr<private_api::VerifyAndEncryptData::Params> params = 706 std::unique_ptr<private_api::VerifyAndEncryptData::Params> params =
690 private_api::VerifyAndEncryptData::Params::Create(*args_); 707 private_api::VerifyAndEncryptData::Params::Create(*args_);
691 EXTENSION_FUNCTION_VALIDATE(params); 708 EXTENSION_FUNCTION_VALIDATE(params);
692 709
693 GetDelegate(browser_context()) 710 NetworkingCastPrivateDelegate* delegate =
694 ->VerifyAndEncryptData( 711 ExtensionsAPIClient::Get()->GetNetworkingCastPrivateDelegate();
695 params->properties, params->data, 712 if (!delegate)
696 base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Success, 713 return RespondNow(Error("Not supported."));
697 this), 714
698 base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Failure, 715 delegate->VerifyAndEncryptData(
699 this)); 716 params->data, AsCastCredentials(params->properties),
717 base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Success, this),
718 base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Failure,
719 this));
700 // Success() or Failure() might have been called synchronously at this point. 720 // Success() or Failure() might have been called synchronously at this point.
701 // In that case this function has already called Respond(). Return 721 // In that case this function has already called Respond(). Return
702 // AlreadyResponded() in that case. 722 // AlreadyResponded() in that case.
703 return did_respond() ? AlreadyResponded() : RespondLater(); 723 return did_respond() ? AlreadyResponded() : RespondLater();
704 } 724 }
705 725
706 void NetworkingPrivateVerifyAndEncryptDataFunction::Success( 726 void NetworkingPrivateVerifyAndEncryptDataFunction::Success(
707 const std::string& result) { 727 const std::string& result) {
708 Respond( 728 Respond(
709 ArgumentList(private_api::VerifyAndEncryptData::Results::Create(result))); 729 ArgumentList(private_api::VerifyAndEncryptData::Results::Create(result)));
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 // private_api::GlobalPolicy is a subset of the global policy dictionary 945 // private_api::GlobalPolicy is a subset of the global policy dictionary
926 // (by definition), so use the api setter/getter to generate the subset. 946 // (by definition), so use the api setter/getter to generate the subset.
927 std::unique_ptr<private_api::GlobalPolicy> policy( 947 std::unique_ptr<private_api::GlobalPolicy> policy(
928 private_api::GlobalPolicy::FromValue(*policy_dict)); 948 private_api::GlobalPolicy::FromValue(*policy_dict));
929 DCHECK(policy); 949 DCHECK(policy);
930 return RespondNow( 950 return RespondNow(
931 ArgumentList(private_api::GetGlobalPolicy::Results::Create(*policy))); 951 ArgumentList(private_api::GetGlobalPolicy::Results::Create(*policy)));
932 } 952 }
933 953
934 } // namespace extensions 954 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698