blob: 61d8340e7d2ce93da4ebc385c2851e4a47a9eb4c [file] [log] [blame]
// Copyright 2014 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.
#include "modules/geofencing/WorkerNavigatorGeofencing.h"
#include "core/workers/WorkerNavigator.h"
#include "modules/geofencing/Geofencing.h"
namespace blink {
WorkerNavigatorGeofencing::WorkerNavigatorGeofencing()
{
}
WorkerNavigatorGeofencing::~WorkerNavigatorGeofencing()
{
}
const char* WorkerNavigatorGeofencing::supplementName()
{
return "WorkerNavigatorGeofencing";
}
WorkerNavigatorGeofencing& WorkerNavigatorGeofencing::from(WorkerNavigator& navigator)
{
WorkerNavigatorGeofencing* supplement = static_cast<WorkerNavigatorGeofencing*>(HeapSupplement<WorkerNavigator>::from(navigator, supplementName()));
if (!supplement) {
supplement = new WorkerNavigatorGeofencing();
provideTo(navigator, supplementName(), supplement);
}
return *supplement;
}
Geofencing* WorkerNavigatorGeofencing::geofencing(WorkerNavigator& navigator)
{
return WorkerNavigatorGeofencing::from(navigator).geofencing();
}
Geofencing* WorkerNavigatorGeofencing::geofencing()
{
if (!m_geofencing)
m_geofencing = Geofencing::create(nullptr);
return m_geofencing.get();
}
DEFINE_TRACE(WorkerNavigatorGeofencing)
{
visitor->trace(m_geofencing);
HeapSupplement<WorkerNavigator>::trace(visitor);
}
} // namespace blink