aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisko Hevery2012-06-22 10:21:31 -0700
committerMisko Hevery2012-06-22 10:21:31 -0700
commitffb270130a4aaf3ddc2eb9d6211b46e1da136184 (patch)
treec431059d6961ab174f344b71e35c6953b85270e2
parent0d57f1373f783bddee3f5fdcf1d6702e62bba13e (diff)
downloadangular.js-ffb270130a4aaf3ddc2eb9d6211b46e1da136184.tar.bz2
fix(browser): prevent ie from getting into redirect loop
Closes #1075 Closes #1079 Closes #1085
-rw-r--r--src/ng/browser.js1
-rw-r--r--test/ng/browserSpecs.js8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ng/browser.js b/src/ng/browser.js
index 864c972c..39253483 100644
--- a/src/ng/browser.js
+++ b/src/ng/browser.js
@@ -149,6 +149,7 @@ function Browser(window, document, $log, $sniffer) {
self.url = function(url, replace) {
// setter
if (url) {
+ if (lastBrowserUrl == url) return;
lastBrowserUrl = url;
if ($sniffer.history) {
if (replace) history.replaceState(null, '', url);
diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js
index 55b8167c..3f28c605 100644
--- a/test/ng/browserSpecs.js
+++ b/test/ng/browserSpecs.js
@@ -468,6 +468,14 @@ describe('browser', function() {
fakeWindow.location.href = "http://ff-bug/?single%27quote";
expect(browser.url()).toBe("http://ff-bug/?single'quote");
});
+
+ it('should not set URL when the URL is already set', function() {
+ var current = fakeWindow.location.href;
+ sniffer.history = false;
+ fakeWindow.location.href = 'dontchange';
+ browser.url(current);
+ expect(fakeWindow.location.href).toBe('dontchange');
+ });
});
describe('urlChange', function() {