Skip to content

Commit 2bb711e

Browse files
committed
handle sessionstorage disabled for saveReferrer
1 parent 274a664 commit 2bb711e

File tree

6 files changed

+30
-12
lines changed

6 files changed

+30
-12
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-segment-snippet.min.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
(function(e,t){var r=e.amplitude||{};var n=function(){this._q=[];return this};function s(e){
1+
(function(e,t){var r=e.amplitude||{};var n=function(){this._q=[];return this};function i(e){
22
n.prototype[e]=function(){this._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
3-
return this}}var i=["add","append","clearAll","set","setOnce","unset"];for(var o=0;o<i.length;o++){
4-
s(i[o])}r.Identify=n;r._q=[];function a(e){r[e]=function(){r._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
3+
return this}}var o=["add","append","clearAll","set","setOnce","unset"];for(var s=0;s<o.length;s++){
4+
i(o[s])}r.Identify=n;r._q=[];function a(e){r[e]=function(){r._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
55
}}var c=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties"];
66
for(var l=0;l<c.length;l++){a(c[l])}e.amplitude=r})(window,document);

amplitude-snippet.min.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
(function(e,t){var n=e.amplitude||{};var r=t.createElement("script");r.type="text/javascript";
22
r.async=true;r.src="https://d24n15hnbwhuhn.cloudfront.net/libs/amplitude-2.9.0-min.gz.js";
33
r.onload=function(){e.amplitude.runQueuedFunctions()};var s=t.getElementsByTagName("script")[0];
4-
s.parentNode.insertBefore(r,s);var i=function(){this._q=[];return this};function a(e){
4+
s.parentNode.insertBefore(r,s);var i=function(){this._q=[];return this};function o(e){
55
i.prototype[e]=function(){this._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
6-
return this}}var o=["add","append","clearAll","set","setOnce","unset"];for(var c=0;c<o.length;c++){
7-
a(o[c])}n.Identify=i;n._q=[];function u(e){n[e]=function(){n._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
6+
return this}}var a=["add","append","clearAll","set","setOnce","unset"];for(var c=0;c<a.length;c++){
7+
o(a[c])}n.Identify=i;n._q=[];function u(e){n[e]=function(){n._q.push([e].concat(Array.prototype.slice.call(arguments,0)));
88
}}var l=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties"];
99
for(var p=0;p<l.length;p++){u(l[p])}e.amplitude=n})(window,document);

amplitude.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,16 @@ 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) {
499+
var hasSessionStorage = false;
500+
try {
501+
if (window.sessionStorage) {
502+
hasSessionStorage = true;
503+
}
504+
} catch (e) {
505+
// log(e); // sessionStorage disabled
506+
}
507+
508+
if (!hasSessionStorage || (hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER))) {
501509
identify.set('referrer', referrer).set('referring_domain', referring_domain);
502510

503511
if (hasSessionStorage) {

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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,8 +390,16 @@ 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) {
393+
var hasSessionStorage = false;
394+
try {
395+
if (window.sessionStorage) {
396+
hasSessionStorage = true;
397+
}
398+
} catch (e) {
399+
// log(e); // sessionStorage disabled
400+
}
401+
402+
if (!hasSessionStorage || (hasSessionStorage && !window.sessionStorage.getItem(LocalStorageKeys.REFERRER))) {
395403
identify.set('referrer', referrer).set('referring_domain', referring_domain);
396404

397405
if (hasSessionStorage) {

0 commit comments

Comments
 (0)