Bug 1468343 - Part 3: Change tooltip content to address infinity duration. r=flod,jdescottes, a=lizzard
authorDaisuke Akatsuka <dakatsuka@mozilla.com>
Tue, 26 Jun 2018 17:21:17 +0900
changeset 480282 6c3078d399f766733175d31abb214f55be8e3228
parent 480281 b7f02289be490ee7e96e14a73d743ee25f89b308
child 480283 8d2dc4311ca04bc499c8b6aee7ca7851d438ac21
push id1757
push userffxbld-merge
push dateFri, 24 Aug 2018 17:02:43 +0000
treeherdermozilla-release@736023aebdb1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersflod, jdescottes, lizzard
bugs1468343
milestone62.0
Bug 1468343 - Part 3: Change tooltip content to address infinity duration. r=flod,jdescottes, a=lizzard MozReview-Commit-ID: 4DXXbhGgWF1
devtools/client/inspector/animation/components/graph/SummaryGraph.js
devtools/client/locales/en-US/animationinspector.properties
--- a/devtools/client/inspector/animation/components/graph/SummaryGraph.js
+++ b/devtools/client/inspector/animation/components/graph/SummaryGraph.js
@@ -52,17 +52,19 @@ class SummaryGraph extends PureComponent
     if (state.delay) {
       text += getStr("player.animationDelayLabel") + " ";
       text += getTime(state.delay);
       text += "\n";
     }
 
     // Adding the duration.
     text += getStr("player.animationDurationLabel") + " ";
-    text += getTime(state.duration);
+    text += state.duration === Infinity
+              ? getStr("player.infiniteDurationText")
+              : getTime(state.duration);
     text += "\n";
 
     // Adding the endDelay.
     if (state.endDelay) {
       text += getStr("player.animationEndDelayLabel") + " ";
       text += getTime(state.endDelay);
       text += "\n";
     }
@@ -71,20 +73,21 @@ class SummaryGraph extends PureComponent
     if (state.iterationCount !== 1) {
       text += getStr("player.animationIterationCountLabel") + " ";
       text += state.iterationCount || getStr("player.infiniteIterationCountText");
       text += "\n";
     }
 
     // Adding the iteration start.
     if (state.iterationStart !== 0) {
-      const iterationStartTime = state.iterationStart * state.duration / 1000;
-      text += getFormatStr("player.animationIterationStartLabel",
+      text += getFormatStr("player.animationIterationStartLabel2",
                            state.iterationStart,
-                           numberWithDecimals(iterationStartTime, 2));
+                           state.duration === Infinity
+                             ? getStr("player.infiniteDurationText")
+                             : getTime(state.iterationStart * state.duration));
       text += "\n";
     }
 
     // Adding the easing if it is not "linear".
     if (state.easing && state.easing !== "linear") {
       text += getStr("player.animationOverallEasingLabel") + " ";
       text += state.easing;
       text += "\n";
--- a/devtools/client/locales/en-US/animationinspector.properties
+++ b/devtools/client/locales/en-US/animationinspector.properties
@@ -31,16 +31,21 @@ panel.noAnimation=No animations were fou
 # animations, not just the ones applying to the current element.
 panel.allAnimations=All animations
 
 # LOCALIZATION NOTE (player.animationDurationLabel):
 # This string is displayed in each animation player widget. It is the label
 # displayed before the animation duration.
 player.animationDurationLabel=Duration:
 
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in a tooltip on animation player widget, in case the
+# duration of the animation is infinite.
+player.infiniteDurationText=∞
+
 # LOCALIZATION NOTE (player.animationDelayLabel):
 # This string is displayed in each animation player widget. It is the label
 # displayed before the animation delay.
 player.animationDelayLabel=Delay:
 
 # LOCALIZATION NOTE (player.animationEndDelayLabel):
 # This string is displayed in each animation player widget. It is the label
 # displayed before the animation endDelay.
@@ -70,16 +75,27 @@ player.infiniteIterationCountText=∞
 # LOCALIZATION NOTE (player.animationIterationStartLabel):
 # This string is displayed in a tooltip that appears when hovering over
 # animations in the timeline. It is the label displayed before the animation
 # iterationStart value.
 # %1$S will be replaced by the original iteration start value
 # %2$S will be replaced by the actual time of iteration start
 player.animationIterationStartLabel=Iteration start: %1$S (%2$Ss)
 
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=Iteration start: %1$S (%2$S)
+
 # LOCALIZATION NOTE (player.animationOverallEasingLabel):
 # This string is displayed in a tooltip that appears when hovering over
 # animations in the timeline. It is the label displayed before the easing
 # that applies to a whole iteration of an animation as opposed to the
 # easing that applies between animation keyframes.
 player.animationOverallEasingLabel=Overall easing:
 
 # LOCALIZATION NOTE (player.animationTimingFunctionLabel):