[KULRICE-12505] JS Error with session storage when using Safari in private browsing mode Created: 15/Apr/14  Updated: 16/Jan/15

Status: Open
Project: Kuali Rice Development
Component/s: Development, User Experience (UX)
Affects Version/s: None
Fix Version/s: Backlog
Security Level: Public (Public: Anyone can view)

Type: Task Priority: Major
Reporter: Adam Campbell (Inactive) Assignee: Martin Taylor (Inactive)
Resolution: Unresolved Votes: 0
Labels: Old
Remaining Estimate: 0 minutes
Time Spent: 4 hours
Original Estimate: 0 minutes

Attachments: Text File KULRICE-12505.2.patch    
Issue Links:
Relate
relates to KULRICE-12460 Can’t add/delete collection rows in S... Open
Similar issues:
KULRICE-12460Can’t add/delete collection rows in Safari in private browsing mode
KULRICE-12459JS error on loading any page in Safari 7.0.3 (OSX)
KULRICE-7012Limit the size of form storage in session
KULRICE-11143Login screen Javascript error (Safari Only)
KULRICE-6861JS error with refreshWhenChanged
KULRICE-12699Change theme builder JS compiler to use WHITESPACE_ONLY option
KULRICE-11217JS error when delete button is used in non table or stacked layout
KULRICE-6699Reduce view size for session storage and form clearling
KULRICE-8406JS eror when hover over the help icons After M4 update
KULRICE-9107KRAD Equivalency: Storage of the search results in the session backed by a table
Rice Module:
KRAD
Sprint: 2.4.0-rc1 Sprint 8
KAI Review Status: Not Required
KTI Review Status: Not Required
Code Review Status: Not Required
Include in Release Notes?:
Yes

 Description   

When using Safari 7.0.3 in private browsing mode the following error appears:

Javascript Error
QuotaExceededError: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota.
http://env14.rice.kuali.org/themes/kboot/scripts/kboot.2.4.0-M5-SNAPSHOT.min.js
1601

This is caused by lack of support for session storage in Safari 7 private browsing. Fix the check to note session storage is not supported and confirm no sporadic issues with undefined obj.length or data.warnings.length.



 Comments   
Comment by Martin Taylor (Inactive) [ 15/Apr/14 ]

Notes:
Regarding the Quota error. This is all related to storage option issues in private browsing. Tested:

function supportsSessionStorage() {

    if(isSupportsSessionStorage === undefined) {
        isSupportsSessionStorage = false;
        if(sessionStorage) {
            try {
                var mod = "utilityModification";
                sessionStorage.setItem(mod, mod);
                sessionStorage.removeItem(mod);
                isSupportsSessionStorage = true;
            } catch(e) {
                isSupportsSessionStorage = false;
            }
        }
    }

    return isSupportsSessionStorage;
}

to help track session support more accurately in safari (stored return value once so it could be reused) but I get several new errors in chrome private browsing unrelated to session storage.

Comment by Martin Taylor (Inactive) [ 16/Apr/14 ]

When testing session storage check, found that an Error is then thrown during setupPage() which prevents features such as actionsDefaults to be set (this can cause errors with functionality such as login/etc...). Since sessionStorage's issue is at the modification of a row (remove or setting), limited the support check to these. For reading (which happens in setupPage), I left it to check on sessionStorage alone. Read on session storage will not cause an error and simply return null which does not cause the page to fail to setup.

Generated at Thu Apr 02 10:15:26 CDT 2020 using JIRA 6.1.5#6160-sha1:a61a0fc278117a0da0ec9b89167b8f29b6afdab2.