1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // See chrome/browser/extensions/web_view_interactive_browsertest.cc
6 // (WebViewInteractiveTest, PointerLock) for documentation on this test.
9 var startTest = function() {
10 window.addEventListener('message', receiveMessage, false);
11 chrome.test.sendMessage('guest-loaded');
12 var webview = document.getElementById('webview');
13 webview.addEventListener('loadstop', function(e) {
14 webview.contentWindow.postMessage('msg', '*');
16 webview.addEventListener('permissionrequest', function(e) {
17 if (requestCount == 0) {
18 setTimeout(function() {
22 chrome.test.sendMessage('request exception');
25 } else if (requestCount == 1) {
27 } else if (requestCount == 2) {
28 if (e.permission == 'pointerLock' && !e.lastUnlockedBySelf &&
29 e.url == guestURL && e.userGesture) {
31 setTimeout(function() { e.request.allow(); }, 0);
33 if (e.permission != 'pointerLock') {
34 console.log('Permission was, "' + e.permission + '" when it ' +
35 'should have been "pointerLock"');
37 if (e.lastUnlockedBySelf) {
38 console.log('e.lastUnlockedBySelf should have been false.');
40 if (e.url == guestURL) {
41 console.log('e.url was, "' + e.url + '" when it ' +
42 'should have been "' + guestURL + '"');
45 console.log('e.userGesture should have been true.');
48 } else if (requestCount == 3) {
49 if (e.permission == 'pointerLock' && e.url == guestURL && e.userGesture) {
52 if (e.permission != 'pointerLock') {
53 console.log('Permission was, "' + e.permission + '" when it ' +
54 'should have been "pointerLock"');
56 if (e.url == guestURL) {
57 console.log('e.url was, "' + e.url + '" when it ' +
58 'should have been "' + guestURL + '"');
61 console.log('e.userGesture should have been true.');
69 var receiveMessage = function(event) {
70 if (event.data == 'Pointer was not locked to locktarget1.') {
72 chrome.test.fail(event.data);
73 } else if (event.data == 'delete me') {
74 var webview_container = document.getElementById('webview-tag-container');
75 webview_container.parentNode.removeChild(webview_container);
76 setTimeout(function() { chrome.test.sendMessage('timeout'); }, 5000);
77 document.getElementById('mousemove-capture-container').addEventListener(
78 'mousemove', function (e) {
79 console.log('move-captured');
80 chrome.test.sendMessage('move-captured');
82 console.log('deleted');
83 chrome.test.sendMessage('deleted');
86 chrome.test.sendMessage(event.data);
90 chrome.test.getConfig(function(config) {
91 guestURL = 'http://localhost:' + config.testServer.port +
92 '/extensions/platform_apps/web_view/pointer_lock/guest.html';
93 document.querySelector('#webview-tag-container').innerHTML =
94 '<webview id=\'webview\' style="width: 400px; height: 400px; ' +
95 'margin: 0; padding: 0;"' +
96 ' src="' + guestURL + '"' +