| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright (c) 2010 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. |  | 
| 4 |  | 
| 5 #include "content/browser/geolocation/core_location_provider_mac.h" |  | 
| 6 |  | 
| 7 #include "base/logging.h" |  | 
| 8 #include "base/command_line.h" |  | 
| 9 #include "chrome/common/chrome_switches.h" |  | 
| 10 #include "content/browser/geolocation/core_location_data_provider_mac.h" |  | 
| 11 |  | 
| 12 CoreLocationProviderMac::CoreLocationProviderMac() |  | 
| 13     : is_updating_(false) { |  | 
| 14   data_provider_ = new CoreLocationDataProviderMac(); |  | 
| 15   data_provider_->AddRef(); |  | 
| 16 } |  | 
| 17 |  | 
| 18 CoreLocationProviderMac::~CoreLocationProviderMac() { |  | 
| 19   data_provider_->StopUpdating(); |  | 
| 20   data_provider_->Release(); |  | 
| 21 } |  | 
| 22 |  | 
| 23 bool CoreLocationProviderMac::StartProvider(bool high_accuracy) { |  | 
| 24   // StartProvider maybe called multiple times. For example, to update the high |  | 
| 25   // accuracy hint. |  | 
| 26   // TODO(jknotten): Support high_accuracy hint in underlying data provider. |  | 
| 27   if (is_updating_) |  | 
| 28     return true; |  | 
| 29 |  | 
| 30   is_updating_ = data_provider_->StartUpdating(this); |  | 
| 31   return true; |  | 
| 32 } |  | 
| 33 |  | 
| 34 void CoreLocationProviderMac::StopProvider() { |  | 
| 35   data_provider_->StopUpdating(); |  | 
| 36   is_updating_ = false; |  | 
| 37 } |  | 
| 38 |  | 
| 39 void CoreLocationProviderMac::GetPosition(Geoposition* position) { |  | 
| 40   DCHECK(position); |  | 
| 41   *position = position_; |  | 
| 42   DCHECK(position->IsInitialized()); |  | 
| 43 } |  | 
| 44 |  | 
| 45 void CoreLocationProviderMac::SetPosition(Geoposition* position) { |  | 
| 46   DCHECK(position); |  | 
| 47   position_ = *position; |  | 
| 48   DCHECK(position->IsInitialized()); |  | 
| 49 |  | 
| 50   UpdateListeners(); |  | 
| 51 } |  | 
| 52 |  | 
| 53 LocationProviderBase* NewSystemLocationProvider() { |  | 
| 54   if (CommandLine::ForCurrentProcess()->HasSwitch( |  | 
| 55           switches::kExperimentalLocationFeatures)) { |  | 
| 56     return new CoreLocationProviderMac; |  | 
| 57   } |  | 
| 58   return NULL; |  | 
| 59 } |  | 
| OLD | NEW | 
|---|