1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 #include "modules/netinfo/WorkerNavigatorNetworkInformation.h"
8 #include "core/workers/WorkerNavigator.h"
9 #include "modules/netinfo/NetworkInformation.h"
13 WorkerNavigatorNetworkInformation::WorkerNavigatorNetworkInformation(WorkerNavigator& navigator, ExecutionContext* context)
17 WorkerNavigatorNetworkInformation::~WorkerNavigatorNetworkInformation()
21 WorkerNavigatorNetworkInformation& WorkerNavigatorNetworkInformation::from(WorkerNavigator& navigator, ExecutionContext* context)
23 WorkerNavigatorNetworkInformation* supplement = toWorkerNavigatorNetworkInformation(navigator, context);
25 supplement = new WorkerNavigatorNetworkInformation(navigator, context);
26 provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
31 WorkerNavigatorNetworkInformation* WorkerNavigatorNetworkInformation::toWorkerNavigatorNetworkInformation(WorkerNavigator& navigator, ExecutionContext* context)
33 return static_cast<WorkerNavigatorNetworkInformation*>(WillBeHeapSupplement<WorkerNavigator>::from(navigator, supplementName()));
36 const char* WorkerNavigatorNetworkInformation::supplementName()
38 return "WorkerNavigatorNetworkInformation";
41 NetworkInformation* WorkerNavigatorNetworkInformation::connection(ExecutionContext* context, WorkerNavigator& navigator)
43 return WorkerNavigatorNetworkInformation::from(navigator, context).connection(context);
46 void WorkerNavigatorNetworkInformation::trace(Visitor* visitor)
48 visitor->trace(m_connection);
49 WillBeHeapSupplement<WorkerNavigator>::trace(visitor);
52 NetworkInformation* WorkerNavigatorNetworkInformation::connection(ExecutionContext* context)
56 m_connection = NetworkInformation::create(context);
57 return m_connection.get();