VandanRogheliya

Bug 1380676 - Patch

Jun 12th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.05 KB | None | 0 0
  1. # HG changeset patch
  2. # User VandanRogheliya <[email protected]>
  3. # Date 1591978922 -19800
  4. # Fri Jun 12 21:52:02 2020 +0530
  5. # Node ID 30a65946da20ffecd9cfec66ff89aa39dd158c51
  6. # Parent 10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd
  7. Bug 1380676 - Date.now() instances replaced with performance.now(). r=sparky
  8.  
  9. diff --git a/testing/talos/talos/pageloader/chrome/pageloader.js b/testing/talos/talos/pageloader/chrome/pageloader.js
  10. --- a/testing/talos/talos/pageloader/chrome/pageloader.js
  11. +++ b/testing/talos/talos/pageloader/chrome/pageloader.js
  12. @@ -404,17 +404,17 @@ function plLoadPage() {
  13. function startAndLoadURI(pageName) {
  14. if (!(plPageFlags() & TEST_DOES_OWN_TIMING)) {
  15. // Resume the profiler because we're really measuring page load time.
  16. // If the test is doing its own timing, it'll also need to do its own
  17. // profiler pausing / resuming.
  18. TalosParentProfiler.resume("Starting to load URI " + pageName);
  19. }
  20.  
  21. - start_time = Date.now();
  22. + start_time = performance.now();
  23. if (loadNoCache) {
  24. content.loadURI(pageName, {
  25. triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
  26. flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE,
  27. });
  28. } else {
  29. content.loadURI(pageName, {
  30. triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
  31. @@ -527,19 +527,19 @@ var plNextPage = async function() {
  32. pageIndex++;
  33. recordedName = null;
  34. pageCycle = 1;
  35. doNextPage = true;
  36. }
  37.  
  38. if (doNextPage) {
  39. if (forceCC) {
  40. - var tccstart = new Date();
  41. + var tccstart = performance.now();
  42. window.windowUtils.garbageCollect();
  43. - var tccend = new Date();
  44. + var tccend = performance.now();
  45. report.recordCCTime(tccend - tccstart);
  46.  
  47. // Now asynchronously trigger GC / CC in the content process
  48. await forceContentGC();
  49. }
  50.  
  51. setTimeout(plLoadPage, delay);
  52. } else {
  53. @@ -728,17 +728,17 @@ function _loadHandlerCapturing() {
  54. dumpLine(
  55. "tp: Capturing onload handler used with page that doesn't do its own timing?"
  56. );
  57. plStop(true);
  58. }
  59.  
  60. if (useMozAfterPaint) {
  61. if (gStartTime != null && gStartTime >= 0) {
  62. - gTime = new Date() - gStartTime;
  63. + gTime = performance.now() - gStartTime;
  64. gStartTime = -1;
  65. }
  66. }
  67.  
  68. if (gTime !== -1) {
  69. plRecordTime(gTime);
  70. TalosParentProfiler.pause("capturing load handler fired");
  71. gTime = -1;
  72. @@ -783,17 +783,17 @@ function _loadHandler(paint_time = 0) {
  73. failTimeout.clear();
  74. var end_time = 0;
  75.  
  76. if (paint_time !== 0) {
  77. // window.performance.timing.timeToNonBlankPaint is a timestamp
  78. // this may have a value for hero element (also a timestamp)
  79. end_time = paint_time;
  80. } else {
  81. - end_time = Date.now();
  82. + end_time = performance.now();
  83. }
  84.  
  85. var duration;
  86. if (usePDFPaint) {
  87. // PDF paint uses performance.now(), so the time does not need to be
  88. // adjusted from the start time.
  89. duration = end_time;
  90. } else {
  91. @@ -833,22 +833,23 @@ function plLoadHandlerMessage(message) {
  92. failTimeout.clear();
  93.  
  94. if (plPageFlags() & EXECUTE_SCROLL_TEST) {
  95. // Let the page settle down after its load event, then execute the scroll test.
  96. setTimeout(sendScroll, 500);
  97. } else if (plPageFlags() & TEST_DOES_OWN_TIMING) {
  98. var time;
  99.  
  100. - if (typeof gStartTime != "number") {
  101. - gStartTime = Date.parse(gStartTime);
  102. - }
  103. + //performance.now() returns a typeof number so no need to check
  104. + // if (typeof gStartTime != "number") {
  105. + // gStartTime = Date.parse(gStartTime);
  106. + // }
  107. if (gTime !== -1) {
  108. if (useMozAfterPaint && gStartTime >= 0) {
  109. - time = Date.now() - gStartTime;
  110. + time = performance.now() - gStartTime;
  111. gStartTime = -1;
  112. } else if (!useMozAfterPaint) {
  113. time = gTime;
  114. }
  115. gTime = -1;
  116. }
  117.  
  118. if (time !== undefined) {
  119. diff --git a/testing/talos/talos/pageloader/chrome/report.js b/testing/talos/talos/pageloader/chrome/report.js
  120. --- a/testing/talos/talos/pageloader/chrome/report.js
  121. +++ b/testing/talos/talos/pageloader/chrome/report.js
  122. @@ -85,17 +85,17 @@ Report.prototype.getReport = function()
  123. }
  124. report += "__end_tp_report\n";
  125.  
  126. if (this.showTotalCCTime) {
  127. report += "__start_cc_report\n";
  128. report += "_x_x_mozilla_cycle_collect," + this.totalCCTime + "\n";
  129. report += "__end_cc_report\n";
  130. }
  131. - var now = new Date().getTime(); // eslint-disable-line mozilla/avoid-Date-timing
  132. + var now = performance.now(); // eslint-disable-line mozilla/avoid-Date-timing
  133. report += "__startTimestamp" + now + "__endTimestamp\n"; // timestamp for determning shutdown time, used by talos
  134.  
  135. return report;
  136. };
  137.  
  138. Report.prototype.getReportSummary = function() {
  139. function average(arr) {
  140. var sum = 0;
  141. diff --git a/testing/talos/talos/pageloader/chrome/tscroll.js b/testing/talos/talos/pageloader/chrome/tscroll.js
  142. --- a/testing/talos/talos/pageloader/chrome/tscroll.js
  143. +++ b/testing/talos/talos/pageloader/chrome/tscroll.js
  144. @@ -87,17 +87,18 @@ function testScroll(target, stepSize, op
  145. if (!report && document.head) {
  146. var imported = document.createElement("script");
  147. imported.addEventListener("load", function() {
  148. report = tpRecordTime;
  149. resolve();
  150. });
  151.  
  152. // eslint-disable-next-line mozilla/avoid-Date-timing
  153. - imported.src = "../../scripts/talos-debug.js?dummy=" + Date.now(); // For some browsers to re-read
  154. + imported.src =
  155. + "../../scripts/talos-debug.js?dummy=" + performance.now(); // For some browsers to re-read
  156. document.head.appendChild(imported);
  157. return;
  158. }
  159.  
  160. resolve();
  161. });
  162. }
  163.  
  164. @@ -123,17 +124,17 @@ function testScroll(target, stepSize, op
  165. return new Promise(function(resolve) {
  166. win.addEventListener("MozAfterPaint", () => resolve(), { once: true });
  167. });
  168. }
  169.  
  170. function myNow() {
  171. return win.performance && win.performance.now
  172. ? win.performance.now()
  173. - : Date.now(); // eslint-disable-line mozilla/avoid-Date-timing
  174. + : performance.now(); // eslint-disable-line mozilla/avoid-Date-timing
  175. }
  176.  
  177. var isWindow = target.self === target;
  178.  
  179. var getPos = isWindow
  180. ? function() {
  181. return target.pageYOffset;
  182. }
  183. diff --git a/testing/talos/talos/startup_test/sessionrestore/addon/api.js b/testing/talos/talos/startup_test/sessionrestore/addon/api.js
  184. --- a/testing/talos/talos/startup_test/sessionrestore/addon/api.js
  185. +++ b/testing/talos/talos/startup_test/sessionrestore/addon/api.js
  186. @@ -123,17 +123,17 @@ this.sessionrestore = class extends Exte
  187. : startup_info.sessionRestored;
  188. let duration = restoreTime - startup_info.process;
  189.  
  190. // Report data to Talos, if possible.
  191. dump("__start_report" + duration + "__end_report\n\n");
  192.  
  193. // Next one is required by the test harness but not used.
  194. // eslint-disable-next-line mozilla/avoid-Date-timing
  195. - dump("__startTimestamp" + Date.now() + "__endTimestamp\n\n");
  196. + dump("__startTimestamp" + performance.now() + "__endTimestamp\n\n");
  197. } catch (ex) {
  198. dump(`SessionRestoreTalosTest: error ${ex}\n`);
  199. dump(ex.stack);
  200. dump("\n");
  201. }
  202.  
  203. Services.startup.quit(Services.startup.eForceQuit);
  204. }
  205. diff --git a/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js b/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js
  206. --- a/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js
  207. +++ b/testing/talos/talos/startup_test/startup_about_home_paint/addon/api.js
  208. @@ -52,17 +52,17 @@ this.startup_about_home_paint = class ex
  209. await this.wait(1000);
  210. ChromeUtils.idleDispatch(() => {
  211. this.checkForTelemetry();
  212. });
  213. } else {
  214. // Got our measurement.
  215. dump("__start_report" + measurement + "__end_report\n\n");
  216. // eslint-disable-next-line mozilla/avoid-Date-timing
  217. - dump("__startTimestamp" + Date.now() + "__endTimestamp\n");
  218. + dump("__startTimestamp" + performance.now() + "__endTimestamp\n");
  219.  
  220. let env = Cc["@mozilla.org/process/environment;1"].getService(
  221. Ci.nsIEnvironment
  222. );
  223.  
  224. if (env.exists("TPPROFILINGINFO")) {
  225. let profilingInfo = env.get("TPPROFILINGINFO");
  226. if (profilingInfo !== null) {
  227. diff --git a/testing/talos/talos/startup_test/tspaint_test.html b/testing/talos/talos/startup_test/tspaint_test.html
  228. --- a/testing/talos/talos/startup_test/tspaint_test.html
  229. +++ b/testing/talos/talos/startup_test/tspaint_test.html
  230. @@ -44,17 +44,17 @@ function failed() {
  231.  
  232. function dumpConsoleAndQuit() {
  233. TalosPowersContent.dumpConsole();
  234.  
  235. // Close window asynchronously, there might still be startup operations that still need to run
  236. window.setTimeout(function() {
  237. if (window.dump) {
  238. // eslint-disable-next-line mozilla/avoid-Date-timing
  239. - dump("__startTimestamp" + Date.now() + "__endTimestamp\n");
  240. + dump("__startTimestamp" + performance.now() + "__endTimestamp\n");
  241. }
  242. TalosPowersContent.goQuitApplication();
  243. }, 0);
  244. }
  245.  
  246. window.addEventListener("MozAfterPaint", painted, true);
  247. setTimeout(failed, 5000);
  248.  
  249. diff --git a/testing/talos/talos/talos-powers/chrome/talos-powers-content.js b/testing/talos/talos/talos-powers/chrome/talos-powers-content.js
  250. --- a/testing/talos/talos/talos-powers/chrome/talos-powers-content.js
  251. +++ b/testing/talos/talos/talos-powers/chrome/talos-powers-content.js
  252. @@ -162,17 +162,17 @@ addEventListener(
  253. throw new Error(
  254. "TalosPowers:ParentExec may only be used with local content"
  255. );
  256. }
  257. let uniqueMessageId =
  258. "TalosPowers:ParentExec:" +
  259. content.document.documentURI +
  260. // eslint-disable-next-line mozilla/avoid-Date-timing
  261. - Date.now() +
  262. + performance.now() +
  263. Math.random();
  264.  
  265. // Listener for the reply from the parent process
  266. addMessageListener("TalosPowers:ParentExec:ReplyMsg", function done(reply) {
  267. if (reply.data.id != uniqueMessageId) {
  268. return;
  269. }
  270.  
  271. diff --git a/testing/talos/talos/tests/a11y/dhtml.html b/testing/talos/talos/tests/a11y/dhtml.html
  272. --- a/testing/talos/talos/tests/a11y/dhtml.html
  273. +++ b/testing/talos/talos/tests/a11y/dhtml.html
  274. @@ -13,17 +13,17 @@
  275. if (!initAccessibility()) {
  276. dump("__FAILinit:AccessibilityUnvailable__FAIL");
  277. return;
  278. }
  279.  
  280. TalosContentProfiler.resume("dhtml test start", true).then(() => {
  281. var container = document.getElementById("container");
  282. var lastchild = document.getElementById("lastchild");
  283. - var start = new Date(); // eslint-disable-line mozilla/avoid-Date-timing
  284. + var start = performance.now(); // eslint-disable-line mozilla/avoid-Date-timing
  285. var i, div;
  286. for (i = 0; i < 2000; i++) {
  287. div = document.createElement("div");
  288. div.innerHTML = "<input type='text' value='a bc def g hijkl mn op qrs'/>";
  289. container.insertBefore(div, lastchild);
  290. }
  291. for (i = 0; i < 2000; i++) {
  292. div = document.createElement("div");
  293. @@ -40,17 +40,17 @@
  294. }
  295. document.documentElement.offsetLeft; // flush layout
  296. setTimeout(postProcessingRecord, 0, start);
  297. });
  298. }
  299.  
  300. function postProcessingRecord(s) {
  301. // alert(new Date() - s);
  302. - let delta = new Date() - s; // eslint-disable-line mozilla/avoid-Date-timing
  303. + let delta = performance.now() - s; // eslint-disable-line mozilla/avoid-Date-timing
  304. TalosContentProfiler.pause("dhtml test finish", true).then(() => {
  305. tpRecordTime(delta, s);
  306. });
  307. }
  308. </script>
  309. </head>
  310. <body onload="doInsertion();">
  311. <div id="container" role="application"><div id="lastchild"></div></div>
  312. diff --git a/testing/talos/talos/tests/a11y/tablemutation.html b/testing/talos/talos/tests/a11y/tablemutation.html
  313. --- a/testing/talos/talos/tests/a11y/tablemutation.html
  314. +++ b/testing/talos/talos/tests/a11y/tablemutation.html
  315. @@ -113,28 +113,28 @@ function mutateTable() {
  316. if (!initAccessibility()) {
  317. dump("__FAILinit:AccessibilityUnvailable__FAIL");
  318. return;
  319. }
  320.  
  321. ensureAccessibleTreeForId("start");
  322.  
  323. TalosContentProfiler.resume("tablemutation start", true).then(() => {
  324. - var start = new Date(); // eslint-disable-line mozilla/avoid-Date-timing
  325. + var start = performance.now(); // eslint-disable-line mozilla/avoid-Date-timing
  326.  
  327. // Cause all kinds of crazy events
  328. Range.deleteContents();
  329. Range.insertNode(Fragment);
  330.  
  331. document.documentElement.offsetLeft; // flush layout
  332.  
  333. setTimeout(postProcessingRecord, 0, start);
  334. });
  335. }
  336.  
  337. function postProcessingRecord(s) {
  338. // alert(new Date() - s);
  339. - let delta = new Date() - s; // eslint-disable-line mozilla/avoid-Date-timing
  340. + let delta = performance.now() - s; // eslint-disable-line mozilla/avoid-Date-timing
  341. TalosContentProfiler.pause("tablemutation finish", true).then(() => {
  342. tpRecordTime(delta, s);
  343. });
  344. }
  345. </script>
  346. diff --git a/testing/talos/talos/tests/scroll/scroll.manifest.develop b/testing/talos/talos/tests/scroll/scroll.manifest.develop
  347. new file mode 100644
  348. --- /dev/null
  349. +++ b/testing/talos/talos/tests/scroll/scroll.manifest.develop
  350. @@ -0,0 +1,6 @@
  351. +% http://127.0.0.1:52555/tests/scroll/tiled.html
  352. +% http://127.0.0.1:52555/tests/scroll/tiled-fixed.html
  353. +% http://127.0.0.1:52555/tests/scroll/tiled-downscale.html
  354. +% http://127.0.0.1:52555/tests/scroll/tiled-fixed-downscale.html
  355. +% http://127.0.0.1:52555/tests/scroll/iframe.svg
  356. +% http://127.0.0.1:52555/tests/scroll/reader.htm
  357. diff --git a/testing/talos/talos/tests/svg_opacity/svg_opacity.manifest.develop b/testing/talos/talos/tests/svg_opacity/svg_opacity.manifest.develop
  358. new file mode 100644
  359. --- /dev/null
  360. +++ b/testing/talos/talos/tests/svg_opacity/svg_opacity.manifest.develop
  361. @@ -0,0 +1,4 @@
  362. +# opacity tests
  363. +
  364. +http://127.0.0.1:52555/tests/svg_opacity/big-optimizable-group-opacity-2500.svg
  365. +http://127.0.0.1:52555/tests/svg_opacity/small-group-opacity-2500.svg
  366. diff --git a/testing/talos/talos/tests/svg_static/svg_static.manifest.develop b/testing/talos/talos/tests/svg_static/svg_static.manifest.develop
  367. new file mode 100644
  368. --- /dev/null
  369. +++ b/testing/talos/talos/tests/svg_static/svg_static.manifest.develop
  370. @@ -0,0 +1,8 @@
  371. +# gearflowers image
  372. +http://127.0.0.1:52555/tests/svg_static/gearflowers.svg
  373. +
  374. +# some generic image compositing tests
  375. +http://127.0.0.1:52555/tests/svg_static/composite-scale.svg
  376. +http://127.0.0.1:52555/tests/svg_static/composite-scale-opacity.svg
  377. +http://127.0.0.1:52555/tests/svg_static/composite-scale-rotate.svg
  378. +http://127.0.0.1:52555/tests/svg_static/composite-scale-rotate-opacity.svg
  379. diff --git a/testing/talos/talos/tests/svgx/svgx.manifest.develop b/testing/talos/talos/tests/svgx/svgx.manifest.develop
  380. new file mode 100644
  381. --- /dev/null
  382. +++ b/testing/talos/talos/tests/svgx/svgx.manifest.develop
  383. @@ -0,0 +1,14 @@
  384. +# Painting multiple complex paths
  385. +% http://127.0.0.1:52555/tests/svgx/hixie-001.xml
  386. +# Painting multiple complex paths with transparency
  387. +% http://127.0.0.1:52555/tests/svgx/hixie-002.xml
  388. +# Painting text
  389. +% http://127.0.0.1:52555/tests/svgx/hixie-003.xml
  390. +# Painting images
  391. +% http://127.0.0.1:52555/tests/svgx/hixie-004.xml
  392. +# Painting linear gradients
  393. +% http://127.0.0.1:52555/tests/svgx/hixie-005.xml
  394. +# Painting radial gradients
  395. +% http://127.0.0.1:52555/tests/svgx/hixie-006.xml
  396. +# World Map
  397. +% http://127.0.0.1:52555/tests/svgx/hixie-007.xml
  398. \ No newline at end of file
  399. diff --git a/testing/talos/talos/tests/tabpaint/api.js b/testing/talos/talos/tests/tabpaint/api.js
  400. --- a/testing/talos/talos/tests/tabpaint/api.js
  401. +++ b/testing/talos/talos/tests/tabpaint/api.js
  402. @@ -126,17 +126,17 @@ this.tabpaint = class extends ExtensionA
  403. * @return Promise
  404. * Resolves once the tab has been fully removed. Resolves
  405. * with the time (in ms) it took to open the tab from the parent.
  406. */
  407. async openTabFromParent(gBrowser, target) {
  408. TalosParentProfiler.resume("tabpaint parent start");
  409.  
  410. // eslint-disable-next-line mozilla/avoid-Date-timing
  411. - gBrowser.selectedTab = gBrowser.addTab(`${target}?${Date.now()}`, {
  412. + gBrowser.selectedTab = gBrowser.addTab(`${target}?${performance.now()}`, {
  413. triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
  414. });
  415.  
  416. let { tab, delta } = await this.whenTabShown();
  417. TalosParentProfiler.pause("tabpaint parent end");
  418. await this.removeTab(tab);
  419. return delta;
  420. }
  421. diff --git a/testing/talos/talos/tests/tabpaint/tabpaint.html b/testing/talos/talos/tests/tabpaint/tabpaint.html
  422. --- a/testing/talos/talos/tests/tabpaint/tabpaint.html
  423. +++ b/testing/talos/talos/tests/tabpaint/tabpaint.html
  424. @@ -10,17 +10,17 @@ function init() {
  425. window.addEventListener("TabPaint:FinalResults", (event) => {
  426. let { fromParent, fromContent } = event.detail;
  427.  
  428. tpRecordTime([fromParent, fromContent].join(","), 0, "tabpaint-from-parent, tabpaint-from-content");
  429. }, {once: true});
  430.  
  431. window.addEventListener("TabPaint:OpenFromContent", (event) => {
  432. let target = document.getElementById("target");
  433. - let now = Date.now(); // eslint-disable-line mozilla/avoid-Date-timing
  434. + let now = performance.now(); // eslint-disable-line mozilla/avoid-Date-timing
  435.  
  436. target.href = `${targetURL.href}?${now}`;
  437. target.click();
  438. });
  439.  
  440. async function tryPing() {
  441. let pingPromise = new Promise(resolve => {
  442. window.addEventListener("TabPaint:Pong", resolve, {once: true});
  443. diff --git a/testing/talos/talos/tests/tabpaint/tabpaint.manifest.develop b/testing/talos/talos/tests/tabpaint/tabpaint.manifest.develop
  444. new file mode 100644
  445. --- /dev/null
  446. +++ b/testing/talos/talos/tests/tabpaint/tabpaint.manifest.develop
  447. @@ -0,0 +1,2 @@
  448. +% http://127.0.0.1:52892/tests/tabpaint/tabpaint.html
  449. +
  450. diff --git a/testing/talos/talos/tests/tart/addon/content/framescript.js b/testing/talos/talos/tests/tart/addon/content/framescript.js
  451. --- a/testing/talos/talos/tests/tart/addon/content/framescript.js
  452. +++ b/testing/talos/talos/tests/tart/addon/content/framescript.js
  453. @@ -26,17 +26,20 @@
  454.  
  455. if (e.detail.command.name == "ping") {
  456. dispatchReply();
  457. return;
  458. }
  459.  
  460. var uniqueMessageId =
  461. // eslint-disable-next-line mozilla/avoid-Date-timing
  462. - TART_PREFIX + content.document.documentURI + Date.now() + Math.random();
  463. + TART_PREFIX +
  464. + content.document.documentURI +
  465. + performance.now() +
  466. + Math.random();
  467.  
  468. addMessageListener(TART_PREFIX + "chrome-exec-reply", function done(
  469. reply
  470. ) {
  471. if (reply.data.id == uniqueMessageId) {
  472. removeMessageListener(TART_PREFIX + "chrome-exec-reply", done);
  473. dispatchReply(reply.data.result);
  474. }
  475. diff --git a/testing/talos/talos/tests/tart/tart.manifest.develop b/testing/talos/talos/tests/tart/tart.manifest.develop
  476. new file mode 100644
  477. --- /dev/null
  478. +++ b/testing/talos/talos/tests/tart/tart.manifest.develop
  479. @@ -0,0 +1,1 @@
  480. +% http://127.0.0.1:52555/tests/tart/tart.html#auto
  481. diff --git a/testing/talos/talos/tests/tresize/addon/content/framescript.js b/testing/talos/talos/tests/tresize/addon/content/framescript.js
  482. --- a/testing/talos/talos/tests/tresize/addon/content/framescript.js
  483. +++ b/testing/talos/talos/tests/tresize/addon/content/framescript.js
  484. @@ -3,17 +3,17 @@
  485.  
  486. addEventListener(
  487. TRESIZE_PREFIX + "chrome-run-event",
  488. function(e) {
  489. var uniqueMessageId =
  490. TRESIZE_PREFIX +
  491. content.document.documentURI +
  492. // eslint-disable-next-line mozilla/avoid-Date-timing
  493. - Date.now() +
  494. + performance.now() +
  495. Math.random();
  496.  
  497. addMessageListener(TRESIZE_PREFIX + "chrome-run-reply", function done(
  498. reply
  499. ) {
  500. if (reply.data.id == uniqueMessageId) {
  501. removeMessageListener(TRESIZE_PREFIX + "chrome-run-reply", done);
  502. content.wrappedJSObject.tpRecordTime(reply.data.result.average);
Add Comment
Please, Sign In to add comment