forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
 | 
						|
 * 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/. */
 | 
						|
import { SessionStore } from "resource:///modules/sessionstore/SessionStore.sys.mjs";
 | 
						|
 | 
						|
export function UpdateSessionStore(
 | 
						|
  aBrowser,
 | 
						|
  aBrowsingContext,
 | 
						|
  aPermanentKey,
 | 
						|
  aEpoch,
 | 
						|
  aCollectSHistory,
 | 
						|
  aData
 | 
						|
) {
 | 
						|
  return SessionStoreFuncInternal.updateSessionStore(
 | 
						|
    aBrowser,
 | 
						|
    aBrowsingContext,
 | 
						|
    aPermanentKey,
 | 
						|
    aEpoch,
 | 
						|
    aCollectSHistory,
 | 
						|
    aData
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
export function UpdateSessionStoreForStorage(
 | 
						|
  aBrowser,
 | 
						|
  aBrowsingContext,
 | 
						|
  aPermanentKey,
 | 
						|
  aEpoch,
 | 
						|
  aData
 | 
						|
) {
 | 
						|
  return SessionStoreFuncInternal.updateSessionStoreForStorage(
 | 
						|
    aBrowser,
 | 
						|
    aBrowsingContext,
 | 
						|
    aPermanentKey,
 | 
						|
    aEpoch,
 | 
						|
    aData
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
var SessionStoreFuncInternal = {
 | 
						|
  updateSessionStore: function SSF_updateSessionStore(
 | 
						|
    aBrowser,
 | 
						|
    aBrowsingContext,
 | 
						|
    aPermanentKey,
 | 
						|
    aEpoch,
 | 
						|
    aCollectSHistory,
 | 
						|
    aData
 | 
						|
  ) {
 | 
						|
    let { formdata, scroll } = aData;
 | 
						|
 | 
						|
    if (formdata) {
 | 
						|
      aData.formdata = formdata.toJSON();
 | 
						|
    }
 | 
						|
 | 
						|
    if (scroll) {
 | 
						|
      aData.scroll = scroll.toJSON();
 | 
						|
    }
 | 
						|
 | 
						|
    SessionStore.updateSessionStoreFromTablistener(
 | 
						|
      aBrowser,
 | 
						|
      aBrowsingContext,
 | 
						|
      aPermanentKey,
 | 
						|
      {
 | 
						|
        data: aData,
 | 
						|
        epoch: aEpoch,
 | 
						|
        sHistoryNeeded: aCollectSHistory,
 | 
						|
      }
 | 
						|
    );
 | 
						|
  },
 | 
						|
 | 
						|
  updateSessionStoreForStorage: function SSF_updateSessionStoreForStorage(
 | 
						|
    aBrowser,
 | 
						|
    aBrowsingContext,
 | 
						|
    aPermanentKey,
 | 
						|
    aEpoch,
 | 
						|
    aData
 | 
						|
  ) {
 | 
						|
    SessionStore.updateSessionStoreFromTablistener(
 | 
						|
      aBrowser,
 | 
						|
      aBrowsingContext,
 | 
						|
      aPermanentKey,
 | 
						|
      { data: { storage: aData }, epoch: aEpoch },
 | 
						|
      true
 | 
						|
    );
 | 
						|
  },
 | 
						|
};
 |