Add a SessionPreferences to manage session related data
By design the BrowserClient should not be aware of the api:: classes.
This commit is contained in:
		
					parent
					
						
							
								776e8afa2b
							
						
					
				
			
			
				commit
				
					
						cb3a9c69ab
					
				
			
		
					 18 changed files with 190 additions and 94 deletions
				
			
		| 
						 | 
				
			
			@ -1022,39 +1022,39 @@ describe('BrowserWindow module', () => {
 | 
			
		|||
    })
 | 
			
		||||
 | 
			
		||||
    describe('session preload scripts', function () {
 | 
			
		||||
      it('can add and remove multiple session preload script', function () {
 | 
			
		||||
        var preload = path.join(fixtures, 'module', 'set-global.js')
 | 
			
		||||
        var preload2 = path.join(fixtures, 'module', 'set-global-2.js')
 | 
			
		||||
        const mSession = session.defaultSession
 | 
			
		||||
        assert.deepEqual(mSession.getPreloads(), [])
 | 
			
		||||
        mSession.addPreload(preload)
 | 
			
		||||
        assert.deepEqual(mSession.getPreloads(), [preload])
 | 
			
		||||
        mSession.addPreload(preload2)
 | 
			
		||||
        assert.deepEqual(mSession.getPreloads(), [preload, preload2])
 | 
			
		||||
        mSession.removePreload(preload)
 | 
			
		||||
        assert.deepEqual(mSession.getPreloads(), [preload2])
 | 
			
		||||
        mSession.removePreload(preload2)
 | 
			
		||||
        assert.deepEqual(mSession.getPreloads(), [])
 | 
			
		||||
      const preloads = [
 | 
			
		||||
        path.join(fixtures, 'module', 'set-global-preload-1.js'),
 | 
			
		||||
        path.join(fixtures, 'module', 'set-global-preload-2.js')
 | 
			
		||||
      ]
 | 
			
		||||
      const defaultSession = session.defaultSession
 | 
			
		||||
 | 
			
		||||
      beforeEach(() => {
 | 
			
		||||
        assert.deepEqual(defaultSession.getPreloads(), [])
 | 
			
		||||
        defaultSession.setPreloads(preloads)
 | 
			
		||||
      })
 | 
			
		||||
      afterEach(() => {
 | 
			
		||||
        defaultSession.setPreloads([])
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      it('can set multiple session preload script', function () {
 | 
			
		||||
        assert.deepEqual(defaultSession.getPreloads(), preloads)
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      it('loads the script before other scripts in window including normal preloads', function (done) {
 | 
			
		||||
        var preload = path.join(fixtures, 'module', 'set-global.js')
 | 
			
		||||
        var preload2 = path.join(fixtures, 'module', 'set-global-2.js')
 | 
			
		||||
        const mSession = session.defaultSession
 | 
			
		||||
        ipcMain.once('answer', function (event, test) {
 | 
			
		||||
          mSession.removePreload(preload2)
 | 
			
		||||
          assert.equal(test, 'preload2')
 | 
			
		||||
        ipcMain.once('vars', function (event, preload1, preload2, preload3) {
 | 
			
		||||
          assert.equal(preload1, 'preload-1')
 | 
			
		||||
          assert.equal(preload2, 'preload-1-2')
 | 
			
		||||
          assert.equal(preload3, 'preload-1-2-3')
 | 
			
		||||
          done()
 | 
			
		||||
        })
 | 
			
		||||
        w.destroy()
 | 
			
		||||
        mSession.addPreload(preload2)
 | 
			
		||||
        w = new BrowserWindow({
 | 
			
		||||
          show: false,
 | 
			
		||||
          webPreferences: {
 | 
			
		||||
            preload: preload
 | 
			
		||||
            preload: path.join(fixtures, 'module', 'set-global-preload-3.js')
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        w.loadURL('file://' + path.join(fixtures, 'api', 'preload.html'))
 | 
			
		||||
        w.loadURL('file://' + path.join(fixtures, 'api', 'preloads.html'))
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue