<html>
<script type="text/javascript" charset="utf-8">
  if (window.opener) {
    window.callback = () => {
      opener.require('electron').ipcRenderer.send('answer', document.body.innerHTML)
    }
  } else {
    const {ipcRenderer} = require('electron')
    const tests = {
      'window-events': () => {
        document.title = 'changed'
      },
      'webcontents-stop': () => {
        stop()
      },
      'webcontents-events': () => {
        addEventListener('load', () => {
          location.hash = 'in-page-navigate'
          setTimeout(() => {
            location.reload()
          }, 50)
        })
      },
      'exit-event': () => {
        process.on('exit', () => {
          ipcRenderer.send('answer', location.href)
        })
        location.assign('http://www.google.com')
      },
      'window-open': () => {
        addEventListener('load', () => {
          popup = open(window.location.href, 'popup!', 'top=60,left=50,width=500,height=600')
          popup.addEventListener('DOMContentLoaded', () => {
            popup.document.write('<h1>scripting from opener</h1>')
            popup.callback()
          }, false)
        })
      },
      'window-open-external': () => {
        addEventListener('load', () => {
          ipcRenderer.once('child-loaded', (e) => {
            try {
              let childDoc = popup.document
            } catch (e) {
              ipcRenderer.send('answer', e.message)
            }
          })
          popup = open('http://www.google.com/#q=electron', '', 'top=65,left=55,width=505,height=605')
        })
      },
      'verify-ipc-sender': () => {
        popup = open()
        ipcRenderer.once('verified', () => {
          ipcRenderer.send('parent-answer')
        })
        popup.ipcRenderer.once('verified', () => {
          popup.ipcRenderer.send('child-answer')
        })
        setTimeout(() => {
          ipcRenderer.send('parent-ready')
          popup.ipcRenderer.send('child-ready')
        }, 50)
      }
    }

    addEventListener('unload', () => {
      if (window.popup)
        popup.close()
    }, false)

    let [,test] = window.location.href.split('?')
    if (tests.hasOwnProperty(test))
      tests[test]()
  }
</script>
</html>