Skip to content

Commit f404d91

Browse files
committed
Merge pull request #47 from amplitude/handle_session_storage_disabled
Handle session storage disabled
2 parents a0fc3d2 + 76fded2 commit f404d91

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## Unreleased
22

3+
* Fix bug where saveReferrer throws exception if sessionStorage is disabled.
4+
35
## 2.9.0 (January 15, 2016)
46

57
* Add ability to clear all user properties.

amplitude.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -496,10 +496,17 @@ Amplitude.prototype._saveReferrer = function(referrer) {
496496
identify.setOnce('initial_referring_domain', referring_domain);
497497

498498
// only save referrer if not already in session storage or if storage disabled
499-
var hasSessionStorage = window.sessionStorage ? true : false;
500-
if ((hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER)) || !hasSessionStorage) {
501-
identify.set('referrer', referrer).set('referring_domain', referring_domain);
499+
var hasSessionStorage = false;
500+
try {
501+
if (window.sessionStorage) {
502+
hasSessionStorage = true;
503+
}
504+
} catch (e) {
505+
// log(e); // sessionStorage disabled
506+
}
502507

508+
if (!hasSessionStorage || (hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER))) {
509+
identify.set('referrer', referrer).set('referring_domain', referring_domain);
503510
if (hasSessionStorage) {
504511
window.sessionStorage.setItem(LocalStorageKeys.REFERRER, referrer);
505512
}

amplitude.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/amplitude.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -390,10 +390,17 @@ Amplitude.prototype._saveReferrer = function(referrer) {
390390
identify.setOnce('initial_referring_domain', referring_domain);
391391

392392
// only save referrer if not already in session storage or if storage disabled
393-
var hasSessionStorage = window.sessionStorage ? true : false;
394-
if ((hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER)) || !hasSessionStorage) {
395-
identify.set('referrer', referrer).set('referring_domain', referring_domain);
393+
var hasSessionStorage = false;
394+
try {
395+
if (window.sessionStorage) {
396+
hasSessionStorage = true;
397+
}
398+
} catch (e) {
399+
// log(e); // sessionStorage disabled
400+
}
396401

402+
if (!hasSessionStorage || (hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER))) {
403+
identify.set('referrer', referrer).set('referring_domain', referring_domain);
397404
if (hasSessionStorage) {
398405
window.sessionStorage.setItem(LocalStorageKeys.REFERRER, referrer);
399406
}

0 commit comments

Comments
 (0)