Is all of this check needed now that we have a sessionStorage polyfill in v3.1? There shouldn't be a case where window.sessionStorage is undefined with the polyfill.