// Copyright 2013 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. // Use the chrome.mdns API to discover services over mDNS. // This comprises a subset of the features of the NSD spec: // http://www.w3.org/TR/discovery-api/ namespace mdns { // Represents a mDNS/DNS-SD service. dictionary MDnsService { // The service name of an mDNS advertised service, // .. DOMString serviceName; // The host:port pair of an mDNS advertised service. DOMString serviceHostPort; // The IP address of an mDNS advertised service. DOMString ipAddress; // Metadata for an mDNS advertised service. DOMString[] serviceData; }; // Callback invoked after ForceDiscovery() has started. callback VoidCallback = void(); interface Functions { // Immediately issues a multicast DNS query for all service types. // |callback| is invoked immediately. At a later time, queries will be // sent, and any service events will be fired. static void forceDiscovery(VoidCallback callback); }; interface Properties { // The maximum number of service instances that will be included in // onServiceList events. If more instances are available, they may be // truncated from the onServiceList event. [value=2048] static long MAX_SERVICE_INSTANCES_PER_EVENT(); }; interface Events { // Event fired to inform clients of the current complete set of known // available services. Clients should only need to store the list from the // most recent event. The service type that the extension is interested in // discovering should be specified as the event filter with the // 'serviceType' key. Not specifying an event filter will not start any // discovery listeners. [supportsFilters=true, maxListeners=10] static void onServiceList( MDnsService[] services); }; };