Bug 1173393 - Detail views in Performance should be unique EventTargets and not bleed events between each other. r=vp

This commit is contained in:
Jordan Santell 2015-06-10 10:27:54 -07:00
parent 382616425c
commit 4216e17d3a
7 changed files with 25 additions and 6 deletions

View File

@ -6,7 +6,7 @@
*/
function* spawnTest() {
let { panel } = yield initPerformance(SIMPLE_URL);
let { EVENTS, DetailsView, JsCallTreeView } = panel.panelWin;
let { EVENTS, DetailsView, WaterfallView, JsCallTreeView } = panel.panelWin;
yield startRecording(panel);
yield busyWait(100);
@ -19,11 +19,25 @@ function* spawnTest() {
ok(true, "JsCallTreeView rendered after recording is stopped.");
yield DetailsView.selectView("waterfall");
yield startRecording(panel);
yield busyWait(100);
let waterfallRenderedOnWF = once(WaterfallView, EVENTS.WATERFALL_RENDERED);
let waterfallRenderedOnJS = once(JsCallTreeView, EVENTS.WATERFALL_RENDERED);
rendered = once(JsCallTreeView, EVENTS.JS_CALL_TREE_RENDERED);
yield stopRecording(panel);
// The waterfall should render by default, and we want to make
// sure that the render events don't bleed between detail views
// via bug 1173393, so test that's the case after both views have been
// created
waterfallRenderedOnJS.then(() =>
ok(false, "JsCallTreeView should not receive WATERFALL_RENDERED event"));
yield waterfallRenderedOnWF;
yield DetailsView.selectView("js-calltree");
yield rendered;
ok(true, "JsCallTreeView rendered again after recording completed a second time.");

View File

@ -160,8 +160,3 @@ let DetailsSubview = {
}
}
};
/**
* Convenient way of emitting events from the view.
*/
EventEmitter.decorate(DetailsSubview);

View File

@ -131,3 +131,5 @@ let JsCallTreeView = Heritage.extend(DetailsSubview, {
toString: () => "[object JsCallTreeView]"
});
EventEmitter.decorate(JsCallTreeView);

View File

@ -115,3 +115,5 @@ let JsFlameGraphView = Heritage.extend(DetailsSubview, {
toString: () => "[object JsFlameGraphView]"
});
EventEmitter.decorate(JsFlameGraphView);

View File

@ -118,3 +118,5 @@ let MemoryCallTreeView = Heritage.extend(DetailsSubview, {
toString: () => "[object MemoryCallTreeView]"
});
EventEmitter.decorate(MemoryCallTreeView);

View File

@ -113,3 +113,5 @@ let MemoryFlameGraphView = Heritage.extend(DetailsSubview, {
toString: () => "[object MemoryFlameGraphView]"
});
EventEmitter.decorate(MemoryFlameGraphView);

View File

@ -184,3 +184,5 @@ let WaterfallView = Heritage.extend(DetailsSubview, {
toString: () => "[object WaterfallView]"
});
EventEmitter.decorate(WaterfallView);