Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / native_client_sdk / src / examples / api / var_dictionary / example.js
blob508dad1c404db2c3d0711b3b0b5d55dc0e4a3c13
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 function attachListeners() {
6   var radioEls = document.querySelectorAll('input[type="radio"]');
7   for (var i = 0; i < radioEls.length; ++i) {
8     radioEls[i].addEventListener('click', onRadioClicked);
9   }
11   // Wire up the 'click' event for each function's button.
12   var functionEls = document.querySelectorAll('.function');
13   for (var i = 0; i < functionEls.length; ++i) {
14     var functionEl = functionEls[i];
15     var id = functionEl.getAttribute('id');
16     var buttonEl = functionEl.querySelector('button');
18     // The function name matches the element id.
19     var func = window[id + 'ButtonClicked'];
20     buttonEl.addEventListener('click', func);
21   }
24 function onRadioClicked(e) {
25   var divId = this.id.slice(5);  // skip "radio"
26   var functionEls = document.querySelectorAll('.function');
27   for (var i = 0; i < functionEls.length; ++i) {
28     var visible = functionEls[i].id === divId;
29     if (functionEls[i].id === divId)
30       functionEls[i].removeAttribute('hidden');
31     else
32       functionEls[i].setAttribute('hidden', '');
33   }
36 function getButtonClicked(e) {
37   var key = document.getElementById('getKey').value;
38   common.naclModule.postMessage({cmd: 'Get', key: key});
41 function setButtonClicked(e) {
42   var key = document.getElementById('setKey').value;
43   var valueString = document.getElementById('setValue').value;
44   var value;
45   try {
46     value = JSON.parse(valueString);
47   } catch (e) {
48     common.logMessage('Error parsing value: ' + e);
49     return;
50   }
52   common.naclModule.postMessage({cmd: 'Set', key: key, value: value});
55 function deleteButtonClicked(e) {
56   var key = document.getElementById('deleteKey').value;
57   common.naclModule.postMessage({cmd: 'Delete', key: key});
60 function getkeysButtonClicked(e) {
61   common.naclModule.postMessage({cmd: 'GetKeys'});
64 function haskeyButtonClicked(e) {
65   var key = document.getElementById('haskeyKey').value;
66   common.naclModule.postMessage({cmd: 'HasKey', key: key});
69 // Called by the common.js module.
70 function handleMessage(message_event) {
71   var msg = message_event.data;
73   var cmd = msg.cmd;
74   var result = msg.result;
75   var newDict = msg.dict;
77   // cmd will be empty when the module first loads and sends the contents of
78   // its dictionary.
79   //
80   // Note that cmd is a String object, not a primitive, so the comparison cmd
81   // !== '' will always fail.
82   if (cmd != '') {
83     common.logMessage(
84         'Function ' + cmd + ' returned ' + JSON.stringify(result));
85   }
87   var dictEl = document.getElementById('dict');
88   dictEl.textContent = JSON.stringify(newDict, null, '  ');