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"; |
mark a. foltz
2013/08/19 18:25:26
_googlecast._tcp
|
+ |
} // 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? |
mark a. foltz
2013/08/19 18:25:26
I think this should be fine, the host side of the
|
+ // 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)); |
mark a. foltz
2013/08/19 18:25:26
I think this should be okay to be a synchronous fu
|
+ // 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 |