From a3a35de62f91bb4e0ddcd06bf8c8107039a4748e Mon Sep 17 00:00:00 2001 From: Jesse Pollak Date: Tue, 20 May 2014 16:24:07 -0700 Subject: [PATCH 1/2] adds polyfill for localStorage to fix bug where Pubnub is in an embedded iframe in a browser with 3rd party cookies disabled --- web/pubnub.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/web/pubnub.js b/web/pubnub.js index 19533271b..d7964d208 100644 --- a/web/pubnub.js +++ b/web/pubnub.js @@ -2659,7 +2659,18 @@ console.log || ( * LOCAL STORAGE OR COOKIE */ var db = (function(){ - var ls = window['localStorage']; + try { + var ls = window['localStorage']; + } catch (e) { + var ls = { + _data : {}, + setItem : function(id, val) { return this._data[id] = String(val); }, + getItem : function(id) { return this._data.hasOwnProperty(id) ? this._data[id] : undefined; }, + removeItem : function(id) { return delete this._data[id]; }, + clear : function() { return this._data = {}; } + } + } + return { 'get' : function(key) { try { From 351fa54784f49eccb137b9fa0a6105c1cec71eed Mon Sep 17 00:00:00 2001 From: Jesse Pollak Date: Wed, 21 May 2014 09:40:33 -0700 Subject: [PATCH 2/2] moves fix to unassembled and adds it to modern as well --- modern/unassembled/platform.js | 13 ++++++++++++- web/pubnub.js | 12 +----------- web/unassembled/platform.js | 12 +++++++++++- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modern/unassembled/platform.js b/modern/unassembled/platform.js index a54e8d068..28e6d99f6 100644 --- a/modern/unassembled/platform.js +++ b/modern/unassembled/platform.js @@ -42,7 +42,18 @@ var NOW = 1 * LOCAL STORAGE */ var db = (function(){ - var ls = typeof localStorage != 'undefined' && localStorage; + try { + var ls = typeof localStorage != 'undefined' && localStorage; + } catch (e) { + var ls = { + _data : {}, + setItem : function(id, val) { return this._data[id] = String(val); }, + getItem : function(id) { return this._data.hasOwnProperty(id) ? this._data[id] : undefined; }, + removeItem : function(id) { return delete this._data[id]; }, + clear : function() { return this._data = {}; } + } + } + return { get : function(key) { try { diff --git a/web/pubnub.js b/web/pubnub.js index d7964d208..241727159 100644 --- a/web/pubnub.js +++ b/web/pubnub.js @@ -2659,17 +2659,7 @@ console.log || ( * LOCAL STORAGE OR COOKIE */ var db = (function(){ - try { - var ls = window['localStorage']; - } catch (e) { - var ls = { - _data : {}, - setItem : function(id, val) { return this._data[id] = String(val); }, - getItem : function(id) { return this._data.hasOwnProperty(id) ? this._data[id] : undefined; }, - removeItem : function(id) { return delete this._data[id]; }, - clear : function() { return this._data = {}; } - } - } + var ls = window['localStorage']; return { 'get' : function(key) { diff --git a/web/unassembled/platform.js b/web/unassembled/platform.js index 5147f614e..b2e373617 100644 --- a/web/unassembled/platform.js +++ b/web/unassembled/platform.js @@ -30,7 +30,17 @@ console.log || ( * LOCAL STORAGE OR COOKIE */ var db = (function(){ - var ls = window['localStorage']; + try { + var ls = window['localStorage']; + } catch (e) { + var ls = { + _data : {}, + setItem : function(id, val) { return this._data[id] = String(val); }, + getItem : function(id) { return this._data.hasOwnProperty(id) ? this._data[id] : undefined; }, + removeItem : function(id) { return delete this._data[id]; }, + clear : function() { return this._data = {}; } + } + } return { 'get' : function(key) { try {