chromium/chrome/test/data/extensions/platform_apps/web_view/load_webview_inside_iframe/embedder.js

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

var embedder = {};
embedder.guestURL = '';

window.runTest = function(testName) {
  if (testName == 'testLoadWebviewInsideIframe') {
    testLoadWebviewInsideIframe();
  } else {
    window.console.log('Incorrect testName: ' + testName);
    chrome.test.sendMessage('TEST_FAILED');
  }
}

function testLoadWebviewInsideIframe() {
  var iframe = document.querySelector('iframe');
  var webview = iframe.contentDocument.querySelector('webview');

  if (webview.contentWindow === undefined) {
    window.console.log('The webview was not initialized.');
    chrome.test.sendMessage('TEST_FAILED');
    return;
  }

  webview.addEventListener('loadstop', function() {
    window.addEventListener('message', function(e) {
      if (e.data == 'TEST_PASSED') {
        chrome.test.sendMessage('TEST_PASSED');
      } else {
        chrome.test.sendMessage('TEST_FAILED');
      }
    });
    webview.contentWindow.postMessage('TEST_START', '*');
  });

  webview.src = embedder.guestURL;
};

onload = function() {
  chrome.test.getConfig(function(config) {
    embedder.guestURL =
        'http://localhost:' + config.testServer.port +
        '/extensions/platform_apps/web_view/load_webview_inside_iframe/' +
        'guest.html';
    chrome.test.sendMessage('Launched');
  });
};