forked from mirrors/gecko-dev
MozReview-Commit-ID: HbIYBfoWgk4 --HG-- rename : devtools/client/animationinspector/README.md => devtools/client/inspector/animation-old/README.md rename : devtools/client/animationinspector/animation-controller.js => devtools/client/inspector/animation-old/animation-controller.js rename : devtools/client/animationinspector/animation-inspector.xhtml => devtools/client/inspector/animation-old/animation-inspector.xhtml rename : devtools/client/animationinspector/animation-panel.js => devtools/client/inspector/animation-old/animation-panel.js rename : devtools/client/animationinspector/components/animation-details.js => devtools/client/inspector/animation-old/components/animation-details.js rename : devtools/client/animationinspector/components/animation-target-node.js => devtools/client/inspector/animation-old/components/animation-target-node.js rename : devtools/client/animationinspector/components/animation-time-block.js => devtools/client/inspector/animation-old/components/animation-time-block.js rename : devtools/client/animationinspector/components/animation-timeline.js => devtools/client/inspector/animation-old/components/animation-timeline.js rename : devtools/client/animationinspector/components/keyframes.js => devtools/client/inspector/animation-old/components/keyframes.js rename : devtools/client/animationinspector/components/moz.build => devtools/client/inspector/animation-old/components/moz.build rename : devtools/client/animationinspector/components/rate-selector.js => devtools/client/inspector/animation-old/components/rate-selector.js rename : devtools/client/animationinspector/graph-helper.js => devtools/client/inspector/animation-old/graph-helper.js rename : devtools/client/animationinspector/moz.build => devtools/client/inspector/animation-old/moz.build rename : devtools/client/animationinspector/test/.eslintrc.js => devtools/client/inspector/animation-old/test/.eslintrc.js rename : devtools/client/animationinspector/test/browser.ini => devtools/client/inspector/animation-old/test/browser.ini rename : devtools/client/animationinspector/test/browser_animation_animated_properties_displayed.js => devtools/client/inspector/animation-old/test/browser_animation_animated_properties_displayed.js rename : devtools/client/animationinspector/test/browser_animation_animated_properties_for_delayed_starttime_animations.js => devtools/client/inspector/animation-old/test/browser_animation_animated_properties_for_delayed_starttime_animations.js rename : devtools/client/animationinspector/test/browser_animation_animated_properties_path.js => devtools/client/inspector/animation-old/test/browser_animation_animated_properties_path.js rename : devtools/client/animationinspector/test/browser_animation_animated_properties_progress_indicator.js => devtools/client/inspector/animation-old/test/browser_animation_animated_properties_progress_indicator.js rename : devtools/client/animationinspector/test/browser_animation_click_selects_animation.js => devtools/client/inspector/animation-old/test/browser_animation_click_selects_animation.js rename : devtools/client/animationinspector/test/browser_animation_controller_exposes_document_currentTime.js => devtools/client/inspector/animation-old/test/browser_animation_controller_exposes_document_currentTime.js rename : devtools/client/animationinspector/test/browser_animation_detail_displayed.js => devtools/client/inspector/animation-old/test/browser_animation_detail_displayed.js rename : devtools/client/animationinspector/test/browser_animation_detail_easings.js => devtools/client/inspector/animation-old/test/browser_animation_detail_easings.js rename : devtools/client/animationinspector/test/browser_animation_empty_on_invalid_nodes.js => devtools/client/inspector/animation-old/test/browser_animation_empty_on_invalid_nodes.js rename : devtools/client/animationinspector/test/browser_animation_keyframe_markers.js => devtools/client/inspector/animation-old/test/browser_animation_keyframe_markers.js rename : devtools/client/animationinspector/test/browser_animation_mutations_with_same_names.js => devtools/client/inspector/animation-old/test/browser_animation_mutations_with_same_names.js rename : devtools/client/animationinspector/test/browser_animation_panel_exists.js => devtools/client/inspector/animation-old/test/browser_animation_panel_exists.js rename : devtools/client/animationinspector/test/browser_animation_participate_in_inspector_update.js => devtools/client/inspector/animation-old/test/browser_animation_participate_in_inspector_update.js rename : devtools/client/animationinspector/test/browser_animation_playerFronts_are_refreshed.js => devtools/client/inspector/animation-old/test/browser_animation_playerFronts_are_refreshed.js rename : devtools/client/animationinspector/test/browser_animation_playerWidgets_appear_on_panel_init.js => devtools/client/inspector/animation-old/test/browser_animation_playerWidgets_appear_on_panel_init.js rename : devtools/client/animationinspector/test/browser_animation_playerWidgets_target_nodes.js => devtools/client/inspector/animation-old/test/browser_animation_playerWidgets_target_nodes.js rename : devtools/client/animationinspector/test/browser_animation_pseudo_elements.js => devtools/client/inspector/animation-old/test/browser_animation_pseudo_elements.js rename : devtools/client/animationinspector/test/browser_animation_refresh_on_added_animation.js => devtools/client/inspector/animation-old/test/browser_animation_refresh_on_added_animation.js rename : devtools/client/animationinspector/test/browser_animation_refresh_on_removed_animation.js => devtools/client/inspector/animation-old/test/browser_animation_refresh_on_removed_animation.js rename : devtools/client/animationinspector/test/browser_animation_refresh_when_active.js => devtools/client/inspector/animation-old/test/browser_animation_refresh_when_active.js rename : devtools/client/animationinspector/test/browser_animation_refresh_when_active_after_mutations.js => devtools/client/inspector/animation-old/test/browser_animation_refresh_when_active_after_mutations.js rename : devtools/client/animationinspector/test/browser_animation_running_on_compositor.js => devtools/client/inspector/animation-old/test/browser_animation_running_on_compositor.js rename : devtools/client/animationinspector/test/browser_animation_same_nb_of_playerWidgets_and_playerFronts.js => devtools/client/inspector/animation-old/test/browser_animation_same_nb_of_playerWidgets_and_playerFronts.js rename : devtools/client/animationinspector/test/browser_animation_shows_player_on_valid_node.js => devtools/client/inspector/animation-old/test/browser_animation_shows_player_on_valid_node.js rename : devtools/client/animationinspector/test/browser_animation_spacebar_toggles_animations.js => devtools/client/inspector/animation-old/test/browser_animation_spacebar_toggles_animations.js rename : devtools/client/animationinspector/test/browser_animation_spacebar_toggles_node_animations.js => devtools/client/inspector/animation-old/test/browser_animation_spacebar_toggles_node_animations.js rename : devtools/client/animationinspector/test/browser_animation_summarygraph_for_multiple_easings.js => devtools/client/inspector/animation-old/test/browser_animation_summarygraph_for_multiple_easings.js rename : devtools/client/animationinspector/test/browser_animation_target_highlight_select.js => devtools/client/inspector/animation-old/test/browser_animation_target_highlight_select.js rename : devtools/client/animationinspector/test/browser_animation_target_highlighter_lock.js => devtools/client/inspector/animation-old/test/browser_animation_target_highlighter_lock.js rename : devtools/client/animationinspector/test/browser_animation_timeline_add_animation.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_add_animation.js rename : devtools/client/animationinspector/test/browser_animation_timeline_currentTime.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_currentTime.js rename : devtools/client/animationinspector/test/browser_animation_timeline_header.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_header.js rename : devtools/client/animationinspector/test/browser_animation_timeline_iterationStart.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_iterationStart.js rename : devtools/client/animationinspector/test/browser_animation_timeline_pause_button_01.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_pause_button_01.js rename : devtools/client/animationinspector/test/browser_animation_timeline_pause_button_02.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_pause_button_02.js rename : devtools/client/animationinspector/test/browser_animation_timeline_pause_button_03.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_pause_button_03.js rename : devtools/client/animationinspector/test/browser_animation_timeline_rate_selector.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_rate_selector.js rename : devtools/client/animationinspector/test/browser_animation_timeline_rewind_button.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_rewind_button.js rename : devtools/client/animationinspector/test/browser_animation_timeline_scrubber_exists.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_scrubber_exists.js rename : devtools/client/animationinspector/test/browser_animation_timeline_scrubber_movable.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_scrubber_movable.js rename : devtools/client/animationinspector/test/browser_animation_timeline_scrubber_moves.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_scrubber_moves.js rename : devtools/client/animationinspector/test/browser_animation_timeline_setCurrentTime.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_setCurrentTime.js rename : devtools/client/animationinspector/test/browser_animation_timeline_short_duration.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_short_duration.js rename : devtools/client/animationinspector/test/browser_animation_timeline_shows_delay.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_shows_delay.js rename : devtools/client/animationinspector/test/browser_animation_timeline_shows_endDelay.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_shows_endDelay.js rename : devtools/client/animationinspector/test/browser_animation_timeline_shows_iterations.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_shows_iterations.js rename : devtools/client/animationinspector/test/browser_animation_timeline_shows_name_label.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_shows_name_label.js rename : devtools/client/animationinspector/test/browser_animation_timeline_shows_time_info.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_shows_time_info.js rename : devtools/client/animationinspector/test/browser_animation_timeline_takes_rate_into_account.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_takes_rate_into_account.js rename : devtools/client/animationinspector/test/browser_animation_timeline_ui.js => devtools/client/inspector/animation-old/test/browser_animation_timeline_ui.js rename : devtools/client/animationinspector/test/browser_animation_toggle_button_resets_on_navigate.js => devtools/client/inspector/animation-old/test/browser_animation_toggle_button_resets_on_navigate.js rename : devtools/client/animationinspector/test/browser_animation_toggle_button_toggles_animations.js => devtools/client/inspector/animation-old/test/browser_animation_toggle_button_toggles_animations.js rename : devtools/client/animationinspector/test/browser_animation_toolbar_exists.js => devtools/client/inspector/animation-old/test/browser_animation_toolbar_exists.js rename : devtools/client/animationinspector/test/browser_animation_ui_updates_when_animation_data_changes.js => devtools/client/inspector/animation-old/test/browser_animation_ui_updates_when_animation_data_changes.js rename : devtools/client/animationinspector/test/doc_add_animation.html => devtools/client/inspector/animation-old/test/doc_add_animation.html rename : devtools/client/animationinspector/test/doc_body_animation.html => devtools/client/inspector/animation-old/test/doc_body_animation.html rename : devtools/client/animationinspector/test/doc_delayed_starttime_animations.html => devtools/client/inspector/animation-old/test/doc_delayed_starttime_animations.html rename : devtools/client/animationinspector/test/doc_end_delay.html => devtools/client/inspector/animation-old/test/doc_end_delay.html rename : devtools/client/animationinspector/test/doc_frame_script.js => devtools/client/inspector/animation-old/test/doc_frame_script.js rename : devtools/client/animationinspector/test/doc_keyframes.html => devtools/client/inspector/animation-old/test/doc_keyframes.html rename : devtools/client/animationinspector/test/doc_modify_playbackRate.html => devtools/client/inspector/animation-old/test/doc_modify_playbackRate.html rename : devtools/client/animationinspector/test/doc_multiple_animation_types.html => devtools/client/inspector/animation-old/test/doc_multiple_animation_types.html rename : devtools/client/animationinspector/test/doc_multiple_easings.html => devtools/client/inspector/animation-old/test/doc_multiple_easings.html rename : devtools/client/animationinspector/test/doc_multiple_property_types.html => devtools/client/inspector/animation-old/test/doc_multiple_property_types.html rename : devtools/client/animationinspector/test/doc_negative_animation.html => devtools/client/inspector/animation-old/test/doc_negative_animation.html rename : devtools/client/animationinspector/test/doc_pseudo_elements.html => devtools/client/inspector/animation-old/test/doc_pseudo_elements.html rename : devtools/client/animationinspector/test/doc_script_animation.html => devtools/client/inspector/animation-old/test/doc_script_animation.html rename : devtools/client/animationinspector/test/doc_short_duration_animation.html => devtools/client/inspector/animation-old/test/doc_short_duration_animation.html rename : devtools/client/animationinspector/test/doc_simple_animation.html => devtools/client/inspector/animation-old/test/doc_simple_animation.html rename : devtools/client/animationinspector/test/doc_timing_combination_animation.html => devtools/client/inspector/animation-old/test/doc_timing_combination_animation.html rename : devtools/client/animationinspector/test/head.js => devtools/client/inspector/animation-old/test/head.js rename : devtools/client/animationinspector/test/unit/.eslintrc.js => devtools/client/inspector/animation-old/test/unit/.eslintrc.js rename : devtools/client/animationinspector/test/unit/test_findOptimalTimeInterval.js => devtools/client/inspector/animation-old/test/unit/test_findOptimalTimeInterval.js rename : devtools/client/animationinspector/test/unit/test_formatStopwatchTime.js => devtools/client/inspector/animation-old/test/unit/test_formatStopwatchTime.js rename : devtools/client/animationinspector/test/unit/test_getCssPropertyName.js => devtools/client/inspector/animation-old/test/unit/test_getCssPropertyName.js rename : devtools/client/animationinspector/test/unit/test_timeScale.js => devtools/client/inspector/animation-old/test/unit/test_timeScale.js rename : devtools/client/animationinspector/test/unit/test_timeScale_dimensions.js => devtools/client/inspector/animation-old/test/unit/test_timeScale_dimensions.js rename : devtools/client/animationinspector/test/unit/xpcshell.ini => devtools/client/inspector/animation-old/test/unit/xpcshell.ini rename : devtools/client/animationinspector/utils.js => devtools/client/inspector/animation-old/utils.js extra : rebase_source : 28aeafe670b038439568951be554cb780cfc29ef
79 lines
2.5 KiB
JavaScript
79 lines
2.5 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
|
/* 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";
|
|
|
|
const EventEmitter = require("devtools/shared/event-emitter");
|
|
const {DomNodePreview} = require("devtools/client/inspector/shared/dom-node-preview");
|
|
|
|
// Map dom node fronts by animation fronts so we don't have to get them from the
|
|
// walker every time the timeline is refreshed.
|
|
var nodeFronts = new WeakMap();
|
|
|
|
/**
|
|
* UI component responsible for displaying a preview of the target dom node of
|
|
* a given animation.
|
|
* Accepts the same parameters as the DomNodePreview component. See
|
|
* devtools/client/inspector/shared/dom-node-preview.js for documentation.
|
|
*/
|
|
function AnimationTargetNode(inspector, options) {
|
|
this.inspector = inspector;
|
|
this.previewer = new DomNodePreview(inspector, options);
|
|
EventEmitter.decorate(this);
|
|
}
|
|
|
|
exports.AnimationTargetNode = AnimationTargetNode;
|
|
|
|
AnimationTargetNode.prototype = {
|
|
init: function(containerEl) {
|
|
this.previewer.init(containerEl);
|
|
this.isDestroyed = false;
|
|
},
|
|
|
|
destroy: function() {
|
|
this.previewer.destroy();
|
|
this.inspector = null;
|
|
this.isDestroyed = true;
|
|
},
|
|
|
|
async render(playerFront) {
|
|
// Get the nodeFront from the cache if it was stored previously.
|
|
let nodeFront = nodeFronts.get(playerFront);
|
|
|
|
// Try and get it from the playerFront directly next.
|
|
if (!nodeFront) {
|
|
nodeFront = playerFront.animationTargetNodeFront;
|
|
}
|
|
|
|
// Finally, get it from the walkerActor if it wasn't found.
|
|
if (!nodeFront) {
|
|
try {
|
|
nodeFront = await this.inspector.walker.getNodeFromActor(
|
|
playerFront.actorID, ["node"]);
|
|
} catch (e) {
|
|
// If an error occured while getting the nodeFront and if it can't be
|
|
// attributed to the panel having been destroyed in the meantime, this
|
|
// error needs to be logged and render needs to stop.
|
|
if (!this.isDestroyed) {
|
|
console.error(e);
|
|
}
|
|
return;
|
|
}
|
|
|
|
// In all cases, if by now the panel doesn't exist anymore, we need to
|
|
// stop rendering too.
|
|
if (this.isDestroyed) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Add the nodeFront to the cache.
|
|
nodeFronts.set(playerFront, nodeFront);
|
|
|
|
this.previewer.render(nodeFront);
|
|
this.emit("target-retrieved");
|
|
}
|
|
};
|