example.js revision 868fa2fe829687343ffae624259930155e16dbd8
1// Copyright (c) 2012 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.
4
5// Called by the common.js module.
6function domContentLoaded(name, tc, config, width, height) {
7  window.webkitStorageInfo.requestQuota(window.PERSISTENT, 1024*1024,
8      function(bytes) {
9        common.updateStatus(
10            'Allocated '+bytes+' bytes of persistant storage.');
11        common.createNaClModule(name, tc, config, width, height);
12        common.attachDefaultListeners();
13      },
14      function(e) { alert('Failed to allocate space') });
15}
16
17// Called by the common.js module.
18function attachListeners() {
19  document.getElementById('saveButton').addEventListener('click', saveFile);
20  document.getElementById('loadButton').addEventListener('click', loadFile);
21  document.getElementById('deleteButton').addEventListener('click', deleteFile);
22  document.getElementById('listButton').addEventListener('click', listDir);
23}
24
25function loadFile() {
26  if (common.naclModule) {
27    var fileName = document.getElementById('fileName').value;
28
29    // Package a message using a simple protocol containing:
30    // instruction file_name_length file_name
31    var msg = "ld " + fileName.length + " " + fileName;
32    common.naclModule.postMessage(msg);
33  }
34}
35
36function saveFile() {
37  if (common.naclModule) {
38    var fileName = document.getElementById('fileName').value;
39    var fileText = document.getElementById('fileEditor').value;
40
41    // Package a message using a simple protocol containing:
42    // instruction file_name_length file_name file_contents
43    var msg = "sv " + fileName.length + " " + fileName + " " + fileText;
44    common.naclModule.postMessage(msg);
45  }
46}
47
48function deleteFile() {
49  if (common.naclModule) {
50    var fileName = document.getElementById('fileName').value;
51
52    // Package a message using a simple protocol containing:
53    // instruction file_name_length file_name
54    var msg = "de " + fileName.length + " " + fileName;
55    common.naclModule.postMessage(msg);
56  }
57}
58
59function listDir() {
60  if (common.naclModule) {
61    var dirName = document.getElementById('dirName').value;
62
63    // Package a message using a simple protocol containing:
64    // instruction file_name_length file_name
65    var msg = "ls " + dirName.length + " " + dirName;
66    common.naclModule.postMessage(msg);
67  }
68}
69
70// Called by the common.js module.
71function handleMessage(message_event) {
72  var messageParts = message_event.data.split("|", 3);
73
74  if (messageParts[0] == "ERR") {
75    common.updateStatus(messageParts[1]);
76    document.getElementById('statusField').style.color = "red";
77  }
78  else if(messageParts[0] == "STAT") {
79    common.updateStatus(messageParts[1]);
80  }
81  else if (messageParts[0] == "DISP") {
82    // Display the message in the file edit box
83    document.getElementById('fileEditor').value = messageParts[1];
84  }
85  else if (messageParts[0] == "READY") {
86    var statusField = document.getElementById('statusField');
87    common.updateStatus(statusField.innerHTML + ' Ready!');
88  }
89}
90