| Index: chrome/test/data/extensions/platform_apps/web_view/filesystem/main/guest_main.html
|
| diff --git a/chrome/test/data/extensions/platform_apps/web_view/filesystem/main/guest_main.html b/chrome/test/data/extensions/platform_apps/web_view/filesystem/main/guest_main.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b499ebf95897c90702dbb0a574aca1d45ab6aadf
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/platform_apps/web_view/filesystem/main/guest_main.html
|
| @@ -0,0 +1,102 @@
|
| +<!--
|
| + * Copyright 2014 The Chromium Authors. All rights reserved. Use of this
|
| + * source code is governed by a BSD-style license that can be found in the
|
| + * LICENSE file.
|
| +-->
|
| +<html>
|
| + <head>
|
| + <script type="text/javascript">
|
| + // A guest that requests filesystem.
|
| + // Notifies the embedder about the result of the request (success/fail)
|
| + // via post message. Note that the embedder has to initiate a postMessage
|
| + // first so that guest has a reference to the embedder's window.
|
| +
|
| + // The window reference of the embedder to send post message reply.
|
| + var embedderWindowChannel = null;
|
| + window.requestFileSystem = window.requestFileSystem ||
|
| + window.webkitRequestFileSystem;
|
| + window.resolveLocalFileSystemURL = window.resolveLocalFileSystemURL ||
|
| + window.webkitResolveLocalFileSystemURL;
|
| +
|
| + var expectedTotalCallbackCount;
|
| + var totalCallbackCount;
|
| + var successCallbackCount;
|
| + var testName = 'uninitialized';
|
| +
|
| + var maybeNotifyEmbedder = function() {
|
| + window.console.log('maybeNotifyEmbedder' +
|
| + ', expectedTotalCallbackCount: ' +
|
| + expectedTotalCallbackCount +
|
| + ', successCallbackCount: ' +
|
| + successCallbackCount +
|
| + ', totalCallbackCount: ' +
|
| + totalCallbackCount);
|
| + if(expectedTotalCallbackCount == totalCallbackCount) {
|
| + var status = (expectedTotalCallbackCount == successCallbackCount) ?
|
| + 'access-granted' : 'access-denied';
|
| + var responseArray = [testName, status];
|
| + notifyEmbedder(responseArray);
|
| + }
|
| + };
|
| +
|
| + var notifyEmbedder = function(msg_array) {
|
| + embedderWindowChannel.postMessage(JSON.stringify(msg_array), '*');
|
| + };
|
| +
|
| + var startTest = function() {
|
| + expectedTotalCallbackCount = 1;
|
| + window.console.log('set totalCallbackCount to 0');
|
| + totalCallbackCount = 0;
|
| + successCallbackCount = 0;
|
| + window.console.log('Call requestFileSystemAccess');
|
| + requestFileSystemAccess();
|
| + };
|
| +
|
| + var requestFileSystemAccess = function() {
|
| + window.webkitStorageInfo.requestQuota(PERSISTENT, 1024 * 1024,
|
| + function(grantedBytes) {
|
| + window.console.log('request Quota granted.');
|
| + window.requestFileSystem(window.PERSISTENT, 1024*1024,
|
| + onFileSystemSuccess,
|
| + onFileSystemFailure);
|
| + }, function(e) { window.console.log('Error' + e); });
|
| + };
|
| +
|
| + var onFileSystemSuccess = function(filesystem) {
|
| + ++totalCallbackCount;
|
| + ++successCallbackCount;
|
| +
|
| + window.console.log('onFileSystemSuccess, successCallbackCount: ' +
|
| + successCallbackCount + ', totalCallbackCount: ' +
|
| + totalCallbackCount);
|
| +
|
| + maybeNotifyEmbedder();
|
| + };
|
| +
|
| + var onFileSystemFailure = function(err) {
|
| + ++totalCallbackCount;
|
| + window.console.log('onFileSystemFailure, totalCallbackCount: ' +
|
| + totalCallbackCount);
|
| + maybeNotifyEmbedder();
|
| + };
|
| +
|
| + var onPostMessageReceived = function(e) {
|
| + window.console.log('guest.onPostMessageReceived');
|
| + var data = JSON.parse(e.data);
|
| + if (data[0] == 'check-filesystem-permission') {
|
| + testName = data[1];
|
| + embedderWindowChannel = e.source;
|
| + // Start the test once we have |embedderWindowChannel|.
|
| + startTest();
|
| + }
|
| + };
|
| + addEventListener('message', onPostMessageReceived, false);
|
| + </script>
|
| + </head>
|
| + <body>
|
| + <div>This is a guest that requests filesystem.</div>
|
| + <script>
|
| + window.console.log('Guest loaded');
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|