1c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)// found in the LICENSE file.
4c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
5c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#ifndef NavigatorGeofencing_h
6c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define NavigatorGeofencing_h
7c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "platform/Supplementable.h"
9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "platform/heap/Handle.h"
10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class Geofencing;
14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class Navigator;
15c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class NavigatorGeofencing FINAL
17c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    : public NoBaseWillBeGarbageCollectedFinalized<NavigatorGeofencing>
18c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    , public WillBeHeapSupplement<Navigator> {
19c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NavigatorGeofencing);
20c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
21c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)public:
22c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    virtual ~NavigatorGeofencing();
23c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    static NavigatorGeofencing& from(Navigator&);
24c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
25c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    static Geofencing* geofencing(Navigator&);
26c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    Geofencing* geofencing();
27c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
28c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    virtual void trace(Visitor*) OVERRIDE;
29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)private:
31c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    NavigatorGeofencing();
32c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    static const char* supplementName();
33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
34c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)    PersistentWillBeMember<Geofencing> m_geofencing;
35c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)};
36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
37c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)
39c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#endif // NavigatorGeofencing_h
40