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

Unified Diff: chrome/browser/extensions/api/gcd_private/gcd_private_api.cc

Issue 2704313002: Remove gcdPrivate API code. (Closed)
Patch Set: Remove gcdPrivate API code. Created 3 years, 10 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/gcd_private/gcd_private_api.cc
diff --git a/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc b/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
deleted file mode 100644
index d21dc8f19f6d34fb0b15df9dad066a4fc4913480..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
+++ /dev/null
@@ -1,447 +0,0 @@
-// 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/gcd_private/gcd_private_api.h"
-
-#include <memory>
-
-#include "base/lazy_instance.h"
-#include "base/macros.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "chrome/browser/extensions/api/gcd_private/privet_v3_context_getter.h"
-#include "chrome/browser/extensions/api/gcd_private/privet_v3_session.h"
-#include "chrome/browser/local_discovery/endpoint_resolver.h"
-#include "chrome/browser/local_discovery/service_discovery_shared_client.h"
-#include "chrome/browser/profiles/profile.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/storage_partition.h"
-#include "net/url_request/url_request_context_getter.h"
-
-namespace extensions {
-
-namespace gcd_private = api::gcd_private;
-
-namespace {
-
-const char kPrivatAPISetup[] = "/privet/v3/setup/start";
-const char kPrivetKeyWifi[] = "wifi";
-const char kPrivetKeyPassphrase[] = "passphrase";
-const char kPrivetKeySSID[] = "ssid";
-
-base::LazyInstance<BrowserContextKeyedAPIFactory<GcdPrivateAPI> > g_factory =
- LAZY_INSTANCE_INITIALIZER;
-
-} // namespace
-
-class GcdPrivateSessionHolder;
-
-class GcdPrivateAPIImpl {
- public:
- typedef base::Callback<void(bool success)> SuccessCallback;
-
- typedef base::Callback<void(int session_id,
- api::gcd_private::Status status,
- const base::DictionaryValue& info)>
- CreateSessionCallback;
-
- typedef base::Callback<void(api::gcd_private::Status status)> SessionCallback;
-
- typedef base::Callback<void(api::gcd_private::Status status,
- const base::DictionaryValue& response)>
- MessageResponseCallback;
-
- explicit GcdPrivateAPIImpl(content::BrowserContext* context);
- virtual ~GcdPrivateAPIImpl();
-
- static GcdPrivateAPIImpl* Get(content::BrowserContext* context);
-
- void CreateSession(const std::string& service_name,
- const CreateSessionCallback& callback);
-
- void StartPairing(int session_id,
- api::gcd_private::PairingType pairing_type,
- const SessionCallback& callback);
-
- void ConfirmCode(int session_id,
- const std::string& code,
- const SessionCallback& callback);
-
- void SendMessage(int session_id,
- const std::string& api,
- const base::DictionaryValue& input,
- const MessageResponseCallback& callback);
-
- void RemoveSession(int session_id);
- void RemoveSessionDelayed(int session_id);
-
- std::unique_ptr<base::ListValue> GetPrefetchedSSIDList();
-
- private:
- typedef std::map<std::string /* ssid */, std::string /* password */>
- PasswordMap;
-
- void SendMessageInternal(int session_id,
- const std::string& api,
- const base::DictionaryValue& input,
- const MessageResponseCallback& callback);
-
- void OnServiceResolved(int session_id,
- const CreateSessionCallback& callback,
- const net::IPEndPoint& endpoint);
-
- scoped_refptr<local_discovery::ServiceDiscoverySharedClient>
- service_discovery_client_;
-
- struct SessionInfo {
- std::unique_ptr<PrivetV3Session> session;
- std::unique_ptr<local_discovery::EndpointResolver> resolver;
- };
-
- std::map<int, SessionInfo> sessions_;
- int last_session_id_ = 0;
-
- content::BrowserContext* const browser_context_;
-
- scoped_refptr<PrivetV3ContextGetter> context_getter_;
-
- base::WeakPtrFactory<GcdPrivateAPIImpl> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(GcdPrivateAPIImpl);
-};
-
-GcdPrivateAPIImpl::GcdPrivateAPIImpl(content::BrowserContext* context)
- : browser_context_(context) {
- DCHECK(browser_context_);
-}
-
-GcdPrivateAPIImpl::~GcdPrivateAPIImpl() {
-}
-
-// static
-GcdPrivateAPIImpl* GcdPrivateAPIImpl::Get(content::BrowserContext* context) {
- GcdPrivateAPI* gcd_api =
- BrowserContextKeyedAPIFactory<GcdPrivateAPI>::Get(context);
- return gcd_api ? gcd_api->impl_.get() : NULL;
-}
-
-void GcdPrivateAPIImpl::CreateSession(const std::string& service_name,
- const CreateSessionCallback& callback) {
- int session_id = last_session_id_++;
- auto& session_data = sessions_[session_id];
- session_data.resolver.reset(new local_discovery::EndpointResolver());
- session_data.resolver->Start(
- service_name, base::Bind(&GcdPrivateAPIImpl::OnServiceResolved,
- base::Unretained(this), session_id, callback));
-}
-
-void GcdPrivateAPIImpl::OnServiceResolved(int session_id,
- const CreateSessionCallback& callback,
- const net::IPEndPoint& endpoint) {
- if (endpoint.address().empty()) {
- return callback.Run(session_id, gcd_private::STATUS_SERVICERESOLUTIONERROR,
- base::DictionaryValue());
- }
- auto& session_data = sessions_[session_id];
-
- if (!context_getter_) {
- context_getter_ = new PrivetV3ContextGetter(
- content::BrowserContext::GetDefaultStoragePartition(browser_context_)->
- GetURLRequestContext()->GetNetworkTaskRunner());
- }
-
- session_data.session.reset(new PrivetV3Session(
- context_getter_, net::HostPortPair::FromIPEndPoint(endpoint)));
- session_data.session->Init(base::Bind(callback, session_id));
-}
-
-void GcdPrivateAPIImpl::StartPairing(int session_id,
- api::gcd_private::PairingType pairing_type,
- const SessionCallback& callback) {
- auto found = sessions_.find(session_id);
-
- if (found == sessions_.end())
- return callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR);
-
- found->second.session->StartPairing(pairing_type, callback);
-}
-
-void GcdPrivateAPIImpl::ConfirmCode(int session_id,
- const std::string& code,
- const SessionCallback& callback) {
- auto found = sessions_.find(session_id);
-
- if (found == sessions_.end())
- return callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR);
-
- found->second.session->ConfirmCode(code, callback);
-}
-
-void GcdPrivateAPIImpl::SendMessage(int session_id,
- const std::string& api,
- const base::DictionaryValue& input,
- const MessageResponseCallback& callback) {
- const base::DictionaryValue* input_actual = &input;
- std::unique_ptr<base::DictionaryValue> input_cloned;
-
- if (api == kPrivatAPISetup) {
- const base::DictionaryValue* wifi = NULL;
-
- if (input.GetDictionary(kPrivetKeyWifi, &wifi)) {
- std::string ssid;
-
- if (!wifi->GetString(kPrivetKeySSID, &ssid)) {
- LOG(ERROR) << "Missing " << kPrivetKeySSID;
- return callback.Run(gcd_private::STATUS_SETUPPARSEERROR,
- base::DictionaryValue());
- }
-
- if (!wifi->HasKey(kPrivetKeyPassphrase)) {
- LOG(ERROR) << "Password is unknown";
- return callback.Run(gcd_private::STATUS_WIFIPASSWORDERROR,
- base::DictionaryValue());
- }
- }
- }
-
- auto found = sessions_.find(session_id);
-
- if (found == sessions_.end()) {
- return callback.Run(gcd_private::STATUS_UNKNOWNSESSIONERROR,
- base::DictionaryValue());
- }
-
- found->second.session->SendMessage(api, *input_actual, callback);
-}
-
-void GcdPrivateAPIImpl::RemoveSession(int session_id) {
- sessions_.erase(session_id);
-}
-
-void GcdPrivateAPIImpl::RemoveSessionDelayed(int session_id) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(&GcdPrivateAPIImpl::RemoveSession,
- weak_ptr_factory_.GetWeakPtr(), session_id));
-}
-
-std::unique_ptr<base::ListValue> GcdPrivateAPIImpl::GetPrefetchedSSIDList() {
- std::unique_ptr<base::ListValue> retval(new base::ListValue);
-
- return retval;
-}
-
-
-
-GcdPrivateAPI::GcdPrivateAPI(content::BrowserContext* context)
- : impl_(new GcdPrivateAPIImpl(context)) {
-}
-
-GcdPrivateAPI::~GcdPrivateAPI() {
-}
-
-// static
-BrowserContextKeyedAPIFactory<GcdPrivateAPI>*
-GcdPrivateAPI::GetFactoryInstance() {
- return g_factory.Pointer();
-}
-
-GcdPrivateGetDeviceInfoFunction::GcdPrivateGetDeviceInfoFunction() {
-}
-
-GcdPrivateGetDeviceInfoFunction::~GcdPrivateGetDeviceInfoFunction() {
-}
-
-bool GcdPrivateGetDeviceInfoFunction::RunAsync() {
- std::unique_ptr<gcd_private::CreateSession::Params> params =
- gcd_private::CreateSession::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
- GcdPrivateAPIImpl::CreateSessionCallback callback =
- base::Bind(&GcdPrivateGetDeviceInfoFunction::OnSessionInitialized, this);
- gcd_api->CreateSession(params->service_name, callback);
-
- return true;
-}
-
-void GcdPrivateGetDeviceInfoFunction::OnSessionInitialized(
- int session_id,
- api::gcd_private::Status status,
- const base::DictionaryValue& info) {
- gcd_private::GetDeviceInfo::Results::DeviceInfo device_info;
- device_info.additional_properties.MergeDictionary(&info);
-
- results_ = gcd_private::GetDeviceInfo::Results::Create(status, device_info);
- SendResponse(true);
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
- gcd_api->RemoveSessionDelayed(session_id);
-}
-
-GcdPrivateCreateSessionFunction::GcdPrivateCreateSessionFunction() {
-}
-
-GcdPrivateCreateSessionFunction::~GcdPrivateCreateSessionFunction() {
-}
-
-bool GcdPrivateCreateSessionFunction::RunAsync() {
- std::unique_ptr<gcd_private::CreateSession::Params> params =
- gcd_private::CreateSession::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
- GcdPrivateAPIImpl::CreateSessionCallback callback =
- base::Bind(&GcdPrivateCreateSessionFunction::OnSessionInitialized, this);
- gcd_api->CreateSession(params->service_name, callback);
-
- return true;
-}
-
-void GcdPrivateCreateSessionFunction::OnSessionInitialized(
- int session_id,
- api::gcd_private::Status status,
- const base::DictionaryValue& info) {
- std::vector<api::gcd_private::PairingType> pairing_types;
-
- // TODO(vitalybuka): Remove this parsing and |pairing_types| from callback.
- if (status == gcd_private::STATUS_SUCCESS) {
- const base::ListValue* pairing = nullptr;
- if (info.GetList("authentication.pairing", &pairing)) {
- for (const auto& value : *pairing) {
- std::string pairing_string;
- if (value->GetAsString(&pairing_string)) {
- api::gcd_private::PairingType pairing_type =
- api::gcd_private::ParsePairingType(pairing_string);
- if (pairing_type != api::gcd_private::PAIRING_TYPE_NONE)
- pairing_types.push_back(pairing_type);
- }
- }
- } else {
- status = gcd_private::STATUS_SESSIONERROR;
- }
- }
-
- results_ = gcd_private::CreateSession::Results::Create(session_id, status,
- pairing_types);
- SendResponse(true);
-}
-
-GcdPrivateStartPairingFunction::GcdPrivateStartPairingFunction() {
-}
-
-GcdPrivateStartPairingFunction::~GcdPrivateStartPairingFunction() {
-}
-
-bool GcdPrivateStartPairingFunction::RunAsync() {
- std::unique_ptr<gcd_private::StartPairing::Params> params =
- gcd_private::StartPairing::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
- gcd_api->StartPairing(
- params->session_id, params->pairing_type,
- base::Bind(&GcdPrivateStartPairingFunction::OnPairingStarted, this));
-
- return true;
-}
-
-void GcdPrivateStartPairingFunction::OnPairingStarted(
- api::gcd_private::Status status) {
- results_ = gcd_private::StartPairing::Results::Create(status);
- SendResponse(true);
-}
-
-GcdPrivateConfirmCodeFunction::GcdPrivateConfirmCodeFunction() {
-}
-
-GcdPrivateConfirmCodeFunction::~GcdPrivateConfirmCodeFunction() {
-}
-
-bool GcdPrivateConfirmCodeFunction::RunAsync() {
- std::unique_ptr<gcd_private::ConfirmCode::Params> params =
- gcd_private::ConfirmCode::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
- gcd_api->ConfirmCode(
- params->session_id, params->code,
- base::Bind(&GcdPrivateConfirmCodeFunction::OnCodeConfirmed, this));
-
- return true;
-}
-
-void GcdPrivateConfirmCodeFunction::OnCodeConfirmed(
- api::gcd_private::Status status) {
- results_ = gcd_private::ConfirmCode::Results::Create(status);
- SendResponse(true);
-}
-
-GcdPrivateSendMessageFunction::GcdPrivateSendMessageFunction() {
-}
-
-GcdPrivateSendMessageFunction::~GcdPrivateSendMessageFunction() {
-}
-
-bool GcdPrivateSendMessageFunction::RunAsync() {
- std::unique_ptr<gcd_private::PassMessage::Params> params =
- gcd_private::PassMessage::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
-
- gcd_api->SendMessage(
- params->session_id,
- params->api,
- params->input.additional_properties,
- base::Bind(&GcdPrivateSendMessageFunction::OnMessageSentCallback, this));
-
- return true;
-}
-
-void GcdPrivateSendMessageFunction::OnMessageSentCallback(
- api::gcd_private::Status status,
- const base::DictionaryValue& value) {
- gcd_private::PassMessage::Results::Response response;
- response.additional_properties.MergeDictionary(&value);
-
- results_ = gcd_private::PassMessage::Results::Create(status, response);
- SendResponse(true);
-}
-
-GcdPrivateTerminateSessionFunction::GcdPrivateTerminateSessionFunction() {
-}
-
-GcdPrivateTerminateSessionFunction::~GcdPrivateTerminateSessionFunction() {
-}
-
-bool GcdPrivateTerminateSessionFunction::RunAsync() {
- std::unique_ptr<gcd_private::TerminateSession::Params> params =
- gcd_private::TerminateSession::Params::Create(*args_);
-
- if (!params)
- return false;
-
- GcdPrivateAPIImpl* gcd_api = GcdPrivateAPIImpl::Get(GetProfile());
-
- gcd_api->RemoveSession(params->session_id);
-
- SendResponse(true);
- return true;
-}
-
-} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698