forked from mirrors/gecko-dev
		
	 03d1f5a511
			
		
	
	
		03d1f5a511
		
	
	
	
	
		
			
			This makes it possible to do the session storage restoration for session restore from the parent process. Differential Revision: https://phabricator.services.mozilla.com/D116007
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 | |
|  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| include protocol PBackground;
 | |
| include protocol PBackgroundSessionStorageManager;
 | |
| include PBackgroundSharedTypes;
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| 
 | |
| struct SSSetItemInfo
 | |
| {
 | |
|   nsString key;
 | |
|   nsString value;
 | |
| };
 | |
| 
 | |
| struct SSRemoveItemInfo
 | |
| {
 | |
|   nsString key;
 | |
| };
 | |
| 
 | |
| struct SSClearInfo
 | |
| {
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Union of SessionStorage mutation types.
 | |
|  */
 | |
| union SSWriteInfo
 | |
| {
 | |
|   SSSetItemInfo;
 | |
|   SSRemoveItemInfo;
 | |
|   SSClearInfo;
 | |
| };
 | |
| 
 | |
| struct SSCacheCopy {
 | |
|   nsCString originKey;
 | |
|   nsCString originAttributes;
 | |
|   SSSetItemInfo[] data;
 | |
| };
 | |
| 
 | |
| sync refcounted protocol PBackgroundSessionStorageCache
 | |
| {
 | |
|  manager PBackgroundSessionStorageManager;
 | |
| 
 | |
|  parent:
 | |
|   async DeleteMe();
 | |
| 
 | |
|   /**
 | |
|     * Copy SessionStorageCache from the parent process to the content process.
 | |
|     * See SessionStorageManager documentation for more details.
 | |
|     *
 | |
|     * This needs to be synchronous because SessionStorage's semantics are
 | |
|     * synchronous. Note that the BackgroundSessionStorageManager in the
 | |
|     * PBackground parent already has the answers to this request immediately
 | |
|     * available without needing to consult any other threads or perform any I/O.
 | |
|     */
 | |
|   sync Load()
 | |
|        returns (SSSetItemInfo[] aData);
 | |
| 
 | |
|   /**
 | |
|    * Send changes for SessionStorageCache from a content process to the parent
 | |
|    * process so that the data in the parent can be updated to be in sync with
 | |
|    * the content. See SessionStorageManager documentation for more details.
 | |
|    */
 | |
|   async Checkpoint(SSWriteInfo[] aWriteInfos);
 | |
| 
 | |
|  child:
 | |
|    async __delete__();
 | |
| };
 | |
| 
 | |
| } // namespace dom
 | |
| } // namespace mozilla
 |