Stop using sessionStorage in CryptPad
parent
9f96b737e7
commit
733db7d39f
@ -1,9 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html class="cp">
|
|
||||||
<head>
|
|
||||||
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
|
|
||||||
<script data-bootload="main.js" data-main="/common/boot.js" src="/bower_components/requirejs/require.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="html">
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,271 +0,0 @@
|
|||||||
// This file defines all of the RPC calls which are used between the inner and outer iframe.
|
|
||||||
// Define *querys* (which expect a response) using Q_<query name>
|
|
||||||
// Define *events* (which expect no response) using EV_<event name>
|
|
||||||
// Please document the queries and events you create, and please please avoid making generic
|
|
||||||
// "do stuff" events/queries which are used for many different things because it makes the
|
|
||||||
// protocol unclear.
|
|
||||||
//
|
|
||||||
// WARNING: At this point, this protocol is still EXPERIMENTAL. This is not it's final form.
|
|
||||||
// We need to define protocol one piece at a time and then when we are satisfied that we
|
|
||||||
// fully understand the problem, we will define the *right* protocol and this file will be dynomited.
|
|
||||||
//
|
|
||||||
define({
|
|
||||||
// When the iframe first launches, this query is sent repeatedly by the controller
|
|
||||||
// to wait for it to awake and give it the requirejs config to use.
|
|
||||||
'Q_INIT': true,
|
|
||||||
|
|
||||||
// When either the outside or inside registers a query handler, this is sent.
|
|
||||||
'EV_REGISTER_HANDLER': true,
|
|
||||||
|
|
||||||
// When an iframe is ready to receive messages
|
|
||||||
'EV_RPC_READY': true,
|
|
||||||
|
|
||||||
// Realtime events called from the outside.
|
|
||||||
// When someone joins the pad, argument is a string with their netflux id.
|
|
||||||
'EV_RT_JOIN': true,
|
|
||||||
// When someone leaves the pad, argument is a string with their netflux id.
|
|
||||||
'EV_RT_LEAVE': true,
|
|
||||||
// When you have been disconnected, no arguments.
|
|
||||||
'EV_RT_DISCONNECT': true,
|
|
||||||
// When you have connected, argument is an object with myID: string, members: list, readOnly: boolean.
|
|
||||||
'EV_RT_CONNECT': true,
|
|
||||||
// Called after the history is finished synchronizing, no arguments.
|
|
||||||
'EV_RT_READY': true,
|
|
||||||
// Called when the server returns an error in a pad (EEXPIRED, EDELETED).
|
|
||||||
'EV_RT_ERROR': true,
|
|
||||||
// Called from both outside and inside, argument is a (string) chainpad message.
|
|
||||||
'Q_RT_MESSAGE': true,
|
|
||||||
|
|
||||||
// Called from the outside, this informs the inside whenever the user's data has been changed.
|
|
||||||
// The argument is the object representing the content of the user profile minus the netfluxID
|
|
||||||
// which changes per-reconnect.
|
|
||||||
'EV_METADATA_UPDATE': true,
|
|
||||||
|
|
||||||
// Takes one argument only, the title to set for the CURRENT pad which the user is looking at.
|
|
||||||
// This changes the pad title in drive ONLY, the pad title needs to be changed inside of the
|
|
||||||
// iframe and synchronized with the other users. This will not trigger a EV_METADATA_UPDATE
|
|
||||||
// because the metadata contained in EV_METADATA_UPDATE does not contain the pad title.
|
|
||||||
// It also sets the page (tab) title to the selected title, unles it is overridden by
|
|
||||||
// the EV_SET_TAB_TITLE event.
|
|
||||||
'Q_SET_PAD_TITLE_IN_DRIVE': true,
|
|
||||||
// Set the page title (tab title) to the selected value which will override the pad title.
|
|
||||||
// The new title value can contain {title}, which will be replaced by the pad title when it
|
|
||||||
// is set or modified.
|
|
||||||
'EV_SET_TAB_TITLE': true,
|
|
||||||
|
|
||||||
// Update the user's display-name which will be shown to contacts and people in the same pads.
|
|
||||||
'Q_SETTINGS_SET_DISPLAY_NAME': true,
|
|
||||||
|
|
||||||
// Log the user out in all the tabs
|
|
||||||
'Q_LOGOUT': true,
|
|
||||||
// Tell the user that he has been logged out from outside (probably from another tab)
|
|
||||||
'EV_LOGOUT': true,
|
|
||||||
|
|
||||||
// When moving to the login or register page from a pad, we need to redirect to that pad at the
|
|
||||||
// end of the login process. This query set the current href to the sessionStorage.
|
|
||||||
'Q_SET_LOGIN_REDIRECT': true,
|
|
||||||
|
|
||||||
// Store the editing or readonly link of the current pad to the clipboard (share button).
|
|
||||||
'Q_STORE_LINK_TO_CLIPBOARD': true,
|
|
||||||
|
|
||||||
// Use anonymous rpc from inside the iframe (for avatars & pin usage).
|
|
||||||
'Q_ANON_RPC_MESSAGE': true,
|
|
||||||
|
|
||||||
// Get the user's pin limit, usage and plan
|
|
||||||
'Q_PIN_GET_USAGE': true,
|
|
||||||
|
|
||||||
// Write/update the login block when the account password is changed
|
|
||||||
'Q_WRITE_LOGIN_BLOCK': true,
|
|
||||||
|
|
||||||
// Remove login blocks
|
|
||||||
'Q_REMOVE_LOGIN_BLOCK': true,
|
|
||||||
|
|
||||||
// Check the pin limit to determine if we can store the pad in the drive or if we should.
|
|
||||||
// display a warning
|
|
||||||
'Q_GET_PIN_LIMIT_STATUS': true,
|
|
||||||
|
|
||||||
// Move a pad to the trash when using the forget button.
|
|
||||||
'Q_MOVE_TO_TRASH': true,
|
|
||||||
|
|
||||||
// Request the full history from the server when the users clicks on the history button.
|
|
||||||
// Callback is called when the FULL_HISTORY_END message is received in the outside.
|
|
||||||
'Q_GET_FULL_HISTORY': true,
|
|
||||||
'Q_GET_HISTORY_RANGE': true,
|
|
||||||
// When a (full) history message is received from the server.
|
|
||||||
'EV_RT_HIST_MESSAGE': true,
|
|
||||||
|
|
||||||
// Save a pad as a template using the toolbar button
|
|
||||||
'Q_SAVE_AS_TEMPLATE': true,
|
|
||||||
|
|
||||||
// Friend requests from the userlist
|
|
||||||
'Q_SEND_FRIEND_REQUEST': true, // Up query
|
|
||||||
'Q_INCOMING_FRIEND_REQUEST': true, // Down query
|
|
||||||
'EV_FRIEND_REQUEST': true, // Down event when the request is complete
|
|
||||||
|
|
||||||
// Set the tab notification when the content of the pad changes
|
|
||||||
'EV_NOTIFY': true,
|
|
||||||
|
|
||||||
// Send the new settings to the inner iframe when they are changed in the proxy
|
|
||||||
'EV_SETTINGS_UPDATE': true,
|
|
||||||
|
|
||||||
// Get and set (pad) attributes stored in the drive from the inner iframe
|
|
||||||
'Q_GET_ATTRIBUTE': true,
|
|
||||||
'Q_SET_ATTRIBUTE': true,
|
|
||||||
'Q_GET_PAD_ATTRIBUTE': true,
|
|
||||||
'Q_SET_PAD_ATTRIBUTE': true,
|
|
||||||
|
|
||||||
// Check if a pad is only in a shared folder or (also) in the main drive.
|
|
||||||
// This allows us to change the behavior of some buttons (trash icon...)
|
|
||||||
'Q_IS_ONLY_IN_SHARED_FOLDER': true,
|
|
||||||
|
|
||||||
// Open/close the File picker (sent from the iframe to the outside)
|
|
||||||
'EV_FILE_PICKER_OPEN': true,
|
|
||||||
'EV_FILE_PICKER_CLOSE': true,
|
|
||||||
'EV_FILE_PICKER_REFRESH': true,
|
|
||||||
// File selected in the file picker: sent from the filepicker iframe to the outside
|
|
||||||
// and then send to the inner iframe
|
|
||||||
'EV_FILE_PICKED': true,
|
|
||||||
|
|
||||||
// Get all the files from the drive to display them in a file picker secure app
|
|
||||||
'Q_GET_FILES_LIST': true,
|
|
||||||
|
|
||||||
// Template picked, replace the content of the pad
|
|
||||||
'Q_TEMPLATE_USE': true,
|
|
||||||
// Check if we have template(s) for the selected pad type
|
|
||||||
'Q_TEMPLATE_EXIST': true,
|
|
||||||
|
|
||||||
// File upload queries and events
|
|
||||||
'Q_UPLOAD_FILE': true,
|
|
||||||
'EV_FILE_UPLOAD_STATE': true,
|
|
||||||
'Q_CANCEL_PENDING_FILE_UPLOAD': true,
|
|
||||||
|
|
||||||
// Make the browser window navigate to a given URL, if no URL is passed then it will reload.
|
|
||||||
'EV_GOTO_URL': true,
|
|
||||||
// Make the parent window open a given URL in a new tab. It allows us to keep sessionStorage
|
|
||||||
// form the parent window.
|
|
||||||
'EV_OPEN_URL': true,
|
|
||||||
|
|
||||||
// Present mode URL
|
|
||||||
'Q_PRESENT_URL_GET_VALUE': true,
|
|
||||||
'EV_PRESENT_URL_SET_VALUE': true,
|
|
||||||
|
|
||||||
// Put one or more entries to the cache which will go in localStorage.
|
|
||||||
// Cache is wiped after each new release
|
|
||||||
'EV_CACHE_PUT': true,
|
|
||||||
|
|
||||||
// Chat
|
|
||||||
'EV_CHAT_EVENT': true,
|
|
||||||
'Q_CHAT_COMMAND': true,
|
|
||||||
'Q_CHAT_OPENPADCHAT': true,
|
|
||||||
|
|
||||||
// Cursor
|
|
||||||
'EV_CURSOR_EVENT': true,
|
|
||||||
'Q_CURSOR_COMMAND': true,
|
|
||||||
'Q_CURSOR_OPENCHANNEL': true,
|
|
||||||
|
|
||||||
// Put one or more entries to the localStore which will go in localStorage.
|
|
||||||
'EV_LOCALSTORE_PUT': true,
|
|
||||||
// Put one entry in the parent sessionStorage
|
|
||||||
'Q_SESSIONSTORAGE_PUT': true,
|
|
||||||
|
|
||||||
// Merge the anonymous drive (FS_hash) into the current logged in user's drive, to keep the pads
|
|
||||||
// in the drive at registration.
|
|
||||||
'Q_MERGE_ANON_DRIVE': true,
|
|
||||||
|
|
||||||
// Add or remove the avatar from the profile.
|
|
||||||
// We have to pin/unpin the avatar and store/remove the value from the user object
|
|
||||||
'Q_PROFILE_AVATAR_ADD': true,
|
|
||||||
'Q_PROFILE_AVATAR_REMOVE': true,
|
|
||||||
|
|
||||||
// Store outside and get thumbnails inside (stored with localForage (indexedDB) outside)
|
|
||||||
'Q_THUMBNAIL_SET': true,
|
|
||||||
'Q_THUMBNAIL_GET': true,
|
|
||||||
|
|
||||||
// Settings app only
|
|
||||||
// Clear all thumbnails
|
|
||||||
'Q_THUMBNAIL_CLEAR': true,
|
|
||||||
// Backup and restore a drive
|
|
||||||
'Q_SETTINGS_DRIVE_GET': true,
|
|
||||||
'Q_SETTINGS_DRIVE_SET': true,
|
|
||||||
'Q_SETTINGS_DRIVE_RESET': true,
|
|
||||||
// Logout from all the devices where the account is logged in
|
|
||||||
'Q_SETTINGS_LOGOUT': true,
|
|
||||||
// Import pads from this computer's anon session into the current user account
|
|
||||||
'Q_SETTINGS_IMPORT_LOCAL': true,
|
|
||||||
'Q_SETTINGS_DELETE_ACCOUNT': true,
|
|
||||||
|
|
||||||
// Store the language selected in the iframe into localStorage outside
|
|
||||||
'Q_LANGUAGE_SET': true,
|
|
||||||
|
|
||||||
// Anonymous users can empty their drive and remove FS_hash from localStorage
|
|
||||||
'EV_BURN_ANON_DRIVE': true,
|
|
||||||
// Inner drive needs to send command and receive updates from the async store
|
|
||||||
'Q_DRIVE_USEROBJECT': true,
|
|
||||||
'Q_DRIVE_GETOBJECT': true,
|
|
||||||
'Q_DRIVE_RESTORE': true,
|
|
||||||
// Get the pads deleted from the server by other users to remove them from the drive
|
|
||||||
'Q_DRIVE_GETDELETED': true,
|
|
||||||
// Store's userObject need to send log messages to inner to display them in the UI
|
|
||||||
'EV_DRIVE_LOG': true,
|
|
||||||
// Refresh the drive when the drive has changed ('change' or 'remove' events)
|
|
||||||
'EV_DRIVE_CHANGE': true,
|
|
||||||
'EV_DRIVE_REMOVE': true,
|
|
||||||
// Set shared folder hash in the address bar
|
|
||||||
'EV_DRIVE_SET_HASH': true,
|
|
||||||
|
|
||||||
// Remove an owned pad from the server
|
|
||||||
'Q_REMOVE_OWNED_CHANNEL': true,
|
|
||||||
// Clear an owned pad from the server (preserve metadata)
|
|
||||||
'Q_CLEAR_OWNED_CHANNEL': true,
|
|
||||||
|
|
||||||
// Notifications about connection and disconnection from the network
|
|
||||||
'EV_NETWORK_DISCONNECT': true,
|
|
||||||
'EV_NETWORK_RECONNECT': true,
|
|
||||||
// Reload on new version
|
|
||||||
'EV_NEW_VERSION': true,
|
|
||||||
|
|
||||||
// Pad creation screen: create a pad with the selected attributes (owned, expire)
|
|
||||||
'Q_CREATE_PAD': true,
|
|
||||||
// Get the available templates
|
|
||||||
'Q_CREATE_TEMPLATES': true,
|
|
||||||
|
|
||||||
// This is for sending data out of the iframe when we are in testing mode
|
|
||||||
// The exact protocol is defined in common/test.js
|
|
||||||
'EV_TESTDATA': true,
|
|
||||||
|
|
||||||
// OnlyOffice: save a new version
|
|
||||||
'Q_OO_SAVE': true,
|
|
||||||
|
|
||||||
// Ask for the pad password when a pad is protected
|
|
||||||
'EV_PAD_PASSWORD': true,
|
|
||||||
'Q_PAD_PASSWORD_VALUE': true,
|
|
||||||
// Change pad password
|
|
||||||
'Q_PAD_PASSWORD_CHANGE': true,
|
|
||||||
|
|
||||||
// Migrate drive to owned drive
|
|
||||||
'Q_CHANGE_USER_PASSWORD': true,
|
|
||||||
|
|
||||||
// Loading events to display in the loading screen
|
|
||||||
'EV_LOADING_INFO': true,
|
|
||||||
// Critical error outside the iframe during loading screen
|
|
||||||
'EV_LOADING_ERROR': true,
|
|
||||||
|
|
||||||
// Chrome 68 bug...
|
|
||||||
'EV_CHROME_68': true,
|
|
||||||
|
|
||||||
// Get all existing tags
|
|
||||||
'Q_GET_ALL_TAGS': true,
|
|
||||||
|
|
||||||
// Store pads in the drive
|
|
||||||
'EV_AUTOSTORE_DISPLAY_POPUP': true,
|
|
||||||
'Q_AUTOSTORE_STORE': true,
|
|
||||||
'Q_IS_PAD_STORED': true,
|
|
||||||
|
|
||||||
// Import mediatag from a pad
|
|
||||||
'Q_IMPORT_MEDIATAG': true,
|
|
||||||
|
|
||||||
// Ability to get a pad's content from its hash
|
|
||||||
'Q_CRYPTGET': true,
|
|
||||||
'EV_CRYPTGET_DISCONNECT': true,
|
|
||||||
|
|
||||||
});
|
|
@ -1,5 +1,4 @@
|
|||||||
define(['/bower_components/localforage/dist/localforage.min.js'], function (localForage) {
|
define(['/bower_components/localforage/dist/localforage.min.js'], function (localForage) {
|
||||||
localForage.clear();
|
localForage.clear();
|
||||||
sessionStorage.clear();
|
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue