Commit 81fd883f authored by Michael Ershov's avatar Michael Ershov Committed by Commit Bot

Make a service from the platform_keys.h file

Make a keyed service from the platform_keys.h file and add
a mock class for it to allow unit testing of a code that
depends on that code.

Bug: 1045895
Change-Id: I5008805ac7aaf85af65177d67b45a9411c1726a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2078614
Commit-Queue: Michael Ershov <miersh@google.com>
Reviewed-by: default avatarEdman Anjos <edman@chromium.org>
Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748197}
parent a442cecc
......@@ -1720,9 +1720,11 @@ source_set("chromeos") {
"platform_keys/key_permissions.h",
"platform_keys/key_permissions_policy_handler.cc",
"platform_keys/key_permissions_policy_handler.h",
"platform_keys/platform_keys.cc",
"platform_keys/platform_keys.h",
"platform_keys/platform_keys_nss.cc",
"platform_keys/platform_keys_service.cc",
"platform_keys/platform_keys_service.h",
"platform_keys/platform_keys_service_factory.cc",
"platform_keys/platform_keys_service_factory.h",
"platform_keys/platform_keys_service_nss.cc",
"plugin_vm/plugin_vm_drive_image_download_service.cc",
"plugin_vm/plugin_vm_drive_image_download_service.h",
"plugin_vm/plugin_vm_engagement_metrics_service.cc",
......@@ -2605,6 +2607,8 @@ static_library("test_support") {
"login/test/test_predicate_waiter.h",
"login/version_updater/mock_version_updater_delegate.cc",
"login/version_updater/mock_version_updater_delegate.h",
"platform_keys/mock_platform_keys_service.cc",
"platform_keys/mock_platform_keys_service.h",
"printing/printing_stubs.cc",
"printing/printing_stubs.h",
"scoped_set_running_on_chromeos_for_testing.cc",
......
......@@ -14,7 +14,7 @@
#include "base/logging.h"
#include "base/memory/singleton.h"
#include "chrome/browser/chromeos/platform_keys/key_permissions.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/net/nss_context.h"
#include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/profiles/profile.h"
......
......@@ -16,7 +16,7 @@
#include "chrome/browser/chromeos/arc/session/arc_service_launcher.h"
#include "chrome/browser/chromeos/login/test/local_policy_test_server_mixin.h"
#include "chrome/browser/chromeos/platform_keys/key_permissions.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/chromeos/policy/user_policy_test_helper.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/net/nss_context.h"
......
......@@ -15,7 +15,7 @@
#include "chrome/browser/chromeos/arc/policy/arc_policy_bridge.h"
#include "chrome/browser/chromeos/certificate_provider/certificate_provider_service.h"
#include "chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/common/net/x509_certificate_model_nss.h"
#include "components/arc/arc_browser_context_keyed_service_factory_base.h"
#include "components/policy/core/common/policy_map.h"
......
......@@ -16,7 +16,8 @@
#include "base/optional.h"
#include "base/stl_util.h"
#include "base/values.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service_factory.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/state_store.h"
#include "net/cert/x509_certificate.h"
......@@ -74,14 +75,12 @@ class ExtensionPlatformKeysService::GenerateKeyTask : public Task {
const std::string& extension_id,
const GenerateKeyCallback& callback,
KeyPermissions* key_permissions,
ExtensionPlatformKeysService* service,
content::BrowserContext* browser_context)
ExtensionPlatformKeysService* service)
: token_id_(token_id),
extension_id_(extension_id),
callback_(callback),
key_permissions_(key_permissions),
service_(service),
browser_context_(browser_context) {}
service_(service) {}
~GenerateKeyTask() override = default;
......@@ -103,7 +102,6 @@ class ExtensionPlatformKeysService::GenerateKeyTask : public Task {
extension_permissions_;
KeyPermissions* const key_permissions_;
ExtensionPlatformKeysService* const service_;
content::BrowserContext* const browser_context_;
private:
void DoStep() {
......@@ -183,14 +181,12 @@ class ExtensionPlatformKeysService::GenerateRSAKeyTask
const std::string& extension_id,
const GenerateKeyCallback& callback,
KeyPermissions* key_permissions,
ExtensionPlatformKeysService* service,
content::BrowserContext* browser_context)
ExtensionPlatformKeysService* service)
: GenerateKeyTask(token_id,
extension_id,
callback,
key_permissions,
service,
browser_context),
service),
modulus_length_(modulus_length) {}
~GenerateRSAKeyTask() override {}
......@@ -198,8 +194,8 @@ class ExtensionPlatformKeysService::GenerateRSAKeyTask
private:
// Generates the RSA key.
void GenerateKey(GenerateKeyCallback callback) override {
platform_keys::subtle::GenerateRSAKey(token_id_, modulus_length_, callback,
browser_context_);
service_->platform_keys_service_->GenerateRSAKey(token_id_, modulus_length_,
callback);
}
const unsigned int modulus_length_;
......@@ -215,14 +211,12 @@ class ExtensionPlatformKeysService::GenerateECKeyTask : public GenerateKeyTask {
const std::string& extension_id,
const GenerateKeyCallback& callback,
KeyPermissions* key_permissions,
ExtensionPlatformKeysService* service,
content::BrowserContext* browser_context)
ExtensionPlatformKeysService* service)
: GenerateKeyTask(token_id,
extension_id,
callback,
key_permissions,
service,
browser_context),
service),
named_curve_(named_curve) {}
~GenerateECKeyTask() override {}
......@@ -230,8 +224,8 @@ class ExtensionPlatformKeysService::GenerateECKeyTask : public GenerateKeyTask {
private:
// Generates the EC key.
void GenerateKey(GenerateKeyCallback callback) override {
platform_keys::subtle::GenerateECKey(token_id_, named_curve_, callback,
browser_context_);
service_->platform_keys_service_->GenerateECKey(token_id_, named_curve_,
callback);
}
const std::string named_curve_;
......@@ -327,10 +321,9 @@ class ExtensionPlatformKeysService::SignTask : public Task {
}
void GetKeyLocations() {
platform_keys::GetKeyLocations(
service_->platform_keys_service_->GetKeyLocations(
public_key_spki_der_,
base::BindRepeating(&SignTask::GotKeyLocation, base::Unretained(this)),
service_->browser_context_);
base::BindRepeating(&SignTask::GotKeyLocation, base::Unretained(this)));
}
void GotKeyLocation(const std::vector<std::string>& token_ids,
......@@ -356,24 +349,21 @@ class ExtensionPlatformKeysService::SignTask : public Task {
switch (key_type_) {
case platform_keys::KeyType::kRsassaPkcs1V15: {
if (raw_pkcs1_) {
platform_keys::subtle::SignRSAPKCS1Raw(
service_->platform_keys_service_->SignRSAPKCS1Raw(
token_id_, data_, public_key_spki_der_,
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()),
service_->browser_context_);
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()));
} else {
platform_keys::subtle::SignRSAPKCS1Digest(
service_->platform_keys_service_->SignRSAPKCS1Digest(
token_id_, data_, public_key_spki_der_, hash_algorithm_,
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()),
service_->browser_context_);
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()));
}
break;
}
case platform_keys::KeyType::kEcdsa: {
platform_keys::subtle::SignECDSADigest(
service_->platform_keys_service_->SignECDSADigest(
token_id_, data_, public_key_spki_der_, hash_algorithm_,
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()),
service_->browser_context_);
base::Bind(&SignTask::DidSign, weak_factory_.GetWeakPtr()));
break;
}
}
......@@ -511,10 +501,9 @@ class ExtensionPlatformKeysService::SelectTask : public Task {
// Retrieves all certificates matching |request_|. Will call back to
// |GotMatchingCerts()|.
void GetMatchingCerts() {
platform_keys::subtle::SelectClientCertificates(
service_->platform_keys_service_->SelectClientCertificates(
request_.certificate_authorities,
base::Bind(&SelectTask::GotMatchingCerts, weak_factory_.GetWeakPtr()),
service_->browser_context_);
base::Bind(&SelectTask::GotMatchingCerts, weak_factory_.GetWeakPtr()));
}
// If the certificate request could be processed successfully, |matches| will
......@@ -574,11 +563,10 @@ class ExtensionPlatformKeysService::SelectTask : public Task {
const std::string public_key_spki_der(
platform_keys::GetSubjectPublicKeyInfo(certificate));
platform_keys::GetKeyLocations(
service_->platform_keys_service_->GetKeyLocations(
public_key_spki_der,
base::BindRepeating(&SelectTask::GotKeyLocations,
base::Unretained(this), certificate),
service_->browser_context_);
base::Unretained(this), certificate));
}
void GotKeyLocations(const scoped_refptr<net::X509Certificate>& certificate,
......@@ -739,10 +727,14 @@ ExtensionPlatformKeysService::ExtensionPlatformKeysService(
content::BrowserContext* browser_context,
extensions::StateStore* state_store)
: browser_context_(browser_context),
platform_keys_service_(
platform_keys::PlatformKeysServiceFactory::GetForBrowserContext(
browser_context)),
key_permissions_(profile_is_managed,
profile_prefs,
profile_policies,
state_store) {
DCHECK(platform_keys_service_);
DCHECK(browser_context);
DCHECK(state_store);
}
......@@ -761,8 +753,8 @@ void ExtensionPlatformKeysService::GenerateRSAKey(
const GenerateKeyCallback& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
StartOrQueueTask(std::make_unique<GenerateRSAKeyTask>(
token_id, modulus_length, extension_id, callback, &key_permissions_, this,
browser_context_));
token_id, modulus_length, extension_id, callback, &key_permissions_,
this));
}
void ExtensionPlatformKeysService::GenerateECKey(
......@@ -772,8 +764,7 @@ void ExtensionPlatformKeysService::GenerateECKey(
const GenerateKeyCallback& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
StartOrQueueTask(std::make_unique<GenerateECKeyTask>(
token_id, named_curve, extension_id, callback, &key_permissions_, this,
browser_context_));
token_id, named_curve, extension_id, callback, &key_permissions_, this));
}
void ExtensionPlatformKeysService::SignDigest(
......
......@@ -14,7 +14,7 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/chromeos/platform_keys/key_permissions.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "components/keyed_service/core/keyed_service.h"
class PrefService;
......@@ -215,7 +215,8 @@ class ExtensionPlatformKeysService : public KeyedService {
const std::string& public_key_spki_der,
const std::string& error_message);
content::BrowserContext* browser_context_;
content::BrowserContext* const browser_context_ = nullptr;
platform_keys::PlatformKeysService* const platform_keys_service_ = nullptr;
KeyPermissions key_permissions_;
std::unique_ptr<SelectDelegate> select_delegate_;
base::queue<std::unique_ptr<Task>> tasks_;
......
......@@ -14,6 +14,7 @@
#include "base/memory/singleton.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/chromeos/platform_keys/extension_platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service_factory.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/profiles/incognito_helpers.h"
......@@ -89,6 +90,7 @@ ExtensionPlatformKeysServiceFactory::ExtensionPlatformKeysServiceFactory()
"ExtensionPlatformKeysService",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(extensions::ExtensionSystemFactory::GetInstance());
DependsOn(chromeos::platform_keys::PlatformKeysServiceFactory::GetInstance());
}
ExtensionPlatformKeysServiceFactory::~ExtensionPlatformKeysServiceFactory() {}
......
// Copyright 2020 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/chromeos/platform_keys/mock_platform_keys_service.h"
namespace chromeos {
namespace platform_keys {
MockPlatformKeysService::MockPlatformKeysService() = default;
MockPlatformKeysService::~MockPlatformKeysService() = default;
std::unique_ptr<KeyedService> BuildMockPlatformKeysService(
content::BrowserContext*) {
return std::make_unique<MockPlatformKeysService>();
}
} // namespace platform_keys
} // namespace chromeos
// Copyright 2020 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.
#ifndef CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_MOCK_PLATFORM_KEYS_SERVICE_H_
#define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_MOCK_PLATFORM_KEYS_SERVICE_H_
#include <memory>
#include "base/callback.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace chromeos {
namespace platform_keys {
class MockPlatformKeysService : public PlatformKeysService {
public:
MockPlatformKeysService();
MockPlatformKeysService(const MockPlatformKeysService&) = delete;
MockPlatformKeysService& operator=(const MockPlatformKeysService&) = delete;
~MockPlatformKeysService() override;
MOCK_METHOD(void,
GenerateRSAKey,
(const std::string& token_id,
unsigned int modulus_length_bits,
const GenerateKeyCallback& callback),
(override));
MOCK_METHOD(void,
GenerateECKey,
(const std::string& token_id,
const std::string& named_curve,
const GenerateKeyCallback& callback),
(override));
MOCK_METHOD(void,
SignRSAPKCS1Digest,
(const std::string& token_id,
const std::string& data,
const std::string& public_key_spki_der,
HashAlgorithm hash_algorithm,
const SignCallback& callback),
(override));
MOCK_METHOD(void,
SignRSAPKCS1Raw,
(const std::string& token_id,
const std::string& data,
const std::string& public_key_spki_der,
const SignCallback& callback),
(override));
MOCK_METHOD(void,
SignECDSADigest,
(const std::string& token_id,
const std::string& data,
const std::string& public_key_spki_der,
HashAlgorithm hash_algorithm,
const SignCallback& callback),
(override));
MOCK_METHOD(void,
SelectClientCertificates,
(const std::vector<std::string>& certificate_authorities,
const SelectCertificatesCallback& callback),
(override));
MOCK_METHOD(void,
GetCertificates,
(const std::string& token_id,
const GetCertificatesCallback& callback),
(override));
MOCK_METHOD(void,
ImportCertificate,
(const std::string& token_id,
const scoped_refptr<net::X509Certificate>& certificate,
const ImportCertificateCallback& callback),
(override));
MOCK_METHOD(void,
RemoveCertificate,
(const std::string& token_id,
const scoped_refptr<net::X509Certificate>& certificate,
const RemoveCertificateCallback& callback),
(override));
MOCK_METHOD(void, GetTokens, (const GetTokensCallback& callback), (override));
MOCK_METHOD(void,
GetKeyLocations,
(const std::string& public_key_spki_der,
const GetKeyLocationsCallback& callback),
(override));
};
std::unique_ptr<KeyedService> BuildMockPlatformKeysService(
content::BrowserContext* context);
} // namespace platform_keys
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_MOCK_PLATFORM_KEYS_SERVICE_H_
// Copyright 2014 The Chromium Authors. All rights reserved.
// Copyright 2020 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/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include <map>
......@@ -15,9 +15,11 @@
#include "net/cert/x509_certificate.h"
namespace chromeos {
namespace platform_keys {
const char kTokenIdUser[] = "user";
const char kTokenIdSystem[] = "system";
namespace {
void IntersectOnWorkerThread(const net::CertificateList& certs1,
......@@ -47,18 +49,6 @@ void IntersectOnWorkerThread(const net::CertificateList& certs1,
} // namespace
const char kTokenIdUser[] = "user";
const char kTokenIdSystem[] = "system";
ClientCertificateRequest::ClientCertificateRequest() {
}
ClientCertificateRequest::ClientCertificateRequest(
const ClientCertificateRequest& other) = default;
ClientCertificateRequest::~ClientCertificateRequest() {
}
void IntersectCertificates(
const net::CertificateList& certs1,
const net::CertificateList& certs2,
......@@ -78,6 +68,25 @@ void IntersectCertificates(
base::Bind(callback, base::Passed(&intersection)));
}
} // namespace platform_keys
// =================== ClientCertificateRequest ================================
ClientCertificateRequest::ClientCertificateRequest() = default;
ClientCertificateRequest::ClientCertificateRequest(
const ClientCertificateRequest& other) = default;
ClientCertificateRequest::~ClientCertificateRequest() = default;
// =================== PlatformKeysServiceImpl =================================
PlatformKeysServiceImpl::PlatformKeysServiceImpl(
content::BrowserContext* context)
: browser_context_(context) {}
PlatformKeysServiceImpl::~PlatformKeysServiceImpl() = default;
// The rest of the methods - the NSS-specific part of the implementation -
// resides in the platform_keys_service_nss.cc file.
} // namespace platform_keys
} // namespace chromeos
This diff is collapsed.
// Copyright 2020 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/chromeos/platform_keys/platform_keys_service_factory.h"
#include "base/memory/singleton.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
namespace chromeos {
namespace platform_keys {
// static
PlatformKeysService* PlatformKeysServiceFactory::GetForBrowserContext(
content::BrowserContext* context) {
return static_cast<PlatformKeysService*>(
GetInstance()->GetServiceForBrowserContext(context, true));
}
// static
PlatformKeysServiceFactory* PlatformKeysServiceFactory::GetInstance() {
return base::Singleton<PlatformKeysServiceFactory>::get();
}
PlatformKeysServiceFactory::PlatformKeysServiceFactory()
: BrowserContextKeyedServiceFactory(
"PlatformKeysService",
BrowserContextDependencyManager::GetInstance()) {}
PlatformKeysServiceFactory::~PlatformKeysServiceFactory() = default;
KeyedService* PlatformKeysServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
return new PlatformKeysServiceImpl(context);
}
content::BrowserContext* PlatformKeysServiceFactory::GetBrowserContextToUse(
content::BrowserContext* context) const {
return chrome::GetBrowserContextRedirectedInIncognito(context);
}
} // namespace platform_keys
} // namespace chromeos
// Copyright 2020 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.
#ifndef CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
#define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
namespace base {
template <typename T>
struct DefaultSingletonTraits;
} // namespace base
namespace chromeos {
namespace platform_keys {
class PlatformKeysService;
// Factory to create PlatformKeysService.
class PlatformKeysServiceFactory : public BrowserContextKeyedServiceFactory {
public:
static PlatformKeysService* GetForBrowserContext(
content::BrowserContext* context);
static PlatformKeysServiceFactory* GetInstance();
private:
friend struct base::DefaultSingletonTraits<PlatformKeysServiceFactory>;
PlatformKeysServiceFactory();
PlatformKeysServiceFactory(const PlatformKeysServiceFactory&) = delete;
PlatformKeysServiceFactory& operator=(const PlatformKeysServiceFactory&) =
delete;
~PlatformKeysServiceFactory() override;
// BrowserContextKeyedServiceFactory:
content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override;
KeyedService* BuildServiceInstanceFor(
content::BrowserContext* context) const override;
};
} // namespace platform_keys
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
......@@ -11,7 +11,8 @@
#include "base/values.h"
#include "chrome/browser/chromeos/platform_keys/extension_platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/extension_platform_keys_service_factory.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service_factory.h"
#include "chrome/browser/extensions/api/platform_keys/platform_keys_api.h"
#include "chrome/common/extensions/api/enterprise_platform_keys.h"
#include "chrome/common/extensions/api/enterprise_platform_keys_internal.h"
......@@ -111,12 +112,14 @@ EnterprisePlatformKeysGetCertificatesFunction::Run() {
if (!platform_keys::ValidateToken(params->token_id, &platform_keys_token_id))
return RespondNow(Error(platform_keys::kErrorInvalidToken));
chromeos::platform_keys::GetCertificates(
chromeos::platform_keys::PlatformKeysService* platform_keys_service =
chromeos::platform_keys::PlatformKeysServiceFactory::GetForBrowserContext(
browser_context());
platform_keys_service->GetCertificates(
platform_keys_token_id,
base::Bind(
&EnterprisePlatformKeysGetCertificatesFunction::OnGotCertificates,
this),
browser_context());
this));
return RespondLater();
}
......@@ -167,12 +170,16 @@ EnterprisePlatformKeysImportCertificateFunction::Run() {
if (!cert_x509.get())
return RespondNow(Error(kEnterprisePlatformErrorInvalidX509Cert));
chromeos::platform_keys::ImportCertificate(
chromeos::platform_keys::PlatformKeysService* platform_keys_service =
chromeos::platform_keys::PlatformKeysServiceFactory::GetForBrowserContext(
browser_context());
CHECK(platform_keys_service);
platform_keys_service->ImportCertificate(
platform_keys_token_id, cert_x509,
base::Bind(&EnterprisePlatformKeysImportCertificateFunction::
OnImportedCertificate,
this),
browser_context());
this));
return RespondLater();
}
......@@ -209,12 +216,16 @@ EnterprisePlatformKeysRemoveCertificateFunction::Run() {
if (!cert_x509.get())
return RespondNow(Error(kEnterprisePlatformErrorInvalidX509Cert));
chromeos::platform_keys::RemoveCertificate(
chromeos::platform_keys::PlatformKeysService* platform_keys_service =
chromeos::platform_keys::PlatformKeysServiceFactory::GetForBrowserContext(
browser_context());
CHECK(platform_keys_service);
platform_keys_service->RemoveCertificate(
platform_keys_token_id, cert_x509,
base::Bind(&EnterprisePlatformKeysRemoveCertificateFunction::
OnRemovedCertificate,
this),
browser_context());
this));
return RespondLater();
}
......@@ -234,10 +245,13 @@ ExtensionFunction::ResponseAction
EnterprisePlatformKeysInternalGetTokensFunction::Run() {
EXTENSION_FUNCTION_VALIDATE(args_->empty());
chromeos::platform_keys::GetTokens(
base::Bind(&EnterprisePlatformKeysInternalGetTokensFunction::OnGotTokens,
this),
browser_context());
chromeos::platform_keys::PlatformKeysService* platform_keys_service =
chromeos::platform_keys::PlatformKeysServiceFactory::GetForBrowserContext(
browser_context());
CHECK(platform_keys_service);
platform_keys_service->GetTokens(base::Bind(
&EnterprisePlatformKeysInternalGetTokensFunction::OnGotTokens, this));
return RespondLater();
}
......
......@@ -14,7 +14,7 @@
#include "base/values.h"
#include "chrome/browser/chromeos/platform_keys/extension_platform_keys_service.h"
#include "chrome/browser/chromeos/platform_keys/extension_platform_keys_service_factory.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys.h"
#include "chrome/browser/chromeos/platform_keys/platform_keys_service.h"
#include "chrome/browser/extensions/api/platform_keys/verify_trust_api.h"
#include "chrome/common/extensions/api/platform_keys_internal.h"
#include "components/web_modal/web_contents_modal_dialog_manager.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment