@@ -580,16 +580,8 @@ <h2>
580580 method steps are:
581581 </ p >
582582 < ol class ="algorithm ">
583- < li >
584- < aside class ="correction " id ="c1 ">
585- < span class ="marker "> Candidate Correction:</ span > Updated
586- reference to the global object to use [=this=] for consistency in
587- error handling within geolocation retrieval.
588- </ aside > < del cite ="#c1 "> If the [=current settings object=]'s
589- [=relevant global object=]'s [=associated `Document`=] is not
590- [=Document/fully active=]:</ del > < ins cite ="#c1 "> If [=this=]'s
591- [=relevant global object=]'s [=associated `Document`=] is not
592- [=Document/fully active=]:</ ins >
583+ < li > If [=this=]'s [=relevant global object=]'s [=associated
584+ `Document`=] is not [=Document/fully active=]:
593585 < ol >
594586 < li > [=Call back with error=] |errorCallback| and
595587 {{GeolocationPositionError/POSITION_UNAVAILABLE}}.
@@ -614,16 +606,8 @@ <h2>
614606 method steps are:
615607 </ p >
616608 < ol class ="algorithm ">
617- < li >
618- < aside class ="correction " id ="c2 ">
619- < span class ="marker "> Candidate Correction:</ span > Simplified
620- reference to the global object in the method steps for checking
621- document's activity status.
622- </ aside > < del cite ="#c2 "> If the [=current settings object=]'s
623- [=relevant global object=]'s [=associated `Document`=] is not
624- [=Document/fully active=]:</ del > < ins cite ="#c2 "> If [=this=]'s
625- [=relevant global object=]'s [=associated `Document`=] is not
626- [=Document/fully active=]:</ ins >
609+ < li > If [=this=]'s [=relevant global object=]'s [=associated
610+ `Document`=] is not [=Document/fully active=]:
627611 < ol >
628612 < li > [=Call back with error=] passing |errorCallback| and
629613 {{GeolocationPositionError/POSITION_UNAVAILABLE}}.
@@ -689,12 +673,8 @@ <h2>
689673 </ li >
690674 </ ol >
691675 </ li >
692- < li >
693- < aside class ="correction " id ="c7 ">
694- < span class ="marker "> Candidate Correction:</ span > Added missing
695- step to handle [=non-secure contexts=].
696- </ aside > < ins cite ="#c7 "> If |geolocation|'s [=environment settings
697- object=] is a [=non-secure context=]:
676+ < li > If |geolocation|'s [=environment settings object=] is a
677+ [=non-secure context=]:
698678 < ol >
699679 < li > If |watchId| was passed, [=List/remove=] |watchId| from
700680 |watchIDs|.
704684 </ li >
705685 < li > Terminate this algorithm.
706686 </ li >
707- </ ol > </ ins >
687+ </ ol >
708688 </ li >
709689 < li > If |document:Document|'s [=Document/visibility state=] is
710690 "hidden", wait for the following [=page visibility change steps=] to
@@ -868,20 +848,11 @@ <h2>
868848 value of the |options|.{{PositionOptions/maximumAge}}
869849 member.
870850 </ li >
871- < li >
872- < aside class ="correction " id ="c8 ">
873- < span class ="marker "> Candidate Correction:</ span >
874- Updated to ensure that the algorithm terminates
875- immediately if a valid cached position is used,
876- avoiding unnecessary steps.
877- </ aside > If |cachedPosition|'s
878- {{GeolocationPosition/timestamp}}'s value is greater
879- than |cacheTime|, and
880- |cachedPosition|.{{GeolocationPosition/[[isHighAccuracy]]}}
881- equals
882- |options|.{{PositionOptions/enableHighAccuracy}}< del cite ="#c8 "> ,
883- set |position| to |cachedPosition|.</ del > < ins cite =
884- "#c8 "> :
851+ < li > If |cachedPosition|'s
852+ {{GeolocationPosition/timestamp}}'s value is greater than
853+ |cacheTime|, and
854+ |cachedPosition|.{{GeolocationPosition/[[isHighAccuracy]]}}
855+ equals |options|.{{PositionOptions/enableHighAccuracy}}:
885856 < ol >
886857 < li > [=Queue a task=] on the [=geolocation task
887858 source=] with a step that [=invokes=]
890861 </ li >
891862 < li > Terminate this algorithm.
892863 </ li >
893- </ ol > </ ins >
864+ </ ol >
894865 </ li >
895866 </ ol >
896867 </ li >
@@ -914,16 +885,6 @@ <h2>
914885 </ li >
915886 < li data-cite ="infra "> If acquiring the position data from the
916887 system succeeds:
917- < aside class ="correction " id ="c9 ">
918- < span class ="marker "> Candidate Correction:</ span > We now
919- use a [=map=] to represent the position data. Clarified
920- the units and reference systems for latitude, longitude,
921- and altitude, ensuring consistency with the updated
922- attribute definitions. Updated the descriptions of the
923- speed and heading to specify measurement units and
924- conditions for null values, aligning with the overall
925- enhancements to attribute accuracy and clarity.
926- </ aside > < ins cite ="#c9 ">
927888 < ol data-cite ="infra ">
928889 < li > Let |positionData| be a [=map=] with the following
929890 name/value pairs based on the acquired position data:
@@ -993,16 +954,7 @@ <h2>
993954 < li > Set [=this=]'s {{Geolocation/[[cachedPosition]]}} to
994955 |position|.
995956 </ li >
996- </ ol > </ ins > < del cite ="#c9 ">
997- < ol >
998- < li > Set |position| to [=a new `GeolocationPosition`=]
999- passing |acquisitionTime| and
1000- |options|.{{PositionOptions/enableHighAccuracy}}.
1001- </ li >
1002- < li > Set [=this=]'s {{Geolocation/[[cachedPosition]]}} to
1003- |position|.
1004- </ li >
1005- </ ol > </ del >
957+ </ ol >
1006958 </ li >
1007959 < li > Stop the |timeout|.
1008960 </ li >
@@ -1184,15 +1136,9 @@ <h3>
11841136 < h3 >
11851137 `toJSON()` method
11861138 </ h3 >
1187- < aside class ="addition " id ="a1 ">
1188- < span class ="marker "> Candidate Addition:</ span > Introduce a
1189- `toJSON()` method to allow the {{GeolocationPosition}} object to be
1190- easily converted into a JSON representation, facilitating
1191- interoperability and ease of use in web applications.
1192- </ aside >
11931139 < p >
1194- < ins cite =" #a1 " > The < dfn > toJSON()</ dfn > method returns a JSON
1195- representation of the {{GeolocationPosition}} object.</ ins >
1140+ The < dfn > toJSON()</ dfn > method returns a JSON representation of the
1141+ {{GeolocationPosition}} object.
11961142 </ p >
11971143 </ section >
11981144 < section >
@@ -1264,26 +1210,11 @@ <h2>
12641210 < h4 >
12651211 `latitude`, `longitude`, and `accuracy` attributes
12661212 </ h4 >
1267- < aside class ="correction " id ="c3 ">
1268- < span class ="marker "> Candidate Correction:</ span > To improve clarity
1269- and precision, the description of latitude and longitude attributes
1270- has been updated to specify that these are real numbers in degrees
1271- according to the [[WGS84]] geodetic system, instead of just stating
1272- "decimal degrees."
1273- </ aside >
1274- < aside class ="addition " id ="a3 ">
1275- < span class ="marker "> Candidate Addition:</ span > To improve clarity
1276- and precision, a description of the accuracy attribute has been
1277- added, defining it as meters of radius.
1278- </ aside >
12791213 < p >
1280- < del cite ="#c3 "> The < strong > latitude</ strong > and
1281- < strong > longitude</ strong > attributes are geographic coordinates
1282- specified in decimal degrees.</ del > < ins cite ="#c3 "> The
1283- < dfn > latitude</ dfn > and < dfn > longitude</ dfn > attributes denote the
1284- position, specified as a real number of degrees, in the [[WGS84]]
1285- coordinate system.</ ins > < ins cite ="#a3 "> The < dfn > accuracy</ dfn >
1286- attribute denotes the position accuracy radius in meters.</ ins >
1214+ The < dfn > latitude</ dfn > and < dfn > longitude</ dfn > attributes denote
1215+ the position, specified as a real number of degrees, in the [[WGS84]]
1216+ coordinate system. The < dfn > accuracy</ dfn > attribute denotes the
1217+ position accuracy radius in meters.
12871218 </ p >
12881219 </ section >
12891220 < section >
@@ -1323,27 +1254,15 @@ <h4>
13231254 < h4 >
13241255 `toJSON()` method
13251256 </ h4 >
1326- < aside class ="addition " id ="a2 ">
1327- < span class ="marker "> Candidate Addition:</ span > Extend the `toJSON()`
1328- method functionality to the {{GeolocationCoordinates}} object,
1329- allowing it to be serialized into a JSON format which enhances data
1330- handling and integration capabilities in web applications.
1331- </ aside >
13321257 < p >
1333- < ins cite =" #a2 " > The < dfn > toJSON()</ dfn > method returns a JSON
1334- representation of the {{GeolocationCoordinates}} object.</ ins >
1258+ The < dfn > toJSON()</ dfn > method returns a JSON representation of the
1259+ {{GeolocationCoordinates}} object.
13351260 </ p >
13361261 </ section >
13371262 < section data-cite ="infra ">
13381263 < h2 >
13391264 Constructing a `GeolocationPosition`
13401265 </ h2 >
1341- < aside class ="correction " id ="c4 ">
1342- < span class ="marker "> Candidate Correction:</ span > Constructor now
1343- takes a [=map=] of position data, a timestamp, and a boolean
1344- indicating high accuracy as arguments. We iterate over the map to set
1345- the attributes of the {{GeolocationCoordinates}}.
1346- </ aside > < ins cite ="#c4 ">
13471266 < p >
13481267 < dfn > A new `GeolocationPosition`</ dfn > is constructed with [=map=]
13491268 |positionData|, {{EpochTimeStamp}} |timestamp:EpochTimeStamp| and
@@ -1365,58 +1284,7 @@ <h2>
13651284 |timestamp|, and its {{GeolocationPosition/[[isHighAccuracy]]}}
13661285 internal slot set to |isHighAccuracy|.
13671286 </ li >
1368- </ ol > </ ins > < del cite ="#c4 ">
1369- < p >
1370- < strong > A new `GeolocationPosition`</ strong > is constructed with
1371- {{EpochTimeStamp}} |timestamp:EpochTimeStamp| and boolean
1372- |isHighAccuracy| by performing the following steps:
1373- </ p >
1374- < ol class ="algorithm ">
1375- < li > Let |coords:GeolocationCoordinates| be a newly created
1376- {{GeolocationCoordinates}} instance:
1377- < ol >
1378- < li > Initialize |coord|'s {{GeolocationCoordinates/latitude}}
1379- attribute to a geographic coordinate in decimal degrees.
1380- </ li >
1381- < li > Initialize |coord|'s {{GeolocationCoordinates/longitude}}
1382- attribute to a geographic coordinate in decimal degrees.
1383- </ li >
1384- < li > Initialize |coord|'s {{GeolocationCoordinates/accuracy}}
1385- attribute to a non-negative real number. The value SHOULD
1386- correspond to a 95% confidence level with respect to the
1387- longitude and latitude values.
1388- </ li >
1389- < li > Initialize |coord|'s {{GeolocationCoordinates/altitude}}
1390- attribute in meters above the [[WGS84]] ellipsoid, or `null` if
1391- the implementation cannot provide altitude information.
1392- </ li >
1393- < li > Initialize |coord|'s
1394- {{GeolocationCoordinates/altitudeAccuracy}} attribute as
1395- non-negative real number, or to `null` if the implementation
1396- cannot provide altitude information. If the altitude accuracy
1397- information is provided, it SHOULD correspond to a 95% confidence
1398- level.
1399- </ li >
1400- < li > Initialize |coord|'s {{GeolocationCoordinates/speed}}
1401- attribute to a non-negative real number, or as `null` if the
1402- implementation cannot provide speed information.
1403- </ li >
1404- < li > Initialize |coord|'s {{GeolocationCoordinates/heading}}
1405- attribute in degrees, or `null` if the implementation cannot
1406- provide heading information. If the hosting device is stationary
1407- (i.e., the value of the {{GeolocationCoordinates/speed}}
1408- attribute is 0), then initialize the
1409- {{GeolocationCoordinates/heading}} to `NaN`.
1410- </ li >
1411- </ ol >
1412- </ li >
1413- < li > Return a newly created {{GeolocationPosition}} instance with its
1414- {{GeolocationPosition/coords}} attribute initialized to |coords| and
1415- {{GeolocationPosition/timestamp}} attribute initialized to
1416- |timestamp|, and its {{GeolocationPosition/[[isHighAccuracy]]}}
1417- internal slot set to |isHighAccuracy|.
1418- </ li >
1419- </ ol > </ del >
1287+ </ ol >
14201288 </ section >
14211289 </ section >
14221290 < section id ="position_error_interface " data-dfn-for =
@@ -1443,14 +1311,8 @@ <h3>
14431311 < dfn > PERMISSION_DENIED</ dfn > (numeric value 1)
14441312 </ dt >
14451313 < dd >
1446- < aside class ="correction " id ="c6 ">
1447- < span class ="marker "> Candidate Correction:</ span > Updated the
1448- description of the `PERMISSION_DENIED` constant to clarify the
1449- reasons for permission denial, including [=non-secure context=]
1450- and user denials.
1451- </ aside > [=Request a position=] failed because the user denied
1452- permission to use the API < ins cite ="#c6 "> or the request was made
1453- from an [=non-secure context=]</ ins > .
1314+ [=Request a position=] failed because the user denied permission to
1315+ use the API or the request was made from an [=non-secure context=].
14541316 </ dd >
14551317 < dt >
14561318 < dfn > POSITION_UNAVAILABLE</ dfn > (numeric value 2)
@@ -1596,10 +1458,6 @@ <h2>
15961458 < h2 >
15971459 Change log
15981460 </ h2 >
1599- < p >
1600- Since First Public Working Draft in 2021, < cite > Geolocation</ cite > has
1601- received the following normative changes:
1602- </ p >
16031461 < script class ="removeOnSave ">
16041462 function removeCommits ( commit ) {
16051463 const { message, hash } = commit ;
@@ -1608,7 +1466,16 @@ <h2>
16081466 }
16091467 return ! / ^ C l a r i f y w h i c h F P W D | ^ M e r g e p u l l | ^ t i d y | ^ e d i t o r i a l | ^ E d i t i o r i a l | ^ e d t i o r i a l | ^ c h o r e | ^ r e f a c t o r | ^ t e s t s ? | ^ d o c s | ^ t y p o | ^ n i t / i. test ( message ) ;
16101468 }
1611- </ script > < rs-changelog from ="FPWD " filter =
1469+ </ script >
1470+ < p >
1471+ Since the previous publication of this specification as a
1472+ Recommendation in 2022, the following changes have been made:
1473+ </ p > < rs-changelog from ="REC-2022 " filter =
1474+ "updateableRecFilter "> </ rs-changelog >
1475+ < p >
1476+ Since First Public Working Draft in 2021, < cite > Geolocation</ cite > has
1477+ received the following normative changes:
1478+ </ p > < rs-changelog from ="FPWD " to ="REC-2022 " filter =
16121479 "removeCommits "> </ rs-changelog >
16131480 < p >
16141481 Since publication of the Second Edition in 2016, this specification
0 commit comments