michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: gBrowser.addProgressListener(progressListener1); michael@0: gBrowser.addProgressListener(progressListener2); michael@0: gBrowser.addProgressListener(progressListener3); michael@0: gBrowser.loadURI("data:text/plain,bug519216"); michael@0: } michael@0: michael@0: var calledListener1 = false; michael@0: var progressListener1 = { michael@0: onLocationChange: function onLocationChange() { michael@0: calledListener1 = true; michael@0: gBrowser.removeProgressListener(this); michael@0: } michael@0: }; michael@0: michael@0: var calledListener2 = false; michael@0: var progressListener2 = { michael@0: onLocationChange: function onLocationChange() { michael@0: ok(calledListener1, "called progressListener1 before progressListener2"); michael@0: calledListener2 = true; michael@0: gBrowser.removeProgressListener(this); michael@0: } michael@0: }; michael@0: michael@0: var progressListener3 = { michael@0: onLocationChange: function onLocationChange() { michael@0: ok(calledListener2, "called progressListener2 before progressListener3"); michael@0: gBrowser.removeProgressListener(this); michael@0: gBrowser.addProgressListener(progressListener4); michael@0: executeSoon(function () { michael@0: expectListener4 = true; michael@0: gBrowser.reload(); michael@0: }); michael@0: } michael@0: }; michael@0: michael@0: var expectListener4 = false; michael@0: var progressListener4 = { michael@0: onLocationChange: function onLocationChange() { michael@0: ok(expectListener4, "didn't call progressListener4 for the first location change"); michael@0: gBrowser.removeProgressListener(this); michael@0: executeSoon(finish); michael@0: } michael@0: };