| Index: content/public/common/geoposition.h
 | 
| diff --git a/content/public/common/geoposition.h b/content/public/common/geoposition.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..23b29078e1555a082090282fef50a51487ee31f3
 | 
| --- /dev/null
 | 
| +++ b/content/public/common/geoposition.h
 | 
| @@ -0,0 +1,69 @@
 | 
| +// Copyright (c) 2012 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.
 | 
| +
 | 
| +// This file declares the Geoposition structure, used to represent a position
 | 
| +// fix. It was originally derived from:
 | 
| +// http://gears.googlecode.com/svn/trunk/gears/geolocation/geolocation.h
 | 
| +
 | 
| +#ifndef CONTENT_PUBLIC_COMMON_GEOPOSITION_H_
 | 
| +#define CONTENT_PUBLIC_COMMON_GEOPOSITION_H_
 | 
| +
 | 
| +#include <string>
 | 
| +
 | 
| +#include "base/time/time.h"
 | 
| +#include "content/common/content_export.h"
 | 
| +
 | 
| +namespace content {
 | 
| +
 | 
| +struct CONTENT_EXPORT Geoposition {
 | 
| + public:
 | 
| +  // These values follow the W3C geolocation specification and can be returned
 | 
| +  // to JavaScript without the need for a conversion.
 | 
| +  enum ErrorCode {
 | 
| +    ERROR_CODE_NONE = 0,  // Chrome addition.
 | 
| +    ERROR_CODE_PERMISSION_DENIED = 1,
 | 
| +    ERROR_CODE_POSITION_UNAVAILABLE = 2,
 | 
| +    ERROR_CODE_TIMEOUT = 3,
 | 
| +    ERROR_CODE_LAST = ERROR_CODE_TIMEOUT
 | 
| +  };
 | 
| +
 | 
| +  // All fields are initialized to sentinel values marking them as invalid. The
 | 
| +  // error code is set to ERROR_CODE_NONE.
 | 
| +  Geoposition();
 | 
| +
 | 
| +  Geoposition(const Geoposition& other);
 | 
| +
 | 
| +  // A valid fix has a valid latitude, longitude, accuracy and timestamp.
 | 
| +  bool Validate() const;
 | 
| +
 | 
| +  // These properties correspond to those of the JavaScript Position object
 | 
| +  // although their types may differ.
 | 
| +  // Latitude in decimal degrees north (WGS84 coordinate frame).
 | 
| +  double latitude;
 | 
| +  // Longitude in decimal degrees west (WGS84 coordinate frame).
 | 
| +  double longitude;
 | 
| +  // Altitude in meters (above WGS84 datum).
 | 
| +  double altitude;
 | 
| +  // Accuracy of horizontal position in meters.
 | 
| +  double accuracy;
 | 
| +  // Accuracy of altitude in meters.
 | 
| +  double altitude_accuracy;
 | 
| +  // Heading in decimal degrees clockwise from true north.
 | 
| +  double heading;
 | 
| +  // Horizontal component of device velocity in meters per second.
 | 
| +  double speed;
 | 
| +  // Time of position measurement in milisecons since Epoch in UTC time. This is
 | 
| +  // taken from the host computer's system clock (i.e. from Time::Now(), not the
 | 
| +  // source device's clock).
 | 
| +  base::Time timestamp;
 | 
| +
 | 
| +  // Error code, see enum above.
 | 
| +  ErrorCode error_code;
 | 
| +  // Human-readable error message.
 | 
| +  std::string error_message;
 | 
| +};
 | 
| +
 | 
| +}  // namespace content
 | 
| +
 | 
| +#endif  // CONTENT_PUBLIC_COMMON_GEOPOSITION_H_
 | 
| 
 |