| Index: chrome/browser/extensions/api/dial/dial_api.cc
|
| diff --git a/chrome/browser/extensions/api/dial/dial_api.cc b/chrome/browser/extensions/api/dial/dial_api.cc
|
| index 02f6d8222a20a0c7099c460ab4dd19bdefe2074e..9ba56141821ae6137ccb45172ab08cab780eacd9 100644
|
| --- a/chrome/browser/extensions/api/dial/dial_api.cc
|
| +++ b/chrome/browser/extensions/api/dial/dial_api.cc
|
| @@ -31,6 +31,9 @@ const int kDialExpirationSecs = 240;
|
| // The maximum number of devices retained at once in the registry.
|
| const size_t kDialMaxDevices = 256;
|
|
|
| +//
|
| +const char kCastDefaultDeviceType[] = "_privet._tcp.local";
|
| +
|
| } // namespace
|
|
|
| namespace extensions {
|
| @@ -55,6 +58,15 @@ DialRegistry* DialAPI::dial_registry() {
|
| return dial_registry_.get();
|
| }
|
|
|
| +MDNSService* DialAPI::mdns_service() {
|
| + // TODO(justinlin): Any creation/access thread constraints?
|
| + // DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + if (!mdns_service_.get()) {
|
| + mdns_service_.reset(new MDNSService(kCastDefaultDeviceType));
|
| + }
|
| + return mdns_service_.get();
|
| +}
|
| +
|
| void DialAPI::OnListenerAdded(const EventListenerInfo& details) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| BrowserThread::PostTask(
|
| @@ -171,6 +183,34 @@ bool DialDiscoverNowFunction::Respond() {
|
| return true;
|
| }
|
|
|
| +
|
| +DialGetNetworkServicesFunction::DialGetNetworkServicesFunction()
|
| + : dial_(NULL), result_(false) {
|
| +}
|
| +
|
| +bool DialGetNetworkServicesFunction::Prepare() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + DCHECK(profile());
|
| + dial_ = DialAPIFactory::GetInstance()->GetForProfile(profile()).get();
|
| + return true;
|
| +}
|
| +
|
| +void DialGetNetworkServicesFunction::Work() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| + // TODO(justinlin): Should instead instantiate a NetworkServicesRegistry,
|
| + // which calls into MDNSService.
|
| + result_ = dial_->mdns_service()->Start();
|
| +}
|
| +
|
| +bool DialGetNetworkServicesFunction::Respond() {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + if (!result_)
|
| + error_ = kDialServiceError;
|
| +
|
| + SetResult(new base::FundamentalValue(result_));
|
| + return true;
|
| +}
|
| +
|
| } // namespace api
|
|
|
| } // namespace extensions
|
|
|