зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1279635 - Change mozbrowserlocationchange event detail to match Servo. r=smaug
MozReview-Commit-ID: 1kCbM5lJ4Sr --HG-- extra : rebase_source : e13fb1ee68301e77acb0bd5b97f24deab865bdd8
This commit is contained in:
Родитель
384eb5f086
Коммит
880bbbc173
|
@ -1567,7 +1567,11 @@ BrowserElementChild.prototype = {
|
||||||
location = Cc["@mozilla.org/docshell/urifixup;1"]
|
location = Cc["@mozilla.org/docshell/urifixup;1"]
|
||||||
.getService(Ci.nsIURIFixup).createExposableURI(location);
|
.getService(Ci.nsIURIFixup).createExposableURI(location);
|
||||||
|
|
||||||
sendAsyncMsg('locationchange', { _payload_: location.spec });
|
var webNav = docShell.QueryInterface(Ci.nsIWebNavigation);
|
||||||
|
|
||||||
|
sendAsyncMsg('locationchange', { url: location.spec,
|
||||||
|
canGoBack: webNav.canGoBack,
|
||||||
|
canGoForward: webNav.canGoForward });
|
||||||
},
|
},
|
||||||
|
|
||||||
onStateChange: function(webProgress, request, stateFlags, status) {
|
onStateChange: function(webProgress, request, stateFlags, status) {
|
||||||
|
|
|
@ -70,7 +70,9 @@ function test3() {
|
||||||
|
|
||||||
function test4() {
|
function test4() {
|
||||||
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
||||||
is(e.detail, browserElementTestHelpers.emptyPage3);
|
is(e.detail.url, browserElementTestHelpers.emptyPage3);
|
||||||
|
is(e.detail.canGoBack, true);
|
||||||
|
is(e.detail.canGoForward, false);
|
||||||
checkCanGoBackAndForward(true, false, test5);
|
checkCanGoBackAndForward(true, false, test5);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -81,7 +83,9 @@ function test4() {
|
||||||
|
|
||||||
function test5() {
|
function test5() {
|
||||||
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
||||||
is(e.detail, browserElementTestHelpers.emptyPage2);
|
is(e.detail.url, browserElementTestHelpers.emptyPage2);
|
||||||
|
is(e.detail.canGoBack, true);
|
||||||
|
is(e.detail.canGoForward, true);
|
||||||
checkCanGoBackAndForward(true, true, test6);
|
checkCanGoBackAndForward(true, true, test6);
|
||||||
});
|
});
|
||||||
iframe.goBack();
|
iframe.goBack();
|
||||||
|
@ -89,7 +93,9 @@ function test5() {
|
||||||
|
|
||||||
function test6() {
|
function test6() {
|
||||||
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
||||||
is(e.detail, browserElementTestHelpers.emptyPage1);
|
is(e.detail.url, browserElementTestHelpers.emptyPage1);
|
||||||
|
is(e.detail.canGoBack, false);
|
||||||
|
is(e.detail.canGoForward, true);
|
||||||
checkCanGoBackAndForward(false, true, SimpleTest.finish);
|
checkCanGoBackAndForward(false, true, SimpleTest.finish);
|
||||||
});
|
});
|
||||||
iframe.goBack();
|
iframe.goBack();
|
||||||
|
|
|
@ -24,12 +24,12 @@ function runTest() {
|
||||||
document.body.appendChild(e.detail.frameElement);
|
document.body.appendChild(e.detail.frameElement);
|
||||||
|
|
||||||
e.detail.frameElement.addEventListener('mozbrowserlocationchange', function(e) {
|
e.detail.frameElement.addEventListener('mozbrowserlocationchange', function(e) {
|
||||||
if (e.detail == "http://example.com/#2") {
|
if (e.detail.url == "http://example.com/#2") {
|
||||||
ok(true, "Got locationchange to http://example.com/#2");
|
ok(true, "Got locationchange to http://example.com/#2");
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ok(true, "Got locationchange to " + e.detail);
|
ok(true, "Got locationchange to " + e.detail.url);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ function runTest2() {
|
||||||
ok(e.isTrusted, 'Event should be trusted.');
|
ok(e.isTrusted, 'Event should be trusted.');
|
||||||
ok(!sawLocationChange, 'Just one locationchange event.');
|
ok(!sawLocationChange, 'Just one locationchange event.');
|
||||||
ok(!sawLoadEnd, 'locationchange before load.');
|
ok(!sawLoadEnd, 'locationchange before load.');
|
||||||
is(e.detail, 'data:text/html,1', "event's reported location");
|
is(e.detail.url, 'data:text/html,1', "event's reported location");
|
||||||
sawLocationChange = true;
|
sawLocationChange = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ var iframe;
|
||||||
|
|
||||||
function testPassword() {
|
function testPassword() {
|
||||||
function locationchange(e) {
|
function locationchange(e) {
|
||||||
var uri = e.detail;
|
var uri = e.detail.url;
|
||||||
is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_empty.html',
|
is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_empty.html',
|
||||||
"Username and password shouldn't be exposed in uri.");
|
"Username and password shouldn't be exposed in uri.");
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
|
@ -33,7 +33,7 @@ function testWyciwyg() {
|
||||||
if (locationChangeCount == 0) {
|
if (locationChangeCount == 0) {
|
||||||
locationChangeCount ++;
|
locationChangeCount ++;
|
||||||
} else if (locationChangeCount == 1) {
|
} else if (locationChangeCount == 1) {
|
||||||
var uri = e.detail;
|
var uri = e.detail.url;
|
||||||
is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_wyciwyg.html', "Scheme in string shouldn't be wyciwyg");
|
is(uri, 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_wyciwyg.html', "Scheme in string shouldn't be wyciwyg");
|
||||||
iframe.removeEventListener('mozbrowserlocationchange', locationchange);
|
iframe.removeEventListener('mozbrowserlocationchange', locationchange);
|
||||||
SimpleTest.executeSoon(testPassword);
|
SimpleTest.executeSoon(testPassword);
|
||||||
|
|
|
@ -24,13 +24,13 @@ function runTest() {
|
||||||
});
|
});
|
||||||
|
|
||||||
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
||||||
if (e.detail == browserElementTestHelpers.emptyPage1) {
|
if (e.detail.url == browserElementTestHelpers.emptyPage1) {
|
||||||
gotFirstLocationChange = true;
|
gotFirstLocationChange = true;
|
||||||
if (gotFirstPaint) {
|
if (gotFirstPaint) {
|
||||||
iframe.src = browserElementTestHelpers.emptyPage1 + '?2';
|
iframe.src = browserElementTestHelpers.emptyPage1 + '?2';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (e.detail.endsWith('?2')) {
|
else if (e.detail.url.endsWith('?2')) {
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -20,8 +20,8 @@ function runTest() {
|
||||||
});
|
});
|
||||||
|
|
||||||
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
||||||
ok(true, "Got locationchange to " + e.detail);
|
ok(true, "Got locationchange to " + e.detail.url);
|
||||||
if (e.detail.endsWith("ForwardName.html#finish")) {
|
if (e.detail.url.endsWith("ForwardName.html#finish")) {
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -38,7 +38,7 @@ function runTest() {
|
||||||
seenLocationChange = true;
|
seenLocationChange = true;
|
||||||
ok(seenLoadStart, 'Location change after load start.');
|
ok(seenLoadStart, 'Location change after load start.');
|
||||||
ok(!seenLoadEnd, 'Location change before load end.');
|
ok(!seenLoadEnd, 'Location change before load end.');
|
||||||
ok(e.detail, browserElementTestHelpers.emptyPage1, "event's reported location");
|
ok(e.detail.url, browserElementTestHelpers.emptyPage1, "event's reported location");
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadend(e) {
|
function loadend(e) {
|
||||||
|
@ -91,7 +91,7 @@ function runTest2() {
|
||||||
seenLocationChange = true;
|
seenLocationChange = true;
|
||||||
ok(seenLoadStart, 'Location change after load start.');
|
ok(seenLoadStart, 'Location change after load start.');
|
||||||
ok(!seenLoadEnd, 'Location change before load end.');
|
ok(!seenLoadEnd, 'Location change before load end.');
|
||||||
ok(e.detail, browserElementTestHelpers.emptyPage2, "event's reported location");
|
ok(e.detail.url, browserElementTestHelpers.emptyPage2, "event's reported location");
|
||||||
});
|
});
|
||||||
|
|
||||||
iframe.addEventListener('mozbrowserloadend', function(e) {
|
iframe.addEventListener('mozbrowserloadend', function(e) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ function test3() {
|
||||||
|
|
||||||
function test4() {
|
function test4() {
|
||||||
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
addOneShotIframeEventListener('mozbrowserlocationchange', function(e) {
|
||||||
is(e.detail, browserElementTestHelpers.emptyPage3);
|
is(e.detail.url, browserElementTestHelpers.emptyPage3);
|
||||||
purgeHistory(SimpleTest.finish);
|
purgeHistory(SimpleTest.finish);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ function runTest() {
|
||||||
|
|
||||||
iframe.addEventListener("mozbrowserlocationchange", function onlocchange(e) {
|
iframe.addEventListener("mozbrowserlocationchange", function onlocchange(e) {
|
||||||
var a = document.createElement("a");
|
var a = document.createElement("a");
|
||||||
a.href = e.detail;
|
a.href = e.detail.url;
|
||||||
|
|
||||||
switch (a.hash) {
|
switch (a.hash) {
|
||||||
case "#mousedown":
|
case "#mousedown":
|
||||||
|
|
|
@ -18,7 +18,7 @@ function runTest() {
|
||||||
});
|
});
|
||||||
|
|
||||||
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
iframe.addEventListener('mozbrowserlocationchange', function(e) {
|
||||||
if (/file_browserElement_TargetTop.html\?2$/.test(e.detail)) {
|
if (/file_browserElement_TargetTop.html\?2$/.test(e.detail.url)) {
|
||||||
ok(true, 'Got the locationchange we were looking for.');
|
ok(true, 'Got the locationchange we were looking for.');
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче