| Index: content/public/browser/navigator_connect_service_factory.h
|
| diff --git a/content/browser/device_sensors/ambient_light_mac.h b/content/public/browser/navigator_connect_service_factory.h
|
| similarity index 13%
|
| copy from content/browser/device_sensors/ambient_light_mac.h
|
| copy to content/public/browser/navigator_connect_service_factory.h
|
| index 8d34e165b80bc6c26da60dec1084fd0872c69352..f66b2de18524142863df79dd359bb04bacf48de4 100644
|
| --- a/content/browser/device_sensors/ambient_light_mac.h
|
| +++ b/content/public/browser/navigator_connect_service_factory.h
|
| @@ -2,39 +2,44 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_BROWSER_DEVICE_SENSORS_AMBIENT_LIGHT_MAC_H_
|
| -#define CONTENT_BROWSER_DEVICE_SENSORS_AMBIENT_LIGHT_MAC_H_
|
| +#ifndef CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_SERVICE_FACTORY_H_
|
| +#define CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_SERVICE_FACTORY_H_
|
|
|
| -#include <IOKit/IOKitLib.h>
|
| +#include "base/callback.h"
|
|
|
| -#include "base/memory/scoped_ptr.h"
|
| +class GURL;
|
|
|
| namespace content {
|
|
|
| -// Provides an interface to retrieve ambient light data from MacBooks.
|
| -class AmbientLightSensor {
|
| - public:
|
| - // Create AmbientLightSensor object, return NULL if no valid is sensor found.
|
| - static scoped_ptr<AmbientLightSensor> Create();
|
| -
|
| - ~AmbientLightSensor();
|
| -
|
| - // Retrieve lux values from Ambient Light Sensor.
|
| - bool ReadSensorValue(uint64_t lux_value[2]);
|
| -
|
| - private:
|
| - AmbientLightSensor();
|
| +struct NavigatorConnectClient;
|
| +class MessagePortDelegate;
|
|
|
| - // Probe the local hardware looking for Ambient Light sensor and
|
| - // initialize an I/O connection to it.
|
| - bool Init();
|
| -
|
| - // IOKit connection to the local sensor.
|
| - io_connect_t io_connection_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AmbientLightSensor);
|
| +// Implement this interface to provide a new kind of navigator.connect
|
| +// accessible service.
|
| +// Instances of this class are owned by NavigatorConnectContext. Register new
|
| +// factories by calling NavigatorConnectContext::AddFactory.
|
| +class NavigatorConnectServiceFactory {
|
| + public:
|
| + // Call with nullptr to indicate connection failure. Ownership of the delegate
|
| + // remains with the factory. It is assumed that for the passed
|
| + // MessagePortDelegate implementation the route_id and message_port_id of a
|
| + // connection are the same.
|
| + using ConnectCallback = base::Callback<void(MessagePortDelegate*)>;
|
| +
|
| + virtual ~NavigatorConnectServiceFactory() {}
|
| +
|
| + // Return true if this factory is responsible for handling connections to the
|
| + // |target_url|. The most recently added factory that returns true for a
|
| + // particular url is picked to handle the connection attempt.
|
| + virtual bool HandlesUrl(const GURL& target_url) = 0;
|
| +
|
| + // Called to try to establish a connection. Only called if this factory was
|
| + // the most recently added factory that returned true from |HandlesUrl| for
|
| + // the url being connected to.
|
| + virtual void Connect(const NavigatorConnectClient& client,
|
| + const ConnectCallback& callback) = 0;
|
| };
|
|
|
| } // namespace content
|
|
|
| -#endif // CONTENT_BROWSER_DEVICE_SENSORS_AMBIENT_LIGHT_MAC_H_
|
| +#endif // CONTENT_PUBLIC_BROWSER_NAVIGATOR_CONNECT_SERVICE_FACTORY_H_
|
|
|