From 15531ee283dc1a84bb4c815ea34f782cc8de86d7 Mon Sep 17 00:00:00 2001 From: Masatoshi Kimura Date: Wed, 8 Jan 2020 23:10:06 +0000 Subject: [PATCH] Bug 1603670 - Remove scripts/Profiler.js and enablePrivilege usage in Profiler.js. r=perftest-reviewers,rwood Differential Revision: https://phabricator.services.mozilla.com/D57241 --HG-- extra : moz-landing-system : lando --- .../talos/talos/pageloader/chrome/Profiler.js | 9 - testing/talos/talos/scripts/Profiler.js | 156 ------------------ .../tests/tart/addon/content/Profiler.js | 9 - .../tests/tresize/addon/content/Profiler.js | 9 - 4 files changed, 183 deletions(-) delete mode 100644 testing/talos/talos/scripts/Profiler.js diff --git a/testing/talos/talos/pageloader/chrome/Profiler.js b/testing/talos/talos/pageloader/chrome/Profiler.js index 29225f37da4f..6f4549ba00ed 100644 --- a/testing/talos/talos/pageloader/chrome/Profiler.js +++ b/testing/talos/talos/pageloader/chrome/Profiler.js @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // - NOTE: This file is duplicated verbatim at: -// - talos/scripts/Profiler.js // - talos/pageloader/chrome/Profiler.js // - talos/tests/tart/addon/content/Profiler.js // - talos/startup_test/tresize/addon/content/Profiler.js @@ -34,14 +33,6 @@ var Profiler; // Profiling settings. var profiler_interval, profiler_entries, profiler_threadsArray, profiler_dir; - try { - // Outside of talos, this throws a security exception which no-op this file. - // (It's not required nor allowed for addons since Firefox 17) - // It's used inside talos from non-privileged pages (like during tscroll), - // and it works because talos disables all/most security measures. - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - } catch (e) {} - /* eslint-disable mozilla/use-chromeutils-import */ try { // eslint-disable-next-line mozilla/use-services diff --git a/testing/talos/talos/scripts/Profiler.js b/testing/talos/talos/scripts/Profiler.js deleted file mode 100644 index 2eb6fcc7b652..000000000000 --- a/testing/talos/talos/scripts/Profiler.js +++ /dev/null @@ -1,156 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// - NOTE: This file is duplicated verbatim at: -// - talos/scripts/Profiler.js -// - talos/pageloader/chrome/Profiler.js -// - talos/tests/tart/addon/content/Profiler.js -// - talos/startup_test/tresize/addon/content/Profiler.js -// -// - Please keep these copies in sync. -// - Please make sure your changes apply cleanly to all use cases. - -// Finer grained profiler control -// -// Use this object to pause and resume the profiler so that it only profiles the -// relevant parts of our tests. -var Profiler; - -(function() { - var _profiler; - - // If this script is loaded in a framescript context, there won't be a - // document object, so just use a fallback value in that case. - var test_name = this.document ? this.document.location.pathname : "unknown"; - - // Whether Profiler has been initialized. Until that happens, most calls - // will be ignored. - var enabled = false; - - // The subtest name that beginTest() was called with. - var currentTest = ""; - - // Profiling settings. - var profiler_interval, profiler_entries, profiler_threadsArray, profiler_dir; - - try { - // Outside of talos, this throws a security exception which no-op this file. - // (It's not required nor allowed for addons since Firefox 17) - // It's used inside talos from non-privileged pages (like during tscroll), - // and it works because talos disables all/most security measures. - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - } catch (e) {} - - try { - // eslint-disable-next-line mozilla/use-services - _profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler); - } catch (ex) { - (typeof dumpLog == "undefined" ? dump : dumpLog)(ex + "\n"); - } - - // Parses an url query string into a JS object. - function searchToObject(locationSearch) { - var pairs = locationSearch.substring(1).split("&"); - var result = {}; - - for (var i in pairs) { - if (pairs[i] !== "") { - var pair = pairs[i].split("="); - result[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ""); - } - } - - return result; - } - - Profiler = { - /** - * Initialize the profiler using profiler settings supplied in a JS object. - * The following properties on the object are respected: - * - gecko_profile_interval - * - gecko_profile_entries - * - gecko_profile_threads - * - gecko_profile_dir - */ - initFromObject: function Profiler__initFromObject(obj) { - if ( - obj && - "gecko_profile_dir" in obj && - typeof obj.gecko_profile_dir == "string" && - "gecko_profile_interval" in obj && - Number.isFinite(obj.gecko_profile_interval * 1) && - "gecko_profile_entries" in obj && - Number.isFinite(obj.gecko_profile_entries * 1) && - "gecko_profile_threads" in obj && - typeof obj.gecko_profile_threads == "string" - ) { - profiler_interval = obj.gecko_profile_interval; - profiler_entries = obj.gecko_profile_entries; - profiler_threadsArray = obj.gecko_profile_threads.split(","); - profiler_dir = obj.gecko_profile_dir; - enabled = true; - } - }, - initFromURLQueryParams: function Profiler__initFromURLQueryParams( - locationSearch - ) { - this.initFromObject(searchToObject(locationSearch)); - }, - beginTest: function Profiler__beginTest(testName) { - currentTest = testName; - if (_profiler && enabled) { - _profiler.StartProfiler( - profiler_entries, - profiler_interval, - ["js", "leaf", "stackwalk", "threads"], - profiler_threadsArray - ); - if (_profiler.PauseSampling) { - _profiler.PauseSampling(); - } - } - }, - finishTest: function Profiler__finishTest() { - if (_profiler && enabled) { - _profiler.dumpProfileToFile( - profiler_dir + "/" + currentTest + ".profile" - ); - _profiler.StopProfiler(); - } - }, - finishStartupProfiling: function Profiler__finishStartupProfiling() { - if (_profiler && enabled) { - _profiler.dumpProfileToFile(profiler_dir + "/startup.profile"); - _profiler.StopProfiler(); - } - }, - resume: function Profiler__resume(name, explicit) { - if (_profiler) { - if (_profiler.ResumeSampling) { - _profiler.ResumeSampling(); - } - _profiler.AddMarker( - explicit ? name : 'Start of test "' + (name || test_name) + '"' - ); - } - }, - pause: function Profiler__pause(name, explicit) { - if (_profiler) { - if (_profiler.PauseSampling) { - _profiler.PauseSampling(); - } - _profiler.AddMarker( - explicit ? name : 'End of test "' + (name || test_name) + '"' - ); - } - }, - mark: function Profiler__mark(marker, explicit) { - if (_profiler) { - _profiler.AddMarker( - explicit ? marker : 'Profiler: "' + (marker || test_name) + '"' - ); - } - }, - }; -})(); diff --git a/testing/talos/talos/tests/tart/addon/content/Profiler.js b/testing/talos/talos/tests/tart/addon/content/Profiler.js index 2eb6fcc7b652..6809246c0c88 100644 --- a/testing/talos/talos/tests/tart/addon/content/Profiler.js +++ b/testing/talos/talos/tests/tart/addon/content/Profiler.js @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // - NOTE: This file is duplicated verbatim at: -// - talos/scripts/Profiler.js // - talos/pageloader/chrome/Profiler.js // - talos/tests/tart/addon/content/Profiler.js // - talos/startup_test/tresize/addon/content/Profiler.js @@ -34,14 +33,6 @@ var Profiler; // Profiling settings. var profiler_interval, profiler_entries, profiler_threadsArray, profiler_dir; - try { - // Outside of talos, this throws a security exception which no-op this file. - // (It's not required nor allowed for addons since Firefox 17) - // It's used inside talos from non-privileged pages (like during tscroll), - // and it works because talos disables all/most security measures. - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - } catch (e) {} - try { // eslint-disable-next-line mozilla/use-services _profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler); diff --git a/testing/talos/talos/tests/tresize/addon/content/Profiler.js b/testing/talos/talos/tests/tresize/addon/content/Profiler.js index 2eb6fcc7b652..6809246c0c88 100644 --- a/testing/talos/talos/tests/tresize/addon/content/Profiler.js +++ b/testing/talos/talos/tests/tresize/addon/content/Profiler.js @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // - NOTE: This file is duplicated verbatim at: -// - talos/scripts/Profiler.js // - talos/pageloader/chrome/Profiler.js // - talos/tests/tart/addon/content/Profiler.js // - talos/startup_test/tresize/addon/content/Profiler.js @@ -34,14 +33,6 @@ var Profiler; // Profiling settings. var profiler_interval, profiler_entries, profiler_threadsArray, profiler_dir; - try { - // Outside of talos, this throws a security exception which no-op this file. - // (It's not required nor allowed for addons since Firefox 17) - // It's used inside talos from non-privileged pages (like during tscroll), - // and it works because talos disables all/most security measures. - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - } catch (e) {} - try { // eslint-disable-next-line mozilla/use-services _profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);