chromium/chrome/test/data/extensions/app_forbidden_apis/onbeforeunload/background.js

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

'use strict';

var didRun = sessionStorage.didRun;

function beforeUnload() {
  chrome.test.fail();
}

try {
  delete window.onbeforeunload;
  window.onbeforeunload = beforeUnload;
} catch (e) {}

try {
  window.addEventListener('beforeunload', beforeUnload);
} catch (e) {}

try {
  var beforeUnloadTricky = {
    toString: function() {
      beforeUnloadTricky.toString = function() { return 'beforeunload'; };
      return 'something not beforeunload';
    }
  };
  window.addEventListener(beforeUnloadTricky, beforeUnload);
} catch (e) {}

if (!didRun) {
  sessionStorage.didRun = true;
  location.reload();
} else {
  chrome.test.succeed();
}