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

Unified Diff: chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc

Issue 214863002: Extension API enterprise.platformKeys. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed some namespaces, changed ownership, more documentation Created 6 years, 7 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/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
new file mode 100644
index 0000000000000000000000000000000000000000..286d8671363ce5da8cc6dce3703cca58ff2a76d3
--- /dev/null
+++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
@@ -0,0 +1,162 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.h"
+
+#include "chrome/browser/extensions/api/enterprise_platform_keys/token_method.h"
+#include "chrome/common/extensions/api/enterprise_platform_keys.h"
+#include "chrome/common/extensions/api/enterprise_platform_keys_internal.h"
+
+namespace {
+const char kErrorInvalidToken[] = "Token is invalid.";
+}
+
+namespace extensions {
+
+namespace impl = enterprise_platform_keys_details;
not at google - send to devlin 2014/05/08 00:13:14 this doesn't appear to be used
pneubeck (no reviews) 2014/05/08 15:04:17 Done.
+namespace api_epk = api::enterprise_platform_keys;
+namespace api_epki = api::enterprise_platform_keys_internal;
+
+const char kTokenIdUser[] = "user";
+
+EnterprisePlatformKeysTokenMethodExtensionFunction::
+ EnterprisePlatformKeysTokenMethodExtensionFunction() {
+}
+
+EnterprisePlatformKeysTokenMethodExtensionFunction::
+ ~EnterprisePlatformKeysTokenMethodExtensionFunction() {
+}
+
+void
+EnterprisePlatformKeysTokenMethodExtensionFunction::RespondWithoutResult() {
+ Respond(NoArguments());
+ Release();
+}
+
+void EnterprisePlatformKeysTokenMethodExtensionFunction::RespondWithResults(
+ scoped_ptr<base::ListValue> results) {
+ Respond(MultipleArguments(results.release()));
+ Release();
+}
+
+void EnterprisePlatformKeysTokenMethodExtensionFunction::RespondWithError(
+ const std::string& error_message) {
+ Respond(Error(error_message));
+ Release();
+}
+
+bool EnterprisePlatformKeysTokenMethodExtensionFunction::ValidateToken(
+ const std::string& token_id) {
+ // For now, the user token is the only valid one.
+ if (token_id != kTokenIdUser) {
+ SetError(kErrorInvalidToken);
+ return false;
+ }
+ return true;
+}
+
+EnterprisePlatformKeysInternalGenerateKeyFunction::
+ EnterprisePlatformKeysInternalGenerateKeyFunction() {
+}
+
+EnterprisePlatformKeysInternalGenerateKeyFunction::
+ ~EnterprisePlatformKeysInternalGenerateKeyFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysInternalGenerateKeyFunction::Run() {
+ scoped_ptr<api_epki::GenerateKey::Params> params(
+ api_epki::GenerateKey::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(params &&
+ ValidateToken(params->token_id));
+ AddRef();
not at google - send to devlin 2014/05/08 00:13:14 you shouldn't need to manually AddRef or Release.
pneubeck (no reviews) 2014/05/08 15:04:17 In that case, doesn't it surprise you that the Tok
not at google - send to devlin 2014/05/08 15:19:32 Where is this "delegate"? ExtensionFunction don't
+ token_method_ =
+ enterprise_platform_keys_details::CreateGenerateKey(params.Pass(), this);
+ token_method_->Run();
+ return RespondLater();
+}
+
+EnterprisePlatformKeysInternalSignFunction::
+ ~EnterprisePlatformKeysInternalSignFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysInternalSignFunction::Run() {
+ scoped_ptr<api_epki::Sign::Params> params(
+ api_epki::Sign::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(params &&
+ ValidateToken(params->token_id));
+ AddRef();
+ token_method_ =
+ enterprise_platform_keys_details::CreateSign(params.Pass(), this);
+ token_method_->Run();
+ return RespondLater();
+}
+
+EnterprisePlatformKeysGetCertificatesFunction::
+ ~EnterprisePlatformKeysGetCertificatesFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysGetCertificatesFunction::Run() {
+ scoped_ptr<api_epk::GetCertificates::Params> params(
+ api_epk::GetCertificates::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(params &&
+ ValidateToken(params->token_id));
+ AddRef();
+ token_method_ = enterprise_platform_keys_details::CreateGetCertificates(
+ params.Pass(), this);
+ token_method_->Run();
+ return RespondLater();
+}
+
+EnterprisePlatformKeysImportCertificateFunction::
+ ~EnterprisePlatformKeysImportCertificateFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysImportCertificateFunction::Run() {
+ scoped_ptr<api_epk::ImportCertificate::Params> params(
+ api_epk::ImportCertificate::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(params &&
+ ValidateToken(params->token_id));
+ AddRef();
+ token_method_ = enterprise_platform_keys_details::CreateImportCertificate(
+ params.Pass(), this);
+ token_method_->Run();
+ return RespondLater();
+}
+
+EnterprisePlatformKeysRemoveCertificateFunction::
+ ~EnterprisePlatformKeysRemoveCertificateFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysRemoveCertificateFunction::Run() {
+ scoped_ptr<api_epk::RemoveCertificate::Params> params(
+ api_epk::RemoveCertificate::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(params &&
+ ValidateToken(params->token_id));
+ AddRef();
+ token_method_ = enterprise_platform_keys_details::CreateRemoveCertificate(
+ params.Pass(), this);
+ token_method_->Run();
+ return RespondLater();
+}
+
+EnterprisePlatformKeysInternalGetTokensFunction::
+ ~EnterprisePlatformKeysInternalGetTokensFunction() {
+}
+
+ExtensionFunction::ResponseAction
+EnterprisePlatformKeysInternalGetTokensFunction::Run() {
+ EXTENSION_FUNCTION_VALIDATE_TYPESAFE(args_->empty());
+
+ std::vector<std::string> token_ids;
+ token_ids.push_back(kTokenIdUser);
+ return RespondNow(MultipleArguments(
+ api_epki::GetTokens::Results::Create(token_ids).release()));
+}
+
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698