mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
Bug 1156659 - Added offline network throttling to devtools. r=devtools-reviewers,bomsy,devtools-backward-compat-reviewers
Depends on D187704 Differential Revision: https://phabricator.services.mozilla.com/D187705
This commit is contained in:
parent
3b39108bc7
commit
a97e16eb2e
@ -512,6 +512,9 @@ class Connector {
|
|||||||
async updateNetworkThrottling(enabled, profile) {
|
async updateNetworkThrottling(enabled, profile) {
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
this.networkFront.clearNetworkThrottling();
|
this.networkFront.clearNetworkThrottling();
|
||||||
|
await this.commands.targetConfigurationCommand.updateConfiguration({
|
||||||
|
setTabOffline: false,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
// The profile can be either a profile id which is used to
|
// The profile can be either a profile id which is used to
|
||||||
// search the predefined throttle profiles or a profile object
|
// search the predefined throttle profiles or a profile object
|
||||||
@ -520,6 +523,9 @@ class Connector {
|
|||||||
profile = throttlingProfiles.find(({ id }) => id == profile);
|
profile = throttlingProfiles.find(({ id }) => id == profile);
|
||||||
}
|
}
|
||||||
const { download, upload, latency } = profile;
|
const { download, upload, latency } = profile;
|
||||||
|
await this.commands.targetConfigurationCommand.updateConfiguration({
|
||||||
|
setTabOffline: !download,
|
||||||
|
});
|
||||||
await this.networkFront.setNetworkThrottling({
|
await this.networkFront.setNetworkThrottling({
|
||||||
downloadThroughput: download,
|
downloadThroughput: download,
|
||||||
uploadThroughput: upload,
|
uploadThroughput: upload,
|
||||||
|
@ -99,6 +99,12 @@ const profiles = [
|
|||||||
upload: 15 * MBps,
|
upload: 15 * MBps,
|
||||||
latency: 2,
|
latency: 2,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "Offline",
|
||||||
|
download: 0,
|
||||||
|
upload: 0,
|
||||||
|
latency: 5,
|
||||||
|
},
|
||||||
].map(profile => new ThrottlingProfile(profile));
|
].map(profile => new ThrottlingProfile(profile));
|
||||||
|
|
||||||
module.exports = profiles;
|
module.exports = profiles;
|
||||||
|
@ -32,6 +32,7 @@ The table below lists the numbers associated with each network type, but please
|
|||||||
Regular 4G/LTE, 4 Mbps, 3 Mbps, 20
|
Regular 4G/LTE, 4 Mbps, 3 Mbps, 20
|
||||||
DSL, 2 Mbps, 1 Mbps, 5
|
DSL, 2 Mbps, 1 Mbps, 5
|
||||||
Wi-Fi, 30 Mbps, 15 Mbps, 2
|
Wi-Fi, 30 Mbps, 15 Mbps, 2
|
||||||
|
Offline, 0 Mbps, 0 Mbps, 5
|
||||||
|
|
||||||
Network Monitor Features
|
Network Monitor Features
|
||||||
************************
|
************************
|
||||||
|
@ -202,6 +202,11 @@ The table below lists the numbers associated with each network type, but please
|
|||||||
- 15 Mb/s
|
- 15 Mb/s
|
||||||
- 2
|
- 2
|
||||||
|
|
||||||
|
* - Offline
|
||||||
|
- 0 Mb/s
|
||||||
|
- 0 Mb/s
|
||||||
|
- 5
|
||||||
|
|
||||||
To select a network, click the list box that's initially labeled "No throttling":
|
To select a network, click the list box that's initially labeled "No throttling":
|
||||||
|
|
||||||
.. image:: rdm_throttling.png
|
.. image:: rdm_throttling.png
|
||||||
|
@ -47,6 +47,8 @@ const SUPPORTED_OPTIONS = {
|
|||||||
restoreFocus: true,
|
restoreFocus: true,
|
||||||
// Enable service worker testing over HTTP (instead of HTTPS only).
|
// Enable service worker testing over HTTP (instead of HTTPS only).
|
||||||
serviceWorkersTestingEnabled: true,
|
serviceWorkersTestingEnabled: true,
|
||||||
|
// Set the current tab offline
|
||||||
|
setTabOffline: true,
|
||||||
// Enable touch events simulation
|
// Enable touch events simulation
|
||||||
touchEventsOverride: true,
|
touchEventsOverride: true,
|
||||||
// Use simplified highlighters when prefers-reduced-motion is enabled.
|
// Use simplified highlighters when prefers-reduced-motion is enabled.
|
||||||
@ -266,6 +268,9 @@ class TargetConfigurationActor extends Actor {
|
|||||||
case "cacheDisabled":
|
case "cacheDisabled":
|
||||||
this._setCacheDisabled(value);
|
this._setCacheDisabled(value);
|
||||||
break;
|
break;
|
||||||
|
case "setTabOffline":
|
||||||
|
this._setTabOffline(value);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,6 +287,7 @@ class TargetConfigurationActor extends Actor {
|
|||||||
this._setServiceWorkersTestingEnabled(false);
|
this._setServiceWorkersTestingEnabled(false);
|
||||||
this._setPrintSimulationEnabled(false);
|
this._setPrintSimulationEnabled(false);
|
||||||
this._setCacheDisabled(false);
|
this._setCacheDisabled(false);
|
||||||
|
this._setTabOffline(false);
|
||||||
|
|
||||||
// Restore the color scheme simulation only if it was explicitly updated
|
// Restore the color scheme simulation only if it was explicitly updated
|
||||||
// by this actor. This will avoid side effects caused when destroying additional
|
// by this actor. This will avoid side effects caused when destroying additional
|
||||||
@ -453,6 +459,17 @@ class TargetConfigurationActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the browsing context to offline.
|
||||||
|
*
|
||||||
|
* @param {Boolean} offline: Whether the network throttling is set to offline
|
||||||
|
*/
|
||||||
|
_setTabOffline(offline) {
|
||||||
|
if (!this._browsingContext.isDiscarded) {
|
||||||
|
this._browsingContext.forceOffline = offline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
Services.obs.removeObserver(
|
Services.obs.removeObserver(
|
||||||
this._onBrowsingContextAttached,
|
this._onBrowsingContextAttached,
|
||||||
|
@ -62,6 +62,34 @@ add_task(async function () {
|
|||||||
"Option colorSchemeSimulation was set, with a string value"
|
"Option colorSchemeSimulation was set, with a string value"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
await targetConfigurationCommand.updateConfiguration({
|
||||||
|
setTabOffline: true,
|
||||||
|
});
|
||||||
|
compareOptions(
|
||||||
|
targetConfigurationCommand.configuration,
|
||||||
|
{
|
||||||
|
cacheDisabled: false,
|
||||||
|
colorSchemeSimulation: "dark",
|
||||||
|
javascriptEnabled: false,
|
||||||
|
setTabOffline: true,
|
||||||
|
},
|
||||||
|
"Option setTabOffline was set on"
|
||||||
|
);
|
||||||
|
|
||||||
|
await targetConfigurationCommand.updateConfiguration({
|
||||||
|
setTabOffline: false,
|
||||||
|
});
|
||||||
|
compareOptions(
|
||||||
|
targetConfigurationCommand.configuration,
|
||||||
|
{
|
||||||
|
setTabOffline: false,
|
||||||
|
cacheDisabled: false,
|
||||||
|
colorSchemeSimulation: "dark",
|
||||||
|
javascriptEnabled: false,
|
||||||
|
},
|
||||||
|
"Option setTabOffline was set off"
|
||||||
|
);
|
||||||
|
|
||||||
targetCommand.destroy();
|
targetCommand.destroy();
|
||||||
await commands.destroy();
|
await commands.destroy();
|
||||||
});
|
});
|
||||||
|
@ -23,6 +23,7 @@ types.addDictType("target-configuration.configuration", {
|
|||||||
reloadOnTouchSimulationToggle: "nullable:boolean",
|
reloadOnTouchSimulationToggle: "nullable:boolean",
|
||||||
restoreFocus: "nullable:boolean",
|
restoreFocus: "nullable:boolean",
|
||||||
serviceWorkersTestingEnabled: "nullable:boolean",
|
serviceWorkersTestingEnabled: "nullable:boolean",
|
||||||
|
setTabOffline: "nullable:boolean",
|
||||||
touchEventsOverride: "nullable:string",
|
touchEventsOverride: "nullable:string",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2353,7 +2353,7 @@ devtools.main:
|
|||||||
release_channel_collection: opt-out
|
release_channel_collection: opt-out
|
||||||
expiry_version: never
|
expiry_version: never
|
||||||
extra_keys:
|
extra_keys:
|
||||||
mode: No throttling, GPRS, Regular 2G, Good 2G, Regular 3G, Good 3G, Regular 4G / LTE, DSL or WI-FI.
|
mode: No throttling, GPRS, Regular 2G, Good 2G, Regular 3G, Good 3G, Regular 4G / LTE, DSL, WI-FI, or Offline.
|
||||||
session_id: The toolbox session start time e.g. 13963.
|
session_id: The toolbox session start time e.g. 13963.
|
||||||
tool_timer:
|
tool_timer:
|
||||||
objects: ["animationinspector", "compatibilityview", "computedview", "changesview", "fontinspector", "layoutview", "ruleview"]
|
objects: ["animationinspector", "compatibilityview", "computedview", "changesview", "fontinspector", "layoutview", "ruleview"]
|
||||||
|
Loading…
Reference in New Issue
Block a user