Restore "DevTools: [Audits] Roll Lighthouse to v3.0-beta"

This reverts commit 28abe7802899b037a176426f883c750fec5a6d24.

Bug: 772558, 846211,846551
Change-Id: Ib782b1fb5ee737f31deaa94630fb2bb1021b579b
Reviewed-on: https://chromium-review.googlesource.com/1077597
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: Patrick Hulce <phulce@chromium.org>
Commit-Queue: Paul Irish <paulirish@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#563121}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8405e18c05b9e5a1c714db1e204de6aaae3be24d
diff --git a/front_end/audits2/Audits2Controller.js b/front_end/audits2/Audits2Controller.js
index a33681c..843e716 100644
--- a/front_end/audits2/Audits2Controller.js
+++ b/front_end/audits2/Audits2Controller.js
@@ -254,20 +254,40 @@
   },
   {
     setting: Common.settings.createSetting('audits2.throttling', 'default'),
-    description: ls`Apply network and CPU throttling during performance auditing`,
     setFlags: (flags, value) => {
-      flags.disableNetworkThrottling = value === 'off';
-      flags.disableCpuThrottling = value === 'off';
+      switch (value) {
+        case 'devtools':
+          flags.throttlingMethod = 'devtools';
+          break;
+        case 'off':
+          flags.throttlingMethod = 'provided';
+          break;
+        default:
+          flags.throttlingMethod = 'simulate';
+      }
     },
     options: [
-      {label: ls`Fast 3G with 4x CPU Slowdown`, value: 'default'},
-      {label: ls`No throttling`, value: 'off'},
+      {
+        label: ls`Simulated Fast 3G, 4x CPU Slowdown`,
+        value: 'default',
+        title: 'Throttling is simulated, resulting in faster audit runs with similar measurement accuracy'
+      },
+      {
+        label: ls`Applied Fast 3G, 4x CPU Slowdown`,
+        value: 'devtools',
+        title: 'Typical DevTools throttling, with actual traffic shaping and CPU slowdown applied'
+      },
+      {
+        label: ls`No throttling`,
+        value: 'off',
+        title: 'No network or CPU throttling used. (Useful when not evaluating performance)'
+      },
     ],
   },
   {
     setting: Common.settings.createSetting('audits2.clear_storage', true),
     title: ls`Clear storage`,
-    description: ls`Reset storage (localStorage, IndexedDB, etc) to a clean baseline before auditing`,
+    description: ls`Reset storage (localStorage, IndexedDB, etc) before auditing. (Good for performance & PWA testing)`,
     setFlags: (flags, value) => {
       flags.disableStorageReset = !value;
     },
@@ -279,4 +299,4 @@
   AuditProgressChanged: Symbol('AuditProgressChanged'),
   RequestAuditStart: Symbol('RequestAuditStart'),
   RequestAuditCancel: Symbol('RequestAuditCancel'),
-};
\ No newline at end of file
+};