【この訳に特有な表記規約】
◎表記記号1. 序論
`~gyroscope~API^cite( `Gyroscope API^en )は、`汎用~sensor~API^cite( `Generic Sensor API^en ) `GENERIC-SENSOR$r を拡張して,~deviceの局所的[ ~X, ~Y, ~Z ]周りの角速度についての情報を, rad/s 単位(毎秒あたりの~radian数)で供する。 ◎ The Gyroscope API extends the Generic Sensor API [GENERIC-SENSOR] to provide information about the angular velocity around the device’s local X, Y and Z axis in terms of radian per seconds units.
2. 利用事例と要件
利用事例と要件は、 `MOTION-SENSORS$r `§ 利用事例と要件@~MOTION-SENSORS#usecases-and-requirements$ にて取組まれている。 ◎ The use cases and requirements are addressed in the Motion Sensors Explainer document.
3. 例
let %sensor = new Gyroscope(); %sensor.start(); %sensor.onreading = () => { console.log("~X軸~周りの角速度: " + %sensor.x); console.log("~Y軸~周りの角速度: " + %sensor.y); console.log("~Z軸~周りの角速度: " + %sensor.z); }; %sensor.onerror = %event => console.log(%event.error.name, %event.error.message);
4. ~securityと~privacyの考慮点
~gyroscopeなどの慣性-~sensorにより供される`~sensor読取り$は、様々な~security脅威を悪用する敵対者により利用され得る — 例えば ⇒# `~UIkeyを~logする@~SENSORS#keystroke-monitoring$, `所在を追跡する@~SENSORS#location-tracking$, `~deviceを指紋収集する@~SENSORS#device-fingerprinting$, `利用者を識別する@~SENSORS#user-identifying$, `盗聴する@~SENSORS#eavesdropping$ことさえも ◎ Sensor readings provided by inertial sensors, such as gyroscope, could be used by adversaries to exploit various security threats, for example, keylogging, location tracking, fingerprinting, user identifying and even eavesdropping.
~security~communityにより公表された論文 — 一例として `KEYSTROKEDEFENSE$r — は、~frequencyを絞っても,攻撃が成功する~riskを全部的には排せない一方で、~sensorを正当な理由で利用している~web~appの有用性には,大きく影響し得ることを指示している。 ◎ Research papers published by security community, for instance, [KEYSTROKEDEFENSE], indicate that by throttling the frequency, risks of successful attacks are not fully eliminated, while throttling may greatly affect usefulness of a web application with legitimate reasons to use the sensors.
`TOUCHSIGNATURES$r 論文は、次を提案する: 実装は[ 慣性-~sensorが利用-中にあるときに視覚的な指示を供する/ `~sensor読取り$に~accessするためには明示的に利用者の同意を要求する ]ことができる。 これらの軽減~策は、`汎用~sensor~API^cite `GENERIC-SENSOR$r に定義される`汎用な軽減~策@~SENSORS#mitigation-strategies$を補う。 ◎ The [TOUCHSIGNATURES] research paper proposes that implementations can provide visual indication when inertial sensors are in use and/or require explicit user consent to access sensor readings. These mitigation strategies complement the generic mitigations defined in the Generic Sensor API [GENERIC-SENSOR].
5. 許可~施策の統合
この仕様は、 文字列 `gyroscope$l により識別される`施策により制御される特能$を用立てる — それは、 `DEVICE-ORIENTATION$r にて定義される。 ◎ This specification utilizes the policy-controlled feature identified by the string "gyroscope" defined in [DEVICE-ORIENTATION].
6. ~model
`~sensor型$ `~gyroscope@i ( `Gyroscope^en )には、 次に挙げる~dataが結付けられる: ◎ The Gyroscope sensor type has the following associated data:
- `拡張~sensor~interface$ ⇒ `Gyroscope$I ◎ Extension sensor interface • Gyroscope
- `~sensor許可~名~群$ ⇒ { `gyroscope$l } ◎ Sensor permission names • "gyroscope"
- `~sensor特能~名~群$ ⇒ { `gyroscope$l } ◎ Sensor feature names • "gyroscope"
- `許可~revocation~algo$ ⇒ 次を呼出す ⇒ `~sensor許可~revocation~algo$( `gyroscope$l ) ◎ Permission revocation algorithm • Invoke the generic sensor permission revocation algorithm with "gyroscope".
- `既定の~sensor$ ⇒ ~deviceの~main~gyroscope~sensor ◎ Default sensor • The device’s main gyroscope sensor.
- `属する~virtual~sensor型$ ⇒ `gyroscope$vsT ◎ Virtual sensor type • "gyroscope"
`~gyroscope$i `~sensor型$の `Sensor$I 用の`最新な読取り~map$は[ `x^l, `y^l, `z^l ]を`~key$mapとする 3 個の`~entry$mapを含む。 それらの各`値$mapは、対応する軸における~deviceの`角速度$を包含する。 ◎ A latest reading of a Sensor of Gyroscope sensor type includes three entries whose keys are "x", "y", "z" and whose values contain current angular velocity about the corresponding axes.
`角速度@ は、~deviceにより定義される`局所~座標系$において指定される軸~周りで~deviceが回転する率であり,単位は rad/s (毎秒あたりの~radian数) `SI$r とする。 ◎ The angular velocity is the rate at which the device rotates about a specified axis in a local coordinate system defined by the device. Its unit is the radian per second (rad/s) [SI].
~deviceにより定義される`局所~座標系$は、右手系に則るモノトスル。 現在の`角速度$の符号は、軸の正な方向に向かって見るとき,時計回りが軸~周りの正な回転になるモノトスル(下の図を見よ)。 ◎ The sign of the current angular velocity depends on the rotation direction and it must be according to the right-hand convention in a local coordinate system defined by the device, such that positive rotation around an axis is clockwise when viewed along the positive direction of the axis (see figure below).
~deviceの局所~座標系と回転 ◎ Device’s local coordinate system and rotation.
6.1. 基準~frame
`局所~座標系$は、 `Gyroscope$I `~sensor読取り$用の基準~frameを表現する。 それは、`~device座標系$にも`~screen座標系$にもなり得る。 ◎ The local coordinate system represents the reference frame for the Gyroscope readings. It can be either the device coordinate system or the screen coordinate system.
7. ~API
7.1. `Gyroscope^I ~interface
[`SecureContext$, `Exposed$=Window] interface `Gyroscope@I : `Sensor$I { `Gyroscope$mc(optional `GyroscopeSensorOptions$I %sensorOptions = {}); readonly attribute `double$? `x@m; readonly attribute `double$? `y@m; readonly attribute `double$? `z@m; }; enum `GyroscopeLocalCoordinateSystem@I { `device@l, `screen@l }; dictionary `GyroscopeSensorOptions@I : `SensorOptions$I { `GyroscopeLocalCoordinateSystem$I `referenceFrame@mb = "device"; };
`Gyroscope$I が`~supportする~sensor~option群$は ⇒ `frequency^l, `referenceFrame^l ◎ Supported sensor options for Gyroscope are "frequency" and "referenceFrame".
[ `x$m / `y$m / `z$m ]属性は、[ ~X / ~Y / ~Z ]軸~周りの現在の`角速度$を表現する。 ◎ ↓
8. 抽象-演算
`~gyroscope~objを構築する@ ときは、 所与の ( `Gyroscope$I ~obj %~obj, `GyroscopeSensorOptions$I ~obj %~option群 ) に対し: ◎ 8.1. Construct a Gyroscope object ◎ input • object, a Gyroscope object. ◎ • options, a GyroscopeSensorOptions object.
- ~IF[ `~sensor施策により制御される特能を検査する$( %~obj の`~sensor型$ ) ~EQ ~F ] ⇒ ~THROW `SecurityError$E ◎ Let allowed be the result of invoking check sensor policy-controlled features with object’s sensor type. ◎ If allowed is false, then: • Throw a SecurityError DOMException.
- `~sensor~objを初期化する$( %~obj, %~option群 ) ◎ Invoke initialize a sensor object with object and options.
- %~obj 用の`局所~座標系$を %~option群[ "`referenceFrame$mb" ] に応じて, 次になるものと定義する ⇒# `screen^l ならば `~screen座標系$/ `device^l ならば `~device座標系$ ◎ If options.referenceFrame is "screen", then: • Set object’s local coordinate system to the screen coordinate system. ◎ Otherwise, define object’s local coordinate system to the device coordinate system.
9. 自動化
この節では、 `GENERIC-SENSOR$r に定義される`自動化@~SENSORS#automation$を拡張する — `~gyroscope$i に特有な`~virtual~sensor~metadata$を供することにより。 ◎ This section extends Generic Sensor API § 9 Automation by providing Gyroscope-specific virtual sensor metadata.
`~gyroscope$i が`属する~virtual~sensor型$ `gyroscope$vsT, それに対応する[ `型ごとの~virtual~sensor~metadata$を成す`~entry$map ]は、 `DEVICE-ORIENTATION$r `§ 自動化@~DEVICEORIENTATION#automation$ にて定義される。 ◎ The gyroscope virtual sensor type and its corresponding entry in the per-type virtual sensor metadata map are defined in Device Orientation and Motion § automation.
謝辞
`汎用~sensor~API^citeの作業を為された `Tobie Langel^en 氏に。 ◎ Tobie Langel for the work on Generic Sensor API.