| Index: third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js b/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js
|
| index 6c060075bfee99e236d54b9f211120e98257fbfe..508194f710f221f98d88cf6c7e53c7c09165c7ec 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/emulation/SensorsView.js
|
| @@ -1,511 +1,508 @@
|
| // Copyright (c) 2015 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.
|
| -
|
| /**
|
| - * @constructor
|
| - * @extends {WebInspector.VBox}
|
| + * @unrestricted
|
| */
|
| -WebInspector.SensorsView = function()
|
| -{
|
| - WebInspector.VBox.call(this, true);
|
| - this.registerRequiredCSS("emulation/sensors.css");
|
| - this.contentElement.classList.add("sensors-view");
|
| +WebInspector.SensorsView = class extends WebInspector.VBox {
|
| + constructor() {
|
| + super(true);
|
| + this.registerRequiredCSS('emulation/sensors.css');
|
| + this.contentElement.classList.add('sensors-view');
|
|
|
| - this._geolocationSetting = WebInspector.settings.createSetting("emulation.geolocationOverride", "");
|
| + this._geolocationSetting = WebInspector.settings.createSetting('emulation.geolocationOverride', '');
|
| this._geolocation = WebInspector.Geolocation.parseSetting(this._geolocationSetting.get());
|
| this._geolocationOverrideEnabled = false;
|
| this._createGeolocationSection(this._geolocation);
|
|
|
| - this.contentElement.createChild("div").classList.add("panel-section-separator");
|
| + this.contentElement.createChild('div').classList.add('panel-section-separator');
|
|
|
| - this._deviceOrientationSetting = WebInspector.settings.createSetting("emulation.deviceOrientationOverride", "");
|
| + this._deviceOrientationSetting = WebInspector.settings.createSetting('emulation.deviceOrientationOverride', '');
|
| this._deviceOrientation = WebInspector.DeviceOrientation.parseSetting(this._deviceOrientationSetting.get());
|
| this._deviceOrientationOverrideEnabled = false;
|
| this._createDeviceOrientationSection();
|
|
|
| - this.contentElement.createChild("div").classList.add("panel-section-separator");
|
| + this.contentElement.createChild('div').classList.add('panel-section-separator');
|
|
|
| this._appendTouchControl();
|
| -};
|
| -
|
| -WebInspector.SensorsView.prototype = {
|
| - /**
|
| - * @param {!WebInspector.Geolocation} geolocation
|
| - */
|
| - _createGeolocationSection: function(geolocation)
|
| - {
|
| - var geogroup = this.contentElement.createChild("section", "sensors-group");
|
| - geogroup.createChild("div", "sensors-group-title").textContent = WebInspector.UIString("Geolocation");
|
| - var fields = geogroup.createChild("div", "geo-fields");
|
| -
|
| - const noOverrideOption = {title: WebInspector.UIString("No override"), location: WebInspector.SensorsView.NonPresetOptions.NoOverride};
|
| - const customLocationOption = {title: WebInspector.UIString("Custom location..."), location: WebInspector.SensorsView.NonPresetOptions.Custom};
|
| - this._locationSelectElement = this.contentElement.createChild("select", "chrome-select");
|
| - this._locationSelectElement.appendChild(new Option(noOverrideOption.title, noOverrideOption.location));
|
| - this._locationSelectElement.appendChild(new Option(customLocationOption.title, customLocationOption.location));
|
| -
|
| - var locationGroups = WebInspector.SensorsView.PresetLocations;
|
| - for (var i = 0; i < locationGroups.length; ++i) {
|
| - var group = locationGroups[i].value;
|
| - var groupElement = this._locationSelectElement.createChild("optgroup");
|
| - groupElement.label = locationGroups[i].title;
|
| - for (var j = 0; j < group.length; ++j)
|
| - groupElement.appendChild(new Option(group[j].title, group[j].location));
|
| - }
|
| - this._locationSelectElement.selectedIndex = 0;
|
| - fields.appendChild(this._locationSelectElement);
|
| - this._locationSelectElement.addEventListener("change", this._geolocationSelectChanged.bind(this));
|
| -
|
| - // Validated input fieldset.
|
| - this._fieldsetElement = fields.createChild("fieldset");
|
| - this._fieldsetElement.disabled = !this._geolocationOverrideEnabled;
|
| - this._fieldsetElement.id = "geolocation-override-section";
|
| -
|
| - var latitudeGroup = this._fieldsetElement.createChild("div", "latlong-group");
|
| - var longitudeGroup = this._fieldsetElement.createChild("div", "latlong-group");
|
| -
|
| - this._latitudeInput = latitudeGroup.createChild("input");
|
| - this._latitudeInput.setAttribute("type", "number");
|
| - this._latitudeInput.value = 0;
|
| - this._latitudeSetter = WebInspector.bindInput(this._latitudeInput, this._applyGeolocationUserInput.bind(this), WebInspector.Geolocation.latitudeValidator, true);
|
| - this._latitudeSetter(String(geolocation.latitude));
|
| -
|
| - this._longitudeInput = longitudeGroup.createChild("input");
|
| - this._longitudeInput.setAttribute("type", "number");
|
| - this._longitudeInput.value = 0;
|
| - this._longitudeSetter = WebInspector.bindInput(this._longitudeInput, this._applyGeolocationUserInput.bind(this), WebInspector.Geolocation.longitudeValidator, true);
|
| - this._longitudeSetter(String(geolocation.longitude));
|
| -
|
| - latitudeGroup.createChild("div", "latlong-title").textContent = WebInspector.UIString("Latitude");
|
| - longitudeGroup.createChild("div", "latlong-title").textContent = WebInspector.UIString("Longitude");
|
| - },
|
| -
|
| - _geolocationSelectChanged: function()
|
| - {
|
| - this._fieldsetElement.disabled = false;
|
| - var value = this._locationSelectElement.options[this._locationSelectElement.selectedIndex].value;
|
| - if (value === WebInspector.SensorsView.NonPresetOptions.NoOverride) {
|
| - this._geolocationOverrideEnabled = false;
|
| - this._fieldsetElement.disabled = true;
|
| - } else if (value === WebInspector.SensorsView.NonPresetOptions.Custom) {
|
| - this._geolocationOverrideEnabled = true;
|
| - } else if (value === WebInspector.SensorsView.NonPresetOptions.Unavailable) {
|
| - this._geolocationOverrideEnabled = true;
|
| - this._geolocation = new WebInspector.Geolocation(0, 0, true);
|
| - } else {
|
| - this._geolocationOverrideEnabled = true;
|
| - var coordinates = JSON.parse(value);
|
| - this._geolocation = new WebInspector.Geolocation(coordinates[0], coordinates[1], false);
|
| - this._latitudeSetter(coordinates[0]);
|
| - this._longitudeSetter(coordinates[1]);
|
| - }
|
| -
|
| - this._applyGeolocation();
|
| - if (value === WebInspector.SensorsView.NonPresetOptions.Custom)
|
| - this._latitudeInput.focus();
|
| - },
|
| -
|
| - _applyGeolocationUserInput: function()
|
| - {
|
| - var geolocation = WebInspector.Geolocation.parseUserInput(this._latitudeInput.value.trim(), this._longitudeInput.value.trim(), "");
|
| - if (!geolocation)
|
| - return;
|
| -
|
| - this._setSelectElementLabel(this._locationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| - this._geolocation = geolocation;
|
| - this._applyGeolocation();
|
| - },
|
| -
|
| - _applyGeolocation: function()
|
| - {
|
| - if (this._geolocationOverrideEnabled) {
|
| - this._geolocationSetting.set(this._geolocation.toSetting());
|
| - this._geolocation.apply();
|
| - } else {
|
| - this._geolocation.clear();
|
| - }
|
| - },
|
| -
|
| - _createDeviceOrientationSection: function()
|
| - {
|
| - var orientationGroup = this.contentElement.createChild("section", "sensors-group");
|
| - orientationGroup.createChild("div", "sensors-group-title").textContent = WebInspector.UIString("Orientation");
|
| - var orientationContent = orientationGroup.createChild("div", "orientation-content");
|
| - var fields = orientationContent.createChild("div", "orientation-fields");
|
| -
|
| - const orientationOffOption = {title: WebInspector.UIString("Off"), orientation: WebInspector.SensorsView.NonPresetOptions.NoOverride};
|
| - const customOrientationOption = {title: WebInspector.UIString("Custom orientation..."), orientation: WebInspector.SensorsView.NonPresetOptions.Custom};
|
| - this._orientationSelectElement = this.contentElement.createChild("select", "chrome-select");
|
| - this._orientationSelectElement.appendChild(new Option(orientationOffOption.title, orientationOffOption.orientation));
|
| - this._orientationSelectElement.appendChild(new Option(customOrientationOption.title, customOrientationOption.orientation));
|
| -
|
| - var orientationGroups = WebInspector.SensorsView.PresetOrientations;
|
| - for (var i = 0; i < orientationGroups.length; ++i) {
|
| - var groupElement = this._orientationSelectElement.createChild("optgroup");
|
| - groupElement.label = orientationGroups[i].title;
|
| - var group = orientationGroups[i].value;
|
| - for (var j = 0; j < group.length; ++j)
|
| - groupElement.appendChild(new Option(group[j].title, group[j].orientation));
|
| - }
|
| - this._orientationSelectElement.selectedIndex = 0;
|
| - fields.appendChild(this._orientationSelectElement);
|
| - this._orientationSelectElement.addEventListener("change", this._orientationSelectChanged.bind(this));
|
| -
|
| - this._deviceOrientationFieldset = this._createDeviceOrientationOverrideElement(this._deviceOrientation);
|
| -
|
| - this._stageElement = orientationContent.createChild("div", "orientation-stage");
|
| - this._stageElement.title = WebInspector.UIString("Shift+drag horizontally to rotate around the y-axis");
|
| - this._orientationLayer = this._stageElement.createChild("div", "orientation-layer");
|
| - this._boxElement = this._orientationLayer.createChild("section", "orientation-box orientation-element");
|
| -
|
| - this._boxElement.createChild("section", "orientation-front orientation-element");
|
| - this._boxElement.createChild("section", "orientation-top orientation-element");
|
| - this._boxElement.createChild("section", "orientation-back orientation-element");
|
| - this._boxElement.createChild("section", "orientation-left orientation-element");
|
| - this._boxElement.createChild("section", "orientation-right orientation-element");
|
| - this._boxElement.createChild("section", "orientation-bottom orientation-element");
|
| -
|
| - WebInspector.installDragHandle(this._stageElement, this._onBoxDragStart.bind(this), this._onBoxDrag.bind(this), null, "-webkit-grabbing", "-webkit-grab");
|
| -
|
| - fields.appendChild(this._deviceOrientationFieldset);
|
| - this._enableOrientationFields(true);
|
| - this._setBoxOrientation(this._deviceOrientation, false);
|
| - },
|
| -
|
| - /**
|
| - * @param {?boolean} disable
|
| - */
|
| - _enableOrientationFields: function(disable)
|
| - {
|
| - if (disable) {
|
| - this._deviceOrientationFieldset.disabled = true;
|
| - this._stageElement.classList.add("disabled");
|
| - } else {
|
| - this._deviceOrientationFieldset.disabled = false;
|
| - this._stageElement.classList.remove("disabled");
|
| - }
|
| - },
|
| -
|
| - _orientationSelectChanged: function()
|
| - {
|
| - var value = this._orientationSelectElement.options[this._orientationSelectElement.selectedIndex].value;
|
| - this._enableOrientationFields(false);
|
| -
|
| - if (value === WebInspector.SensorsView.NonPresetOptions.NoOverride) {
|
| - this._deviceOrientationOverrideEnabled = false;
|
| - this._enableOrientationFields(true);
|
| - } else if (value === WebInspector.SensorsView.NonPresetOptions.Custom) {
|
| - this._deviceOrientationOverrideEnabled = true;
|
| - this._alphaElement.focus();
|
| - } else {
|
| - var parsedValue = JSON.parse(value);
|
| - this._deviceOrientationOverrideEnabled = true;
|
| - this._deviceOrientation = new WebInspector.DeviceOrientation(parsedValue[0], parsedValue[1], parsedValue[2]);
|
| - this._setDeviceOrientation(this._deviceOrientation, WebInspector.SensorsView.DeviceOrientationModificationSource.SelectPreset);
|
| - }
|
| - },
|
| -
|
| - _applyDeviceOrientation: function()
|
| - {
|
| - if (this._deviceOrientationOverrideEnabled) {
|
| - this._deviceOrientationSetting.set(this._deviceOrientation.toSetting());
|
| - this._deviceOrientation.apply();
|
| - } else {
|
| - this._deviceOrientation.clear();
|
| - }
|
| - },
|
| + }
|
|
|
| - /**
|
| - * @param {!Element} selectElement
|
| - * @param {string} labelValue
|
| - */
|
| - _setSelectElementLabel: function(selectElement, labelValue)
|
| - {
|
| - var optionValues = Array.prototype.map.call(selectElement.options, x => x.value);
|
| - selectElement.selectedIndex = optionValues.indexOf(labelValue);
|
| - },
|
| -
|
| - _applyDeviceOrientationUserInput: function()
|
| - {
|
| - this._setDeviceOrientation(WebInspector.DeviceOrientation.parseUserInput(this._alphaElement.value.trim(), this._betaElement.value.trim(), this._gammaElement.value.trim()), WebInspector.SensorsView.DeviceOrientationModificationSource.UserInput);
|
| - this._setSelectElementLabel(this._orientationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| - },
|
| -
|
| - _resetDeviceOrientation: function()
|
| - {
|
| - this._setDeviceOrientation(new WebInspector.DeviceOrientation(0, 90, 0), WebInspector.SensorsView.DeviceOrientationModificationSource.ResetButton);
|
| - this._setSelectElementLabel(this._orientationSelectElement, "[0, 90, 0]");
|
| - },
|
| -
|
| - /**
|
| - * @param {?WebInspector.DeviceOrientation} deviceOrientation
|
| - * @param {!WebInspector.SensorsView.DeviceOrientationModificationSource} modificationSource
|
| - */
|
| - _setDeviceOrientation: function(deviceOrientation, modificationSource)
|
| - {
|
| - if (!deviceOrientation)
|
| - return;
|
| -
|
| - /**
|
| - * @param {number} angle
|
| - * @return {number}
|
| - */
|
| - function roundAngle(angle)
|
| - {
|
| - return Math.round(angle * 10000) / 10000;
|
| - }
|
| -
|
| - if (modificationSource !== WebInspector.SensorsView.DeviceOrientationModificationSource.UserInput) {
|
| - this._alphaSetter(roundAngle(deviceOrientation.alpha));
|
| - this._betaSetter(roundAngle(deviceOrientation.beta));
|
| - this._gammaSetter(roundAngle(deviceOrientation.gamma));
|
| - }
|
| -
|
| - var animate = modificationSource !== WebInspector.SensorsView.DeviceOrientationModificationSource.UserDrag;
|
| - this._setBoxOrientation(deviceOrientation, animate);
|
| -
|
| - this._deviceOrientation = deviceOrientation;
|
| - this._applyDeviceOrientation();
|
| - },
|
| -
|
| - /**
|
| - * @param {!Element} parentElement
|
| - * @param {!Element} input
|
| - * @param {string} label
|
| - * @return {function(string)}
|
| - */
|
| - _createAxisInput: function(parentElement, input, label)
|
| - {
|
| - var div = parentElement.createChild("div", "orientation-axis-input-container");
|
| - div.appendChild(input);
|
| - div.createTextChild(label);
|
| - input.type = "number";
|
| - return WebInspector.bindInput(input, this._applyDeviceOrientationUserInput.bind(this), WebInspector.DeviceOrientation.validator, true);
|
| - },
|
| -
|
| - /**
|
| - * @param {!WebInspector.DeviceOrientation} deviceOrientation
|
| - * @return {!Element}
|
| - */
|
| - _createDeviceOrientationOverrideElement: function(deviceOrientation)
|
| - {
|
| - var fieldsetElement = createElement("fieldset");
|
| - fieldsetElement.classList.add("device-orientation-override-section");
|
| - var cellElement = fieldsetElement.createChild("td", "orientation-inputs-cell");
|
| -
|
| - this._alphaElement = createElement("input");
|
| - this._alphaSetter = this._createAxisInput(cellElement, this._alphaElement, WebInspector.UIString("\u03B1 (alpha)"));
|
| - this._alphaSetter(String(deviceOrientation.alpha));
|
| -
|
| - this._betaElement = createElement("input");
|
| - this._betaSetter = this._createAxisInput(cellElement, this._betaElement, WebInspector.UIString("\u03B2 (beta)"));
|
| - this._betaSetter(String(deviceOrientation.beta));
|
| -
|
| - this._gammaElement = createElement("input");
|
| - this._gammaSetter = this._createAxisInput(cellElement, this._gammaElement, WebInspector.UIString("\u03B3 (gamma)"));
|
| - this._gammaSetter(String(deviceOrientation.gamma));
|
| -
|
| - cellElement.appendChild(createTextButton(WebInspector.UIString("Reset"), this._resetDeviceOrientation.bind(this), "orientation-reset-button"));
|
| - return fieldsetElement;
|
| - },
|
| -
|
| - /**
|
| - * @param {!WebInspector.DeviceOrientation} deviceOrientation
|
| - * @param {boolean} animate
|
| - */
|
| - _setBoxOrientation: function(deviceOrientation, animate)
|
| - {
|
| - if (animate)
|
| - this._stageElement.classList.add("is-animating");
|
| - else
|
| - this._stageElement.classList.remove("is-animating");
|
| -
|
| - // The CSS transform should not depend on matrix3d, which does not interpolate well.
|
| - var matrix = new WebKitCSSMatrix();
|
| - this._boxMatrix = matrix.rotate(-deviceOrientation.beta, deviceOrientation.gamma, -deviceOrientation.alpha);
|
| - var eulerAngles = new WebInspector.Geometry.EulerAngles(deviceOrientation.alpha, deviceOrientation.beta, deviceOrientation.gamma);
|
| - this._orientationLayer.style.transform = eulerAngles.toRotate3DString();
|
| - },
|
| + /**
|
| + * @return {!WebInspector.SensorsView}
|
| + */
|
| + static instance() {
|
| + if (!WebInspector.SensorsView._instanceObject)
|
| + WebInspector.SensorsView._instanceObject = new WebInspector.SensorsView();
|
| + return WebInspector.SensorsView._instanceObject;
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Geolocation} geolocation
|
| + */
|
| + _createGeolocationSection(geolocation) {
|
| + var geogroup = this.contentElement.createChild('section', 'sensors-group');
|
| + geogroup.createChild('div', 'sensors-group-title').textContent = WebInspector.UIString('Geolocation');
|
| + var fields = geogroup.createChild('div', 'geo-fields');
|
| +
|
| + const noOverrideOption = {
|
| + title: WebInspector.UIString('No override'),
|
| + location: WebInspector.SensorsView.NonPresetOptions.NoOverride
|
| + };
|
| + const customLocationOption = {
|
| + title: WebInspector.UIString('Custom location...'),
|
| + location: WebInspector.SensorsView.NonPresetOptions.Custom
|
| + };
|
| + this._locationSelectElement = this.contentElement.createChild('select', 'chrome-select');
|
| + this._locationSelectElement.appendChild(new Option(noOverrideOption.title, noOverrideOption.location));
|
| + this._locationSelectElement.appendChild(new Option(customLocationOption.title, customLocationOption.location));
|
| +
|
| + var locationGroups = WebInspector.SensorsView.PresetLocations;
|
| + for (var i = 0; i < locationGroups.length; ++i) {
|
| + var group = locationGroups[i].value;
|
| + var groupElement = this._locationSelectElement.createChild('optgroup');
|
| + groupElement.label = locationGroups[i].title;
|
| + for (var j = 0; j < group.length; ++j)
|
| + groupElement.appendChild(new Option(group[j].title, group[j].location));
|
| + }
|
| + this._locationSelectElement.selectedIndex = 0;
|
| + fields.appendChild(this._locationSelectElement);
|
| + this._locationSelectElement.addEventListener('change', this._geolocationSelectChanged.bind(this));
|
| +
|
| + // Validated input fieldset.
|
| + this._fieldsetElement = fields.createChild('fieldset');
|
| + this._fieldsetElement.disabled = !this._geolocationOverrideEnabled;
|
| + this._fieldsetElement.id = 'geolocation-override-section';
|
| +
|
| + var latitudeGroup = this._fieldsetElement.createChild('div', 'latlong-group');
|
| + var longitudeGroup = this._fieldsetElement.createChild('div', 'latlong-group');
|
| +
|
| + this._latitudeInput = latitudeGroup.createChild('input');
|
| + this._latitudeInput.setAttribute('type', 'number');
|
| + this._latitudeInput.value = 0;
|
| + this._latitudeSetter = WebInspector.bindInput(
|
| + this._latitudeInput, this._applyGeolocationUserInput.bind(this), WebInspector.Geolocation.latitudeValidator,
|
| + true);
|
| + this._latitudeSetter(String(geolocation.latitude));
|
| +
|
| + this._longitudeInput = longitudeGroup.createChild('input');
|
| + this._longitudeInput.setAttribute('type', 'number');
|
| + this._longitudeInput.value = 0;
|
| + this._longitudeSetter = WebInspector.bindInput(
|
| + this._longitudeInput, this._applyGeolocationUserInput.bind(this), WebInspector.Geolocation.longitudeValidator,
|
| + true);
|
| + this._longitudeSetter(String(geolocation.longitude));
|
| +
|
| + latitudeGroup.createChild('div', 'latlong-title').textContent = WebInspector.UIString('Latitude');
|
| + longitudeGroup.createChild('div', 'latlong-title').textContent = WebInspector.UIString('Longitude');
|
| + }
|
| +
|
| + _geolocationSelectChanged() {
|
| + this._fieldsetElement.disabled = false;
|
| + var value = this._locationSelectElement.options[this._locationSelectElement.selectedIndex].value;
|
| + if (value === WebInspector.SensorsView.NonPresetOptions.NoOverride) {
|
| + this._geolocationOverrideEnabled = false;
|
| + this._fieldsetElement.disabled = true;
|
| + } else if (value === WebInspector.SensorsView.NonPresetOptions.Custom) {
|
| + this._geolocationOverrideEnabled = true;
|
| + } else if (value === WebInspector.SensorsView.NonPresetOptions.Unavailable) {
|
| + this._geolocationOverrideEnabled = true;
|
| + this._geolocation = new WebInspector.Geolocation(0, 0, true);
|
| + } else {
|
| + this._geolocationOverrideEnabled = true;
|
| + var coordinates = JSON.parse(value);
|
| + this._geolocation = new WebInspector.Geolocation(coordinates[0], coordinates[1], false);
|
| + this._latitudeSetter(coordinates[0]);
|
| + this._longitudeSetter(coordinates[1]);
|
| + }
|
|
|
| - /**
|
| - * @param {!MouseEvent} event
|
| - * @return {boolean}
|
| - */
|
| - _onBoxDrag: function(event)
|
| - {
|
| - var mouseMoveVector = this._calculateRadiusVector(event.x, event.y);
|
| - if (!mouseMoveVector)
|
| - return true;
|
| -
|
| - event.consume(true);
|
| - var axis, angle;
|
| - if (event.shiftKey) {
|
| - axis = new WebInspector.Geometry.Vector(0, 0, -1);
|
| - angle = (this._mouseDownVector.x - mouseMoveVector.x) * WebInspector.SensorsView.ShiftDragOrientationSpeed;
|
| - } else {
|
| - axis = WebInspector.Geometry.crossProduct(this._mouseDownVector, mouseMoveVector);
|
| - angle = WebInspector.Geometry.calculateAngle(this._mouseDownVector, mouseMoveVector);
|
| - }
|
| -
|
| - // The mouse movement vectors occur in the screen space, which is offset by 90 degrees from
|
| - // the actual device orientation.
|
| - var currentMatrix = new WebKitCSSMatrix();
|
| - currentMatrix = currentMatrix
|
| - .rotate(-90, 0, 0)
|
| - .rotateAxisAngle(axis.x, axis.y, axis.z, angle)
|
| - .rotate(90, 0, 0)
|
| - .multiply(this._originalBoxMatrix);
|
| -
|
| - var eulerAngles = WebInspector.Geometry.EulerAngles.fromRotationMatrix(currentMatrix);
|
| - var newOrientation = new WebInspector.DeviceOrientation(-eulerAngles.alpha, -eulerAngles.beta, eulerAngles.gamma);
|
| - this._setDeviceOrientation(newOrientation, WebInspector.SensorsView.DeviceOrientationModificationSource.UserDrag);
|
| - this._setSelectElementLabel(this._orientationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| - return false;
|
| - },
|
| + this._applyGeolocation();
|
| + if (value === WebInspector.SensorsView.NonPresetOptions.Custom)
|
| + this._latitudeInput.focus();
|
| + }
|
| +
|
| + _applyGeolocationUserInput() {
|
| + var geolocation = WebInspector.Geolocation.parseUserInput(
|
| + this._latitudeInput.value.trim(), this._longitudeInput.value.trim(), '');
|
| + if (!geolocation)
|
| + return;
|
| +
|
| + this._setSelectElementLabel(this._locationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| + this._geolocation = geolocation;
|
| + this._applyGeolocation();
|
| + }
|
| +
|
| + _applyGeolocation() {
|
| + if (this._geolocationOverrideEnabled) {
|
| + this._geolocationSetting.set(this._geolocation.toSetting());
|
| + this._geolocation.apply();
|
| + } else {
|
| + this._geolocation.clear();
|
| + }
|
| + }
|
| +
|
| + _createDeviceOrientationSection() {
|
| + var orientationGroup = this.contentElement.createChild('section', 'sensors-group');
|
| + orientationGroup.createChild('div', 'sensors-group-title').textContent = WebInspector.UIString('Orientation');
|
| + var orientationContent = orientationGroup.createChild('div', 'orientation-content');
|
| + var fields = orientationContent.createChild('div', 'orientation-fields');
|
| +
|
| + const orientationOffOption = {
|
| + title: WebInspector.UIString('Off'),
|
| + orientation: WebInspector.SensorsView.NonPresetOptions.NoOverride
|
| + };
|
| + const customOrientationOption = {
|
| + title: WebInspector.UIString('Custom orientation...'),
|
| + orientation: WebInspector.SensorsView.NonPresetOptions.Custom
|
| + };
|
| + this._orientationSelectElement = this.contentElement.createChild('select', 'chrome-select');
|
| + this._orientationSelectElement.appendChild(
|
| + new Option(orientationOffOption.title, orientationOffOption.orientation));
|
| + this._orientationSelectElement.appendChild(
|
| + new Option(customOrientationOption.title, customOrientationOption.orientation));
|
| +
|
| + var orientationGroups = WebInspector.SensorsView.PresetOrientations;
|
| + for (var i = 0; i < orientationGroups.length; ++i) {
|
| + var groupElement = this._orientationSelectElement.createChild('optgroup');
|
| + groupElement.label = orientationGroups[i].title;
|
| + var group = orientationGroups[i].value;
|
| + for (var j = 0; j < group.length; ++j)
|
| + groupElement.appendChild(new Option(group[j].title, group[j].orientation));
|
| + }
|
| + this._orientationSelectElement.selectedIndex = 0;
|
| + fields.appendChild(this._orientationSelectElement);
|
| + this._orientationSelectElement.addEventListener('change', this._orientationSelectChanged.bind(this));
|
| +
|
| + this._deviceOrientationFieldset = this._createDeviceOrientationOverrideElement(this._deviceOrientation);
|
| +
|
| + this._stageElement = orientationContent.createChild('div', 'orientation-stage');
|
| + this._stageElement.title = WebInspector.UIString('Shift+drag horizontally to rotate around the y-axis');
|
| + this._orientationLayer = this._stageElement.createChild('div', 'orientation-layer');
|
| + this._boxElement = this._orientationLayer.createChild('section', 'orientation-box orientation-element');
|
| +
|
| + this._boxElement.createChild('section', 'orientation-front orientation-element');
|
| + this._boxElement.createChild('section', 'orientation-top orientation-element');
|
| + this._boxElement.createChild('section', 'orientation-back orientation-element');
|
| + this._boxElement.createChild('section', 'orientation-left orientation-element');
|
| + this._boxElement.createChild('section', 'orientation-right orientation-element');
|
| + this._boxElement.createChild('section', 'orientation-bottom orientation-element');
|
| +
|
| + WebInspector.installDragHandle(
|
| + this._stageElement, this._onBoxDragStart.bind(this), this._onBoxDrag.bind(this), null, '-webkit-grabbing',
|
| + '-webkit-grab');
|
| +
|
| + fields.appendChild(this._deviceOrientationFieldset);
|
| + this._enableOrientationFields(true);
|
| + this._setBoxOrientation(this._deviceOrientation, false);
|
| + }
|
| +
|
| + /**
|
| + * @param {?boolean} disable
|
| + */
|
| + _enableOrientationFields(disable) {
|
| + if (disable) {
|
| + this._deviceOrientationFieldset.disabled = true;
|
| + this._stageElement.classList.add('disabled');
|
| + } else {
|
| + this._deviceOrientationFieldset.disabled = false;
|
| + this._stageElement.classList.remove('disabled');
|
| + }
|
| + }
|
| +
|
| + _orientationSelectChanged() {
|
| + var value = this._orientationSelectElement.options[this._orientationSelectElement.selectedIndex].value;
|
| + this._enableOrientationFields(false);
|
| +
|
| + if (value === WebInspector.SensorsView.NonPresetOptions.NoOverride) {
|
| + this._deviceOrientationOverrideEnabled = false;
|
| + this._enableOrientationFields(true);
|
| + } else if (value === WebInspector.SensorsView.NonPresetOptions.Custom) {
|
| + this._deviceOrientationOverrideEnabled = true;
|
| + this._alphaElement.focus();
|
| + } else {
|
| + var parsedValue = JSON.parse(value);
|
| + this._deviceOrientationOverrideEnabled = true;
|
| + this._deviceOrientation = new WebInspector.DeviceOrientation(parsedValue[0], parsedValue[1], parsedValue[2]);
|
| + this._setDeviceOrientation(
|
| + this._deviceOrientation, WebInspector.SensorsView.DeviceOrientationModificationSource.SelectPreset);
|
| + }
|
| + }
|
| +
|
| + _applyDeviceOrientation() {
|
| + if (this._deviceOrientationOverrideEnabled) {
|
| + this._deviceOrientationSetting.set(this._deviceOrientation.toSetting());
|
| + this._deviceOrientation.apply();
|
| + } else {
|
| + this._deviceOrientation.clear();
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * @param {!Element} selectElement
|
| + * @param {string} labelValue
|
| + */
|
| + _setSelectElementLabel(selectElement, labelValue) {
|
| + var optionValues = Array.prototype.map.call(selectElement.options, x => x.value);
|
| + selectElement.selectedIndex = optionValues.indexOf(labelValue);
|
| + }
|
| +
|
| + _applyDeviceOrientationUserInput() {
|
| + this._setDeviceOrientation(
|
| + WebInspector.DeviceOrientation.parseUserInput(
|
| + this._alphaElement.value.trim(), this._betaElement.value.trim(), this._gammaElement.value.trim()),
|
| + WebInspector.SensorsView.DeviceOrientationModificationSource.UserInput);
|
| + this._setSelectElementLabel(this._orientationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| + }
|
| +
|
| + _resetDeviceOrientation() {
|
| + this._setDeviceOrientation(
|
| + new WebInspector.DeviceOrientation(0, 90, 0),
|
| + WebInspector.SensorsView.DeviceOrientationModificationSource.ResetButton);
|
| + this._setSelectElementLabel(this._orientationSelectElement, '[0, 90, 0]');
|
| + }
|
| +
|
| + /**
|
| + * @param {?WebInspector.DeviceOrientation} deviceOrientation
|
| + * @param {!WebInspector.SensorsView.DeviceOrientationModificationSource} modificationSource
|
| + */
|
| + _setDeviceOrientation(deviceOrientation, modificationSource) {
|
| + if (!deviceOrientation)
|
| + return;
|
|
|
| /**
|
| - * @param {!MouseEvent} event
|
| - * @return {boolean}
|
| + * @param {number} angle
|
| + * @return {number}
|
| */
|
| - _onBoxDragStart: function(event)
|
| - {
|
| - if (!this._deviceOrientationOverrideEnabled)
|
| - return false;
|
| -
|
| - this._mouseDownVector = this._calculateRadiusVector(event.x, event.y);
|
| - this._originalBoxMatrix = this._boxMatrix;
|
| + function roundAngle(angle) {
|
| + return Math.round(angle * 10000) / 10000;
|
| + }
|
|
|
| - if (!this._mouseDownVector)
|
| - return false;
|
| + if (modificationSource !== WebInspector.SensorsView.DeviceOrientationModificationSource.UserInput) {
|
| + this._alphaSetter(roundAngle(deviceOrientation.alpha));
|
| + this._betaSetter(roundAngle(deviceOrientation.beta));
|
| + this._gammaSetter(roundAngle(deviceOrientation.gamma));
|
| + }
|
|
|
| - event.consume(true);
|
| - return true;
|
| - },
|
| + var animate = modificationSource !== WebInspector.SensorsView.DeviceOrientationModificationSource.UserDrag;
|
| + this._setBoxOrientation(deviceOrientation, animate);
|
| +
|
| + this._deviceOrientation = deviceOrientation;
|
| + this._applyDeviceOrientation();
|
| + }
|
| +
|
| + /**
|
| + * @param {!Element} parentElement
|
| + * @param {!Element} input
|
| + * @param {string} label
|
| + * @return {function(string)}
|
| + */
|
| + _createAxisInput(parentElement, input, label) {
|
| + var div = parentElement.createChild('div', 'orientation-axis-input-container');
|
| + div.appendChild(input);
|
| + div.createTextChild(label);
|
| + input.type = 'number';
|
| + return WebInspector.bindInput(
|
| + input, this._applyDeviceOrientationUserInput.bind(this), WebInspector.DeviceOrientation.validator, true);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.DeviceOrientation} deviceOrientation
|
| + * @return {!Element}
|
| + */
|
| + _createDeviceOrientationOverrideElement(deviceOrientation) {
|
| + var fieldsetElement = createElement('fieldset');
|
| + fieldsetElement.classList.add('device-orientation-override-section');
|
| + var cellElement = fieldsetElement.createChild('td', 'orientation-inputs-cell');
|
| +
|
| + this._alphaElement = createElement('input');
|
| + this._alphaSetter = this._createAxisInput(cellElement, this._alphaElement, WebInspector.UIString('\u03B1 (alpha)'));
|
| + this._alphaSetter(String(deviceOrientation.alpha));
|
| +
|
| + this._betaElement = createElement('input');
|
| + this._betaSetter = this._createAxisInput(cellElement, this._betaElement, WebInspector.UIString('\u03B2 (beta)'));
|
| + this._betaSetter(String(deviceOrientation.beta));
|
| +
|
| + this._gammaElement = createElement('input');
|
| + this._gammaSetter = this._createAxisInput(cellElement, this._gammaElement, WebInspector.UIString('\u03B3 (gamma)'));
|
| + this._gammaSetter(String(deviceOrientation.gamma));
|
| +
|
| + cellElement.appendChild(createTextButton(
|
| + WebInspector.UIString('Reset'), this._resetDeviceOrientation.bind(this), 'orientation-reset-button'));
|
| + return fieldsetElement;
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.DeviceOrientation} deviceOrientation
|
| + * @param {boolean} animate
|
| + */
|
| + _setBoxOrientation(deviceOrientation, animate) {
|
| + if (animate)
|
| + this._stageElement.classList.add('is-animating');
|
| + else
|
| + this._stageElement.classList.remove('is-animating');
|
| +
|
| + // The CSS transform should not depend on matrix3d, which does not interpolate well.
|
| + var matrix = new WebKitCSSMatrix();
|
| + this._boxMatrix = matrix.rotate(-deviceOrientation.beta, deviceOrientation.gamma, -deviceOrientation.alpha);
|
| + var eulerAngles =
|
| + new WebInspector.Geometry.EulerAngles(deviceOrientation.alpha, deviceOrientation.beta, deviceOrientation.gamma);
|
| + this._orientationLayer.style.transform = eulerAngles.toRotate3DString();
|
| + }
|
| +
|
| + /**
|
| + * @param {!MouseEvent} event
|
| + * @return {boolean}
|
| + */
|
| + _onBoxDrag(event) {
|
| + var mouseMoveVector = this._calculateRadiusVector(event.x, event.y);
|
| + if (!mouseMoveVector)
|
| + return true;
|
| +
|
| + event.consume(true);
|
| + var axis, angle;
|
| + if (event.shiftKey) {
|
| + axis = new WebInspector.Geometry.Vector(0, 0, -1);
|
| + angle = (this._mouseDownVector.x - mouseMoveVector.x) * WebInspector.SensorsView.ShiftDragOrientationSpeed;
|
| + } else {
|
| + axis = WebInspector.Geometry.crossProduct(this._mouseDownVector, mouseMoveVector);
|
| + angle = WebInspector.Geometry.calculateAngle(this._mouseDownVector, mouseMoveVector);
|
| + }
|
|
|
| - /**
|
| - * @param {number} x
|
| - * @param {number} y
|
| - * @return {?WebInspector.Geometry.Vector}
|
| - */
|
| - _calculateRadiusVector: function(x, y)
|
| - {
|
| - var rect = this._stageElement.getBoundingClientRect();
|
| - var radius = Math.max(rect.width, rect.height) / 2;
|
| - var sphereX = (x - rect.left - rect.width / 2) / radius;
|
| - var sphereY = (y - rect.top - rect.height / 2) / radius;
|
| - var sqrSum = sphereX * sphereX + sphereY * sphereY;
|
| - if (sqrSum > 0.5)
|
| - return new WebInspector.Geometry.Vector(sphereX, sphereY, 0.5 / Math.sqrt(sqrSum));
|
| -
|
| - return new WebInspector.Geometry.Vector(sphereX, sphereY, Math.sqrt(1 - sqrSum));
|
| - },
|
| -
|
| - _appendTouchControl: function()
|
| - {
|
| - var groupElement = this.contentElement.createChild("div", "sensors-group");
|
| - var title = groupElement.createChild("div", "sensors-group-title");
|
| - var fieldsElement = groupElement.createChild("div", "sensors-group-fields");
|
| -
|
| - title.textContent = WebInspector.UIString("Touch");
|
| - var select = fieldsElement.createChild("select", "chrome-select");
|
| - select.appendChild(new Option(WebInspector.UIString("Device-based"), "auto"));
|
| - select.appendChild(new Option(WebInspector.UIString("Force enabled"), "enabled"));
|
| - select.addEventListener("change", applyTouch, false);
|
| -
|
| - function applyTouch()
|
| - {
|
| - WebInspector.MultitargetTouchModel.instance().setCustomTouchEnabled(select.value === "enabled");
|
| - }
|
| - },
|
| -
|
| - __proto__ : WebInspector.VBox.prototype
|
| + // The mouse movement vectors occur in the screen space, which is offset by 90 degrees from
|
| + // the actual device orientation.
|
| + var currentMatrix = new WebKitCSSMatrix();
|
| + currentMatrix = currentMatrix.rotate(-90, 0, 0)
|
| + .rotateAxisAngle(axis.x, axis.y, axis.z, angle)
|
| + .rotate(90, 0, 0)
|
| + .multiply(this._originalBoxMatrix);
|
| +
|
| + var eulerAngles = WebInspector.Geometry.EulerAngles.fromRotationMatrix(currentMatrix);
|
| + var newOrientation = new WebInspector.DeviceOrientation(-eulerAngles.alpha, -eulerAngles.beta, eulerAngles.gamma);
|
| + this._setDeviceOrientation(newOrientation, WebInspector.SensorsView.DeviceOrientationModificationSource.UserDrag);
|
| + this._setSelectElementLabel(this._orientationSelectElement, WebInspector.SensorsView.NonPresetOptions.Custom);
|
| + return false;
|
| + }
|
| +
|
| + /**
|
| + * @param {!MouseEvent} event
|
| + * @return {boolean}
|
| + */
|
| + _onBoxDragStart(event) {
|
| + if (!this._deviceOrientationOverrideEnabled)
|
| + return false;
|
| +
|
| + this._mouseDownVector = this._calculateRadiusVector(event.x, event.y);
|
| + this._originalBoxMatrix = this._boxMatrix;
|
| +
|
| + if (!this._mouseDownVector)
|
| + return false;
|
| +
|
| + event.consume(true);
|
| + return true;
|
| + }
|
| +
|
| + /**
|
| + * @param {number} x
|
| + * @param {number} y
|
| + * @return {?WebInspector.Geometry.Vector}
|
| + */
|
| + _calculateRadiusVector(x, y) {
|
| + var rect = this._stageElement.getBoundingClientRect();
|
| + var radius = Math.max(rect.width, rect.height) / 2;
|
| + var sphereX = (x - rect.left - rect.width / 2) / radius;
|
| + var sphereY = (y - rect.top - rect.height / 2) / radius;
|
| + var sqrSum = sphereX * sphereX + sphereY * sphereY;
|
| + if (sqrSum > 0.5)
|
| + return new WebInspector.Geometry.Vector(sphereX, sphereY, 0.5 / Math.sqrt(sqrSum));
|
| +
|
| + return new WebInspector.Geometry.Vector(sphereX, sphereY, Math.sqrt(1 - sqrSum));
|
| + }
|
| +
|
| + _appendTouchControl() {
|
| + var groupElement = this.contentElement.createChild('div', 'sensors-group');
|
| + var title = groupElement.createChild('div', 'sensors-group-title');
|
| + var fieldsElement = groupElement.createChild('div', 'sensors-group-fields');
|
| +
|
| + title.textContent = WebInspector.UIString('Touch');
|
| + var select = fieldsElement.createChild('select', 'chrome-select');
|
| + select.appendChild(new Option(WebInspector.UIString('Device-based'), 'auto'));
|
| + select.appendChild(new Option(WebInspector.UIString('Force enabled'), 'enabled'));
|
| + select.addEventListener('change', applyTouch, false);
|
| +
|
| + function applyTouch() {
|
| + WebInspector.MultitargetTouchModel.instance().setCustomTouchEnabled(select.value === 'enabled');
|
| + }
|
| + }
|
| };
|
|
|
| /** @enum {string} */
|
| WebInspector.SensorsView.DeviceOrientationModificationSource = {
|
| - UserInput: "userInput",
|
| - UserDrag: "userDrag",
|
| - ResetButton: "resetButton",
|
| - SelectPreset: "selectPreset"
|
| + UserInput: 'userInput',
|
| + UserDrag: 'userDrag',
|
| + ResetButton: 'resetButton',
|
| + SelectPreset: 'selectPreset'
|
| };
|
|
|
| /** {string} */
|
| WebInspector.SensorsView.NonPresetOptions = {
|
| - "NoOverride": "noOverride",
|
| - "Custom": "custom",
|
| - "Unavailable": "unavailable"
|
| + 'NoOverride': 'noOverride',
|
| + 'Custom': 'custom',
|
| + 'Unavailable': 'unavailable'
|
| };
|
|
|
| /** @type {!Array.<{title: string, value: !Array.<{title: string, location: string}>}>} */
|
| WebInspector.SensorsView.PresetLocations = [
|
| - {
|
| - title: "Presets",
|
| - value: [
|
| - {title: WebInspector.UIString("Berlin"), location: "[52.520007, 13.404954]"},
|
| - {title: WebInspector.UIString("London"), location: "[51.507351, -0.127758]"},
|
| - {title: WebInspector.UIString("Moscow"), location: "[55.755826, 37.617300]"},
|
| - {title: WebInspector.UIString("Mountain View"), location: "[37.386052, -122.083851]"},
|
| - {title: WebInspector.UIString("Mumbai"), location: "[19.075984, 72.877656]"},
|
| - {title: WebInspector.UIString("San Francisco"), location: "[37.774929, -122.419416]"},
|
| - {title: WebInspector.UIString("Shanghai"), location: "[31.230416, 121.473701]"},
|
| - {title: WebInspector.UIString("São Paulo"), location: "[-23.550520, -46.633309]"},
|
| - {title: WebInspector.UIString("Tokyo"), location: "[35.689487, 139.691706]"},
|
| - ]
|
| - },
|
| - {
|
| - title: "Error",
|
| - value: [
|
| - {title: WebInspector.UIString("Location unavailable"), location: WebInspector.SensorsView.NonPresetOptions.Unavailable}
|
| - ]
|
| - }
|
| + {
|
| + title: 'Presets',
|
| + value: [
|
| + {title: WebInspector.UIString('Berlin'), location: '[52.520007, 13.404954]'},
|
| + {title: WebInspector.UIString('London'), location: '[51.507351, -0.127758]'},
|
| + {title: WebInspector.UIString('Moscow'), location: '[55.755826, 37.617300]'},
|
| + {title: WebInspector.UIString('Mountain View'), location: '[37.386052, -122.083851]'},
|
| + {title: WebInspector.UIString('Mumbai'), location: '[19.075984, 72.877656]'},
|
| + {title: WebInspector.UIString('San Francisco'), location: '[37.774929, -122.419416]'},
|
| + {title: WebInspector.UIString('Shanghai'), location: '[31.230416, 121.473701]'},
|
| + {title: WebInspector.UIString('São Paulo'), location: '[-23.550520, -46.633309]'},
|
| + {title: WebInspector.UIString('Tokyo'), location: '[35.689487, 139.691706]'},
|
| + ]
|
| + },
|
| + {
|
| + title: 'Error',
|
| + value: [{
|
| + title: WebInspector.UIString('Location unavailable'),
|
| + location: WebInspector.SensorsView.NonPresetOptions.Unavailable
|
| + }]
|
| + }
|
| ];
|
|
|
| /** @type {!Array.<{title: string, value: !Array.<{title: string, orientation: !WebInspector.DeviceOrientation}>}>} */
|
| -WebInspector.SensorsView.PresetOrientations = [
|
| - {
|
| - title: "Presets",
|
| - value: [
|
| - {title: WebInspector.UIString("Portrait"), orientation: "[0, 90, 0]"},
|
| - {title: WebInspector.UIString("Portrait upside down"), orientation: "[180, -90, 0]"},
|
| - {title: WebInspector.UIString("Landscape left"), orientation: "[0, 90, -90]"},
|
| - {title: WebInspector.UIString("Landscape right"), orientation: "[0, 90, 90]"},
|
| - {title: WebInspector.UIString("Display up"), orientation: "[0, 0, 0]"},
|
| - {title: WebInspector.UIString("Display down"), orientation: "[0, 180, 0]"}
|
| - ]
|
| - }
|
| -];
|
| +WebInspector.SensorsView.PresetOrientations = [{
|
| + title: 'Presets',
|
| + value: [
|
| + {title: WebInspector.UIString('Portrait'), orientation: '[0, 90, 0]'},
|
| + {title: WebInspector.UIString('Portrait upside down'), orientation: '[180, -90, 0]'},
|
| + {title: WebInspector.UIString('Landscape left'), orientation: '[0, 90, -90]'},
|
| + {title: WebInspector.UIString('Landscape right'), orientation: '[0, 90, 90]'},
|
| + {title: WebInspector.UIString('Display up'), orientation: '[0, 0, 0]'},
|
| + {title: WebInspector.UIString('Display down'), orientation: '[0, 180, 0]'}
|
| + ]
|
| +}];
|
|
|
| -/**
|
| - * @return {!WebInspector.SensorsView}
|
| - */
|
| -WebInspector.SensorsView.instance = function()
|
| -{
|
| - if (!WebInspector.SensorsView._instanceObject)
|
| - WebInspector.SensorsView._instanceObject = new WebInspector.SensorsView();
|
| - return WebInspector.SensorsView._instanceObject;
|
| -};
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ActionDelegate}
|
| + * @unrestricted
|
| */
|
| -WebInspector.SensorsView.ShowActionDelegate = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.SensorsView.ShowActionDelegate.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Context} context
|
| - * @param {string} actionId
|
| - * @return {boolean}
|
| - */
|
| - handleAction: function(context, actionId)
|
| - {
|
| - WebInspector.viewManager.showView("sensors");
|
| - return true;
|
| - }
|
| +WebInspector.SensorsView.ShowActionDelegate = class {
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Context} context
|
| + * @param {string} actionId
|
| + * @return {boolean}
|
| + */
|
| + handleAction(context, actionId) {
|
| + WebInspector.viewManager.showView('sensors');
|
| + return true;
|
| + }
|
| };
|
|
|
| WebInspector.SensorsView.ShiftDragOrientationSpeed = 16;
|
|
|