chromium/services/device/public/mojom/public_ip_address_geolocation_provider.mojom

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module device.mojom;

import "services/network/public/mojom/mutable_partial_network_traffic_annotation_tag.mojom";
import "services/device/public/mojom/geolocation.mojom";
import "services/device/public/mojom/geolocation_client_id.mojom";

// Provides a coarse-grained device.mojom.Geolocation which, subject to
// case-by-case privacy review, may be able to operate without explicit user
// consent.
//
// WARNING: DO NOT USE WITHOUT PRIVACY REVIEW.
interface PublicIpAddressGeolocationProvider {
  // Creates a Geolocation instance bound to `receiver`. `tag` is the network
  // traffic annotation to attach to network requests made by the provider.
  // `client_id` identifies the location client for metrics.
  CreateGeolocation(network.mojom.MutablePartialNetworkTrafficAnnotationTag tag,
                    pending_receiver<Geolocation> receiver,
                    GeolocationClientId client_id);
};