Index: native_client_sdk/src/examples/demo/drive/example.js |
diff --git a/native_client_sdk/src/examples/demo/drive/example.js b/native_client_sdk/src/examples/demo/drive/example.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ce4279be2373f1eac12cc6aacb2717aa234cd2f0 |
--- /dev/null |
+++ b/native_client_sdk/src/examples/demo/drive/example.js |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2013 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. |
+ |
+"use strict"; |
+ |
+var authToken = ''; |
+ |
+function getAuthToken(interactive) { |
+ chrome.experimental.identity.getAuthToken( |
+ {'interactive': interactive}, onGetAuthToken); |
+} |
+ |
+function onGetAuthToken(authToken) { |
+ var signInEl = document.getElementById('signIn'); |
+ var getFileEl = document.getElementById('getFile'); |
+ if (authToken) { |
+ signInEl.setAttribute('hidden'); |
+ getFileEl.removeAttribute('hidden'); |
+ window.authToken = authToken; |
+ |
+ // Send the auth token to the NaCl module. |
+ common.naclModule.postMessage('token:'+authToken); |
+ } else { |
+ // There is no auth token; this means that the user has yet to authorize |
+ // this app. Display a button to let the user sign in and authorize this |
+ // application. |
+ signInEl.removeAttribute('hidden'); |
+ getFileEl.setAttribute('hidden'); |
+ } |
+}; |
+ |
+// Called by the common.js module. |
+function moduleDidLoad() { |
+ // The module is not hidden by default so we can easily see if the plugin |
+ // failed to load. |
+ common.hideModule(); |
+ |
+ // Make sure this example is running as a packaged app. If not, display a |
+ // warning. |
+ if (!chrome.experimental) { |
+ common.updateStatus('Error: must be run as a packged app.'); |
+ return; |
+ } |
+ |
+ // Try to get the authorization token non-interactively. This will often work |
+ // if the user has already authorized the app, and the token is cached. |
+ getAuthToken(false); |
+} |
+ |
+function handleMessage(e) { |
+ var msg = e.data; |
+ document.getElementById('contents').textContent = msg; |
+} |
+ |
+// Called by the common.js module. |
+function attachListeners() { |
+ document.getElementById('signIn').addEventListener('click', function () { |
+ // Get the authorization token interactively. A dialog box will pop up |
+ // asking the user to authorize access to their Drive account. |
+ getAuthToken(true); |
+ }); |
+ |
+ document.getElementById('getFile').addEventListener('click', function () { |
+ // Clear the file contents dialog box. |
+ document.getElementById('contents').textContent = ''; |
+ |
+ common.naclModule.postMessage('getFile'); |
+ }); |
+} |