Bug 1525358 - Rename perf.html to profiler.firefox.com; r=julienw
authorGreg Tatum <gtatum@mozilla.com>
Thu, 21 Feb 2019 23:16:40 +0000
changeset 518444 baecf588657c296a5dbe1484e6029d77afff25c5
parent 518399 f17b109fc6acc85d91cbac9b566b696d26052cd9
child 518445 d4004105a04ad9a473930acb9c6a05d90cd9f028
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjulienw
bugs1525358
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1525358 - Rename perf.html to profiler.firefox.com; r=julienw Differential Revision: https://phabricator.services.mozilla.com/D18728
devtools/client/performance-new/browser.js
devtools/client/performance-new/components/Description.js
devtools/client/performance-new/frame-script.js
devtools/client/preferences/devtools-client.js
devtools/client/webconsole/test/chrome/test_render_perf.html
devtools/docs/contributing/performance.md
devtools/docs/tests/writing-perf-tests.md
js/src/gc/Statistics.cpp
js/src/util/StructuredSpewer.h
testing/raptor/raptor/cmdline.py
testing/raptor/raptor/raptor.py
testing/raptor/raptor/utils.py
testing/talos/talos/cmdline.py
testing/talos/talos/run_tests.py
testing/talos/talos/tests/devtools/addon/content/damp.js
testing/tools/view_gecko_profile/view_gecko_profile.py
--- a/devtools/client/performance-new/browser.js
+++ b/devtools/client/performance-new/browser.js
@@ -3,37 +3,37 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 const Services = require("Services");
 
 const TRANSFER_EVENT = "devtools:perf-html-transfer-profile";
 const SYMBOL_TABLE_REQUEST_EVENT = "devtools:perf-html-request-symbol-table";
 const SYMBOL_TABLE_RESPONSE_EVENT = "devtools:perf-html-reply-symbol-table";
 const UI_BASE_URL_PREF = "devtools.performance.recording.ui-base-url";
-const UI_BASE_URL_DEFAULT = "https://perf-html.io";
+const UI_BASE_URL_DEFAULT = "https://profiler.firefox.com";
 const OBJDIRS_PREF = "devtools.performance.recording.objdirs";
 
 /**
  * This file contains all of the privileged browser-specific functionality. This helps
  * keep a clear separation between the privileged and non-privileged client code. It
  * is also helpful in being able to mock out browser behavior for tests, without
  * worrying about polluting the browser environment.
  */
 
 /**
- * Once a profile is received from the actor, it needs to be opened up in perf.html
- * to be analyzed. This function opens up perf.html into a new browser tab, and injects
- * the profile via a frame script.
+ * Once a profile is received from the actor, it needs to be opened up in
+ * profiler.firefox.com to be analyzed. This function opens up profiler.firefox.com
+ * into a new browser tab, and injects the profile via a frame script.
  *
  * @param {object} profile - The Gecko profile.
  * @param {function} getSymbolTableCallback - A callback function with the signature
  *   (debugName, breakpadId) => Promise<SymbolTableAsTuple>, which will be invoked
- *   when perf-html.io sends SYMBOL_TABLE_REQUEST_EVENT messages to us. This function
- *   should obtain a symbol table for the requested binary and resolve the returned
- *   promise with it.
+ *   when profiler.firefox.com sends SYMBOL_TABLE_REQUEST_EVENT messages to us. This
+ *   function should obtain a symbol table for the requested binary and resolve the
+ *   returned promise with it.
  */
 function receiveProfile(profile, getSymbolTableCallback) {
   // Find the most recently used window, as the DevTools client could be in a variety
   // of hosts.
   const win = Services.wm.getMostRecentWindow("navigator:browser");
   if (!win) {
     throw new Error("No browser window");
   }
--- a/devtools/client/performance-new/components/Description.js
+++ b/devtools/client/performance-new/components/Description.js
@@ -43,26 +43,26 @@ class Description extends PureComponent 
   render() {
     return div(
       { className: "perf-description" },
       p(null,
         "This new recording panel is a bit different from the existing " +
           "performance panel. It records the entire browser, and then opens up " +
           "and shares the profile with ",
         this.renderLink(
-          "https://perf-html.io",
-          "perf-html.io"
+          "https://profiler.firefox.com",
+          "profiler.firefox.com"
         ),
         ", a Mozilla performance analysis tool."
       ),
       p(null,
         "This is still a prototype. Join along or file bugs at: ",
         this.renderLink(
-          "https://github.com/firefox-devtools/perf.html",
-          "github.com/firefox-devtools/perf.html"
+          "https://github.com/firefox-devtools/profiler",
+          "github.com/firefox-devtools/profiler"
         ),
         "."
       )
     );
   }
 }
 
 module.exports = Description;
--- a/devtools/client/performance-new/frame-script.js
+++ b/devtools/client/performance-new/frame-script.js
@@ -1,16 +1,16 @@
 /* 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/. */
 "use strict";
 /* global addMessageListener, addEventListener, content, sendAsyncMessage */
 
 /**
- * This frame script injects itself into perf-html.io and injects the profile
+ * This frame script injects itself into profiler.firefox.com and injects the profile
  * into the page. It is mostly taken from the Gecko Profiler Addon implementation.
  */
 
 const TRANSFER_EVENT = "devtools:perf-html-transfer-profile";
 const SYMBOL_TABLE_REQUEST_EVENT = "devtools:perf-html-request-symbol-table";
 const SYMBOL_TABLE_RESPONSE_EVENT = "devtools:perf-html-reply-symbol-table";
 
 let gProfile = null;
--- a/devtools/client/preferences/devtools-client.js
+++ b/devtools/client/preferences/devtools-client.js
@@ -134,21 +134,21 @@ pref("devtools.performance.ui.enable-mem
 // Enable experimental options in the UI only in Nightly
 #if defined(NIGHTLY_BUILD)
 pref("devtools.performance.ui.experimental", true);
 #else
 pref("devtools.performance.ui.experimental", false);
 #endif
 
 // Preferences for the new performance panel
-// This pref configures the base URL for the perf.html instance to use. This is
-// useful so that a developer can change it while working on perf.html, or in
+// This pref configures the base URL for the profiler.firefox.com instance to use. This is
+// useful so that a developer can change it while working on profiler.firefox.com, or in
 // tests.
 // This isn't exposed directly to the user.
-pref("devtools.performance.recording.ui-base-url", "https://perf-html.io");
+pref("devtools.performance.recording.ui-base-url", "https://profiler.firefox.com");
 
 // A JSON array of strings, where each string is a file path to an objdir on
 // the host machine. This is used in order to look up symbol information from
 // build artifacts of local builds.
 pref("devtools.performance.recording.objdirs", "[]");
 
 // The default cache UI setting
 pref("devtools.cache.disabled", false);
--- a/devtools/client/webconsole/test/chrome/test_render_perf.html
+++ b/devtools/client/webconsole/test/chrome/test_render_perf.html
@@ -12,17 +12,18 @@
 <p>Test for render perf</p>
 <div id="output"></div>
 
 <script type="text/javascript">
 "use strict";
 
 // To analyze the profile results:
 // > ./mach mochitest test_render_perf.html
-// Then open https://perf-html.io and drag the json file printed at the end of this test
+// Then open https://profiler.firefox.com and drag the json file printed at the end of
+// this test
 
 const NUM_MESSAGES = 4000;
 const NUM_STREAMING = 100;
 const {FileUtils} = ChromeUtils.import("resource://gre/modules/FileUtils.jsm");
 const Services = browserRequire("Services");
 Services.prefs.setIntPref("devtools.hud.loglimit", NUM_MESSAGES);
 const WebConsoleWrapper = browserRequire("devtools/client/webconsole/webconsole-wrapper");
 const actions =
@@ -173,17 +174,17 @@ window.onload = async function() {
     document.getElementById("output"),
     {hud: EventEmitter.decorate({proxy: {}}), focus: () => {}},
     {},
     null,
     document,
   );
   wrapper.init();
 
-  // From https://github.com/firefox-devtools/perf.html/blob/b73eb73df04c7df51464fa50eeadef3dc7f5d4e2/docs/gecko-profile-format.md#L21
+  // From https://github.com/firefox-devtools/profiler/blob/b73eb73df04c7df51464fa50eeadef3dc7f5d4e2/docs/gecko-profile-format.md#L21
   const settings = {
     entries: 100000000,
     interval: 1,
     features: ["js"],
     threads: ["GeckoMain"],
   };
   Services.profiler.StartProfiler(
     settings.entries,
@@ -220,17 +221,17 @@ window.onload = async function() {
 
   info(`
 
 SAVING PROFILE: ${file.path}
 
 To upload the profile, run the following commands:
 
   gzip ${file.path}
-  curl 'https://profile-store.appspot.com/compressed-store' --compressed --data-binary @${file.path}.gz | awk '{print "Hosted at: https://perf-html.io/public/"$1}'
+  curl 'https://profile-store.appspot.com/compressed-store' --compressed --data-binary @${file.path}.gz | awk '{print "Hosted at: https://profiler.firefox.com/public/"$1}'
 
 
 `);
 
   SimpleTest.finish();
 };
 </script>
 </body>
--- a/devtools/docs/contributing/performance.md
+++ b/devtools/docs/contributing/performance.md
@@ -87,20 +87,20 @@ The Performance API also allows recordin
 window.performance.mark("my-function-start");
 
 // Run the code you want to measure
 
 // Once it is done, do:
 window.performance.measure("my-function", "my-function-start");
 ```
 
-This marker will appear in the `Marker Chart` section in perf-html, in the `UserTiming` lines:
+This marker will appear in the `Marker Chart` section in [profiler.firefox.com](https://profiler.firefox.com), in the `UserTiming` lines:
   ![custom markers](performance/profiler-custom-markers.png)
 
-You can double click on it to make perf-html display the record during this precise moment in time,
+You can double click on it to make [profiler.firefox.com](https://profiler.firefox.com) display the record during this precise moment in time,
 and the call tree will only display what was executed during this measurement.
 
 ### Prototype quickly
 
 Sometimes the best way to find what is slow is to comment blocks of code out
 and uncomment them one by one until you identify the culprit. And then focus on it.
 
 There are few things worse than spending a long time refactoring the piece of code that was not slow to begin with!
--- a/devtools/docs/tests/writing-perf-tests.md
+++ b/devtools/docs/tests/writing-perf-tests.md
@@ -89,17 +89,18 @@ There is a `runTest` helper method that 
 // Calling `runTest` will immediately start recording your action duration.
 // You can execute any necessary setup action you don't want to record before calling it.
 let test = this.runTest("my.test.name"); // `runTest` expects the test name as argument
 
 // <== Do an action you want to record here
 
 // Once your action is completed, call `runTest` returned object's `done` method.
 // It will automatically record the action duration and appear in PerfHerder as a new subtest.
-// It also creates markers in the profiler so that you can better inspect this action in perf-html.
+// It also creates markers in the profiler so that you can better inspect this action in
+// profiler.firefox.com.
 test.done();
 ```
 
 So for our click example it would be:
 ```
 async inspector() {
   await this.testSetup(url);
   let toolbox = await this.openToolboxAndLog(label + ".inspector", "inspector");
@@ -140,17 +141,17 @@ Also, you can record a profile while run
 ```
 `--geckoProfiler` enables the profiler
 `--geckoProfileEntries` defines the profiler buffer size, which needs to be large while recording performance tests
 
 Once it is done executing, the profile lives in a zip file you have to uncompress like this:
 ```
 unzip testing/mozharness/build/blobber_upload_dir/profile_damp.zip
 ```
-Then you have to open [https://perf-html.io/](https://perf-html.io/) and manually load the profile file that lives here: `profile_damp/page_0_pagecycle_1/cycle_0.profile`
+Then you have to open [https://profiler.firefox.com/](https://profiler.firefox.com/) and manually load the profile file that lives here: `profile_damp/page_0_pagecycle_1/cycle_0.profile`
 
 ## How to write a good performance test?
 
 ### Verify that you wait for all asynchronous code
 
 If your test involves asynchronous code, which is very likely given the DevTools codebase, please review carefully your test script.
 You should ensure that _any_ code ran directly or indirectly by your test is completed.
 You should not only wait for the functions related to the very precise feature you are trying to measure.
--- a/js/src/gc/Statistics.cpp
+++ b/js/src/gc/Statistics.cpp
@@ -580,18 +580,18 @@ void Statistics::writeLogMessage(const c
   va_end(args);
 }
 #endif
 
 UniqueChars Statistics::renderJsonMessage(uint64_t timestamp,
                                           Statistics::JSONUse use) const {
   /*
    * The format of the JSON message is specified by the GCMajorMarkerPayload
-   * type in perf.html
-   * https://github.com/devtools-html/perf.html/blob/master/src/types/markers.js#L62
+   * type in profiler.firefox.com
+   * https://github.com/firefox-devtools/profiler/blob/master/src/types/markers.js#L62
    *
    * All the properties listed here are created within the timings property
    * of the GCMajor marker.
    */
   if (aborted) {
     return DuplicateString("{status:\"aborted\"}");  // May return nullptr
   }
 
@@ -627,30 +627,30 @@ void Statistics::formatJsonDescription(u
   // If you change JSON properties here, please update:
   // Telemetry ping code:
   //   toolkit/components/telemetry/other/GCTelemetry.jsm
   // Telemetry documentation:
   //   toolkit/components/telemetry/docs/data/main-ping.rst
   // Telemetry tests:
   //   toolkit/components/telemetry/tests/browser/browser_TelemetryGC.js,
   //   toolkit/components/telemetry/tests/unit/test_TelemetryGC.js
-  // Perf.html:
-  //   https://github.com/devtools-html/perf.html
+  // Firefox Profiler:
+  //   https://github.com/firefox-devtools/profiler
   //
   // Please also number each property to help correctly maintain the Telemetry
   // ping code
 
   json.property("timestamp", timestamp);  // # JSON Key #2
 
   TimeDuration total, longest;
   gcDuration(&total, &longest);
   json.property("max_pause", longest, JSONPrinter::MILLISECONDS);  // #3
   json.property("total_time", total, JSONPrinter::MILLISECONDS);   // #4
-  // We might be able to omit reason if perf.html was able to retrive it
-  // from the first slice.  But it doesn't do this yet.
+  // We might be able to omit reason if profiler.firefox.com was able to retrive
+  // it from the first slice.  But it doesn't do this yet.
   json.property("reason", ExplainGCReason(slices_[0].reason));      // #5
   json.property("zones_collected", zoneStats.collectedZoneCount);   // #6
   json.property("total_zones", zoneStats.zoneCount);                // #7
   json.property("total_compartments", zoneStats.compartmentCount);  // #8
   json.property("minor_gcs", getCount(COUNT_MINOR_GC));             // #9
   uint32_t storebufferOverflows = getCount(COUNT_STOREBUFFER_OVERFLOW);
   if (storebufferOverflows) {
     json.property("store_buffer_overflows", storebufferOverflows);  // #10
@@ -695,18 +695,18 @@ void Statistics::formatJsonSliceDescript
   // If you change JSON properties here, please update:
   // Telemetry ping code:
   //   toolkit/components/telemetry/other/GCTelemetry.jsm
   // Telemetry documentation:
   //   toolkit/components/telemetry/docs/data/main-ping.rst
   // Telemetry tests:
   //   toolkit/components/telemetry/tests/browser/browser_TelemetryGC.js,
   //   toolkit/components/telemetry/tests/unit/test_TelemetryGC.js
-  // Perf.html:
-  //   https://github.com/devtools-html/perf.html
+  // Firefox Profiler:
+  //   https://github.com/firefox-devtools/profiler
   //
   char budgetDescription[200];
   slice.budget.describe(budgetDescription, sizeof(budgetDescription) - 1);
   TimeStamp originTime = TimeStamp::ProcessCreation();
 
   json.property("slice", i);  // JSON Property #1
   json.property("pause", slice.duration(), JSONPrinter::MILLISECONDS);  // #2
   json.property("reason", ExplainGCReason(slice.reason));               // #3
--- a/js/src/util/StructuredSpewer.h
+++ b/js/src/util/StructuredSpewer.h
@@ -30,17 +30,18 @@
 //
 // This spewer design has two goals:
 //
 //   1. Provide a spew mechanism that has first-class support for slicing and
 //      dicing output. This means that filtering by script and channel should be
 //      the dominant output mechanism.
 //   2. Provide a simple powerful mechanism for getting information out of the
 //      compiler and into tools. I'm inspired by tools like CacheIR analyzer,
-//      IR Hydra, and the upcoming tracelogger integration into perf.html.
+//      IR Hydra, and the upcoming tracelogger integration into
+//      profiler.firefox.com.
 //
 // The spewer has four main control knobs, all currently set as
 // environment variables. All but the first are optional.
 //
 //   SPEW: Activates the spewer. The value provided is interpreted as a comma
 //         separated list that selects channels by name. Currently there's no
 //         mapping between internal and external names, so the channel names
 //         are exactly those described in STRUCTURED_CHANNEL_LIST below.
--- a/testing/raptor/raptor/cmdline.py
+++ b/testing/raptor/raptor/cmdline.py
@@ -67,19 +67,19 @@ def create_parser(mach_interface=False):
     add_arg('--geckoProfile', action="store_true", dest="gecko_profile",
             help=argparse.SUPPRESS)
     add_arg('--geckoProfileInterval', dest='gecko_profile_interval', type=float,
             help=argparse.SUPPRESS)
     add_arg('--geckoProfileEntries', dest="gecko_profile_entries", type=int,
             help=argparse.SUPPRESS)
     add_arg('--gecko-profile', action="store_true", dest="gecko_profile",
             help="Profile the run and output the results in $MOZ_UPLOAD_DIR. "
-            "After talos is finished, perf-html.io will be launched in Firefox so you "
-            "can analyze the local profiles. To disable auto-launching of perf-html.io "
-            "set the DISABLE_PROFILE_LAUNCH=1 env var.")
+            "After talos is finished, profiler.firefox.com will be launched in Firefox "
+            "so you can analyze the local profiles. To disable auto-launching of "
+            "profiler.firefox.com set the DISABLE_PROFILE_LAUNCH=1 env var.")
     add_arg('--gecko-profile-interval', dest='gecko_profile_interval', type=float,
             help="How frequently to take samples (milliseconds)")
     add_arg('--gecko-profile-entries', dest="gecko_profile_entries", type=int,
             help="How many samples to take with the profiler")
     add_arg('--symbolsPath', dest='symbols_path',
             help="Path to the symbols for the build we are testing")
     add_arg('--page-cycles', dest="page_cycles", type=int,
             help="How many times to repeat loading the test page (for page load tests); "
--- a/testing/raptor/raptor/raptor.py
+++ b/testing/raptor/raptor/raptor.py
@@ -718,18 +718,18 @@ def main(args=sys.argv[1:]):
     pages_that_timed_out = raptor.get_page_timeout_list()
     if len(pages_that_timed_out) > 0:
         for _page in pages_that_timed_out:
             LOG.critical("TEST-UNEXPECTED-FAIL: test '%s' timed out loading test page: %s"
                          % (_page['test_name'], _page['url']))
         os.sys.exit(1)
 
     # when running raptor locally with gecko profiling on, use the view-gecko-profile
-    # tool to automatically load the latest gecko profile in perf-html.io
+    # tool to automatically load the latest gecko profile in profiler.firefox.com
     if args.gecko_profile and args.run_local:
         if os.environ.get('DISABLE_PROFILE_LAUNCH', '0') == '1':
-            LOG.info("Not launching perf-html.io because DISABLE_PROFILE_LAUNCH=1")
+            LOG.info("Not launching profiler.firefox.com because DISABLE_PROFILE_LAUNCH=1")
         else:
             view_gecko_profile(args.binary)
 
 
 if __name__ == "__main__":
     main()
--- a/testing/raptor/raptor/utils.py
+++ b/testing/raptor/raptor/utils.py
@@ -109,29 +109,29 @@ def download_file_from_url(url, local_de
         LOG.info("file already exists at: %s" % local_dest)
         return True
     LOG.info("downloading: %s to %s" % (url, local_dest))
     _file, _headers = urllib.urlretrieve(url, local_dest)
     return os.path.exists(local_dest)
 
 
 def view_gecko_profile(ffox_bin):
-    # automatically load the latest talos gecko-profile archive in perf-html.io
+    # automatically load the latest talos gecko-profile archive in profiler.firefox.com
     LOG = get_default_logger(component='raptor-view-gecko-profile')
 
     if sys.platform.startswith('win') and not ffox_bin.endswith(".exe"):
         ffox_bin = ffox_bin + ".exe"
 
     if not os.path.exists(ffox_bin):
         LOG.info("unable to find Firefox bin, cannot launch view-gecko-profile")
         return
 
     profile_zip = os.environ.get('RAPTOR_LATEST_GECKO_PROFILE_ARCHIVE', None)
     if profile_zip is None or not os.path.exists(profile_zip):
-        LOG.info("No local talos gecko profiles were found so not launching perf-html.io")
+        LOG.info("No local talos gecko profiles were found so not launching profiler.firefox.com")
         return
 
     # need the view-gecko-profile tool, it's in repo/testing/tools
     repo_dir = os.environ.get('MOZ_DEVELOPER_REPO_DIR', None)
     if repo_dir is None:
         LOG.info("unable to find MOZ_DEVELOPER_REPO_DIR, can't launch view-gecko-profile")
         return
 
--- a/testing/talos/talos/cmdline.py
+++ b/testing/talos/talos/cmdline.py
@@ -91,19 +91,20 @@ def create_parser(mach_interface=False):
     add_arg('--geckoProfile', action="store_true", dest="gecko_profile",
             help=argparse.SUPPRESS)
     add_arg('--geckoProfileInterval', dest='gecko_profile_interval', type=float,
             help=argparse.SUPPRESS)
     add_arg('--geckoProfileEntries', dest="gecko_profile_entries", type=int,
             help=argparse.SUPPRESS)
     add_arg('--gecko-profile', action="store_true", dest="gecko_profile",
             help="Profile the run and output the results in $MOZ_UPLOAD_DIR. "
-                 "After talos is finished, perf-html.io will be launched in Firefox so you "
-                 "can analyze the local profiles. To disable auto-launching of perf-html.io "
-                 "set the DISABLE_PROFILE_LAUNCH=1 env var.")
+                 "After talos is finished, profiler.firefox.com will be launched in "
+                 "Firefox so you can analyze the local profiles. To disable "
+                 "auto-launching of profiler.firefox.com set the "
+                 "DISABLE_PROFILE_LAUNCH=1 env var.")
     add_arg('--gecko-profile-interval', dest='gecko_profile_interval', type=float,
             help="How frequently to take samples (ms)")
     add_arg('--gecko-profile-entries', dest="gecko_profile_entries", type=int,
             help="How many samples to take with the profiler")
     add_arg('--extension', dest='extensions', action='append',
             default=['${talos}/talos-powers'],
             help="Extension to install while running")
     add_arg('--fast', action='store_true',
--- a/testing/talos/talos/run_tests.py
+++ b/testing/talos/talos/run_tests.py
@@ -328,40 +328,40 @@ def run_tests(config, browser_config):
     # output results
     if results_urls and not browser_config['no_upload_results']:
         talos_results.output(results_urls)
         if browser_config['develop'] or config['gecko_profile']:
             print("Thanks for running Talos locally. Results are in %s"
                   % (results_urls['output_urls']))
 
     # when running talos locally with gecko profiling on, use the view-gecko-profile
-    # tool to automatically load the latest gecko profile in perf-html.io
+    # tool to automatically load the latest gecko profile in profiler.firefox.com
     if config['gecko_profile'] and browser_config['develop']:
         if os.environ.get('DISABLE_PROFILE_LAUNCH', '0') == '1':
-            LOG.info("Not launching perf-html.io because DISABLE_PROFILE_LAUNCH=1")
+            LOG.info("Not launching profiler.firefox.com because DISABLE_PROFILE_LAUNCH=1")
         else:
             view_gecko_profile(config['browser_path'])
 
     # we will stop running tests on a failed test, or we will return 0 for
     # green
     return 0
 
 
 def view_gecko_profile(ffox_bin):
-    # automatically load the latest talos gecko-profile archive in perf-html.io
+    # automatically load the latest talos gecko-profile archive in profiler.firefox.com
     if sys.platform.startswith('win') and not ffox_bin.endswith(".exe"):
         ffox_bin = ffox_bin + ".exe"
 
     if not os.path.exists(ffox_bin):
         LOG.info("unable to find Firefox bin, cannot launch view-gecko-profile")
         return
 
     profile_zip = os.environ.get('TALOS_LATEST_GECKO_PROFILE_ARCHIVE', None)
     if profile_zip is None or not os.path.exists(profile_zip):
-        LOG.info("No local talos gecko profiles were found so not launching perf-html.io")
+        LOG.info("No local talos gecko profiles were found so not launching profiler.firefox.com")
         return
 
     # need the view-gecko-profile tool, it's in repo/testing/tools
     repo_dir = os.environ.get('MOZ_DEVELOPER_REPO_DIR', None)
     if repo_dir is None:
         LOG.info("unable to find MOZ_DEVELOPER_REPO_DIR, can't launch view-gecko-profile")
         return
 
--- a/testing/talos/talos/tests/devtools/addon/content/damp.js
+++ b/testing/talos/talos/tests/devtools/addon/content/damp.js
@@ -107,28 +107,28 @@ Damp.prototype = {
       }
     }
 
     this.TalosParentProfiler = await getTalosParentProfiler();
   },
 
   /**
    * Helper to tell when a test start and when it is finished.
-   * It helps recording its duration, but also put markers for perf-html when profiling
-   * DAMP.
+   * It helps recording its duration, but also put markers for profiler.firefox.com
+   * when profiling DAMP.
    *
    * When this method is called, the test is considered to be starting immediately
    * When the test is over, the returned object's `done` method should be called.
    *
    * @param label String
    *        Test title, displayed everywhere in PerfHerder, DevTools Perf Dashboard, ...
    * @param record Boolean
    *        Optional, if passed false, the test won't be recorded. It won't appear in
-   *        PerfHerder. Instead we will record perf-html markers and only print the
-   *        timings on stdout.
+   *        PerfHerder. Instead we will record profiler.firefox.com markers and only
+   *        print the timings on stdout.
    *
    * @return object
    *         With a `done` method, to be called whenever the test is finished running
    *         and we should record its duration.
    */
   runTest(label, record = true) {
     if (DEBUG_ALLOCATIONS) {
       if (!this.allocationTracker) {
--- a/testing/tools/view_gecko_profile/view_gecko_profile.py
+++ b/testing/tools/view_gecko_profile/view_gecko_profile.py
@@ -27,17 +27,17 @@ here = os.path.abspath(os.path.dirname(_
 class ViewGeckoProfile(object):
     """Container class for ViewGeckoProfile"""
 
     def __init__(self, browser_binary, gecko_profile_zip):
         self.log = get_default_logger(component='view-gecko-profile')
         self.browser_bin = browser_binary
         self.gecko_profile_zip = gecko_profile_zip
         self.gecko_profile_dir = os.path.dirname(gecko_profile_zip)
-        self.perfhtmlio_url = "https://perf-html.io/from-url/"
+        self.perfhtmlio_url = "https://profiler.firefox.com/from-url/"
         self.httpd = None
         self.host = None
         self.port = None
 
         # Create the runner
         self.output_handler = OutputHandler()
         process_args = {
             'processOutputLine': [self.output_handler],
@@ -72,29 +72,29 @@ class ViewGeckoProfile(object):
     def setup_webserver(self, webserver):
         self.log.info("starting webserver on %r" % webserver)
         self.host, self.port = webserver.split(':')
 
         return server.WebTestHttpd(port=int(self.port), doc_root=self.gecko_profile_dir,
                             routes=[("GET", "*", handlers.file_handler)])
 
     def encode_url(self):
-        # Encode url i.e.: https://perf-html.io/from-url/http... (the profile_zip served locally)
+        # Encode url i.e.: https://profiler.firefox.com/from-url/http... (the profile_zip served locally)
         url = 'http://' + self.host + ':' + self.port + '/' + os.path.basename(self.gecko_profile_zip)
         self.log.info("raw url is:")
         self.log.info(url)
         encoded_url = urllib.quote(url, safe='')
         self.log.info('encoded url is:')
         self.log.info(encoded_url)
         self.perfhtmlio_url = self.perfhtmlio_url + encoded_url
         self.log.info('full url is:')
         self.log.info(self.perfhtmlio_url)
 
     def start_browser_perfhtml(self):
-        self.log.info("Starting browser and opening the gecko profile zip in perf-html.io...")
+        self.log.info("Starting browser and opening the gecko profile zip in profiler.firefox.com...")
 
         self.runner.cmdargs.append(self.perfhtmlio_url)
         self.runner.start()
 
         first_time = int(time.time()) * 1000
         proc = self.runner.process_handler
         self.output_handler.proc = proc
 
@@ -141,17 +141,17 @@ class OutputHandler(object):
 
 def create_parser(mach_interface=False):
     parser = argparse.ArgumentParser()
     add_arg = parser.add_argument
 
     add_arg('-b', '--binary', required=True, dest='binary',
             help="path to browser executable")
     add_arg('-p', '--profile-zip', required=True, dest='profile_zip',
-            help="path to the gecko profiles zip file to open in perf-html.io")
+            help="path to the gecko profiles zip file to open in profiler.firefox.com")
 
     add_logging_group(parser)
     return parser
 
 
 def verify_options(parser, args):
     ctx = vars(args)