summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/api/gcd_private/gcd_private_api.cc')
-rw-r--r--chrome/browser/extensions/api/gcd_private/gcd_private_api.cc96
1 files changed, 7 insertions, 89 deletions
diff --git a/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc b/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
index 5d3dba1..b17b984 100644
--- a/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
+++ b/chrome/browser/extensions/api/gcd_private/gcd_private_api.cc
@@ -9,7 +9,6 @@
#include "chrome/browser/local_discovery/cloud_device_list.h"
#include "chrome/browser/local_discovery/cloud_print_printer_list.h"
#include "chrome/browser/local_discovery/gcd_constants.h"
-#include "chrome/browser/local_discovery/privet_device_lister_impl.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
#include "chrome/browser/signin/signin_manager_factory.h"
@@ -19,25 +18,14 @@
namespace extensions {
-namespace gcd_private = api::gcd_private;
+using extensions::api::gcd_private::GCDDevice;
namespace {
-scoped_ptr<Event> MakeCloudDeviceStateChangedEvent(
- bool available,
- const gcd_private::GCDDevice& device) {
- scoped_ptr<base::ListValue> params =
- gcd_private::OnCloudDeviceStateChanged::Create(available, device);
- scoped_ptr<Event> event(new Event(
- gcd_private::OnCloudDeviceStateChanged::kEventName, params.Pass()));
- return event.Pass();
-}
-
const int kNumRequestsNeeded = 2;
const char kIDPrefixCloudPrinter[] = "cloudprint:";
const char kIDPrefixGcd[] = "gcd:";
-const char kIDPrefixMdns[] = "mdns:";
GcdPrivateAPI::GCDApiFlowFactoryForTests* g_gcd_api_flow_factory = NULL;
@@ -66,10 +54,7 @@ scoped_ptr<local_discovery::GCDApiFlow> MakeGCDApiFlow(Profile* profile) {
} // namespace
GcdPrivateAPI::GcdPrivateAPI(content::BrowserContext* context)
- : num_device_listeners_(0), browser_context_(context) {
- DCHECK(browser_context_);
- EventRouter::Get(context)->RegisterObserver(
- this, gcd_private::OnCloudDeviceStateChanged::kEventName);
+ : browser_context_(context) {
}
GcdPrivateAPI::~GcdPrivateAPI() {
@@ -81,74 +66,6 @@ GcdPrivateAPI::GetFactoryInstance() {
return g_factory.Pointer();
}
-void GcdPrivateAPI::OnListenerAdded(const EventListenerInfo& details) {
- num_device_listeners_++;
-
- if (num_device_listeners_ == 1) {
- service_discovery_client_ =
- local_discovery::ServiceDiscoverySharedClient::GetInstance();
- privet_device_lister_.reset(new local_discovery::PrivetDeviceListerImpl(
- service_discovery_client_.get(), this));
- privet_device_lister_->Start();
- }
-
- for (GCDDeviceMap::iterator i = known_devices_.begin();
- i != known_devices_.end();
- i++) {
- EventRouter::Get(browser_context_)->DispatchEventToExtension(
- details.extension_id,
- MakeCloudDeviceStateChangedEvent(true, *i->second));
- }
-}
-
-void GcdPrivateAPI::OnListenerRemoved(const EventListenerInfo& details) {
- num_device_listeners_--;
-
- if (num_device_listeners_ == 0) {
- privet_device_lister_.reset();
- service_discovery_client_ = NULL;
- }
-}
-
-void GcdPrivateAPI::DeviceChanged(
- bool added,
- const std::string& name,
- const local_discovery::DeviceDescription& description) {
- linked_ptr<gcd_private::GCDDevice> device(new gcd_private::GCDDevice);
- device->setup_type = gcd_private::SETUP_TYPE_MDNS;
- device->id_string = kIDPrefixMdns + name;
- device->device_type = description.type;
- device->device_name = description.name;
- device->device_description = description.description;
- if (!description.id.empty())
- device->cloud_id.reset(new std::string(description.id));
-
- known_devices_[device->id_string] = device;
-
- EventRouter::Get(browser_context_)
- ->BroadcastEvent(MakeCloudDeviceStateChangedEvent(true, *device));
-}
-
-void GcdPrivateAPI::DeviceRemoved(const std::string& name) {
- GCDDeviceMap::iterator found = known_devices_.find(kIDPrefixMdns + name);
- linked_ptr<gcd_private::GCDDevice> device = found->second;
- known_devices_.erase(found);
-
- EventRouter::Get(browser_context_)
- ->BroadcastEvent(MakeCloudDeviceStateChangedEvent(false, *device));
-}
-
-void GcdPrivateAPI::DeviceCacheFlushed() {
- for (GCDDeviceMap::iterator i = known_devices_.begin();
- i != known_devices_.end();
- i++) {
- EventRouter::Get(browser_context_)
- ->BroadcastEvent(MakeCloudDeviceStateChangedEvent(false, *i->second));
- }
-
- known_devices_.clear();
-}
-
// static
void GcdPrivateAPI::SetGCDApiFlowFactoryForTests(
GCDApiFlowFactoryForTests* factory) {
@@ -205,11 +122,11 @@ void GcdPrivateGetCloudDeviceListFunction::CheckListingDone() {
return;
}
- std::vector<linked_ptr<gcd_private::GCDDevice> > devices;
+ std::vector<linked_ptr<GCDDevice> > devices;
for (DeviceList::iterator i = devices_.begin(); i != devices_.end(); i++) {
- linked_ptr<gcd_private::GCDDevice> device(new gcd_private::GCDDevice);
- device->setup_type = gcd_private::SETUP_TYPE_CLOUD;
+ linked_ptr<GCDDevice> device(new GCDDevice);
+ device->setup_type = extensions::api::gcd_private::SETUP_TYPE_CLOUD;
if (i->type == local_discovery::kGCDTypePrinter) {
device->id_string = kIDPrefixCloudPrinter + i->id;
} else {
@@ -224,7 +141,8 @@ void GcdPrivateGetCloudDeviceListFunction::CheckListingDone() {
devices.push_back(device);
}
- results_ = gcd_private::GetCloudDeviceList::Results::Create(devices);
+ results_ = extensions::api::gcd_private::GetCloudDeviceList::Results::Create(
+ devices);
SendResponse(true);
Release();