Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-12505

JS Error with session storage when using Safari in private browsing mode

    Details

    • Type: Task Task
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • 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-11699Modify how JS errors are displayed in development to not use growls
    • 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.

        Issue Links

          Activity

          Hide
          Martin Taylor (Inactive) added a comment - - edited

          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.

          Show
          Martin Taylor (Inactive) added a comment - - edited 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.
          Hide
          Martin Taylor (Inactive) added a comment -

          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.

          Show
          Martin Taylor (Inactive) added a comment - 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.

            People

            • Assignee:
              Martin Taylor (Inactive)
              Reporter:
              Adam Campbell (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 0 minutes
                0m
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 4 hours
                4h

                  Agile

                    Structure Helper Panel