OLD | NEW |
| (Empty) |
1 // Copyright 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. | |
4 | |
5 'use strict'; | |
6 | |
7 /** | |
8 * Manage the installation of apps. | |
9 * | |
10 * @param {string} itemId Item id to be installed. | |
11 * @constructor | |
12 * @extends {cr.EventType} | |
13 */ | |
14 function AppInstaller(itemId) { | |
15 this.itemId_ = itemId; | |
16 this.callback_ = null; | |
17 | |
18 Object.seal(this); | |
19 } | |
20 | |
21 AppInstaller.prototype = { | |
22 }; | |
23 | |
24 /** | |
25 * Type of result. | |
26 * | |
27 * @enum {string} | |
28 * @const | |
29 */ | |
30 AppInstaller.Result = { | |
31 SUCCESS: 'AppInstaller.success', | |
32 CANCELLED: 'AppInstaller.cancelled', | |
33 ERROR: 'AppInstaller.error' | |
34 }; | |
35 Object.freeze(AppInstaller.Result); | |
36 | |
37 /** | |
38 * Error message for user cancellation. This must be match with the constant | |
39 * 'kUserCancelledError' in C/B/extensions/webstore_standalone_installer.cc. | |
40 * @type {string} | |
41 * @const | |
42 * @private | |
43 */ | |
44 AppInstaller.USER_CANCELLED_ERROR_STR_ = 'User cancelled install'; | |
45 | |
46 /** | |
47 * Start an installation. | |
48 * @param {function(boolean, string)} callback Called when the installation is | |
49 * finished. | |
50 */ | |
51 AppInstaller.prototype.install = function(callback) { | |
52 this.callback_ = callback; | |
53 chrome.fileBrowserPrivate.installWebstoreItem( | |
54 this.itemId_, | |
55 function() { | |
56 this.onInstallCompleted_(chrome.runtime.lastError); | |
57 }.bind(this)); | |
58 }; | |
59 | |
60 /** | |
61 * Called when the installation is completed. | |
62 * | |
63 * @param {{message: string}?} error Null if the installation is success, | |
64 * otherwise an object which contains error message. | |
65 * @private | |
66 */ | |
67 AppInstaller.prototype.onInstallCompleted_ = function(error) { | |
68 var installerResult = AppInstaller.Result.SUCCESS; | |
69 var errorMessage = ''; | |
70 if (error) { | |
71 installerResult = | |
72 error.message == AppInstaller.USER_CANCELLED_ERROR_STR_ ? | |
73 AppInstaller.Result.CANCELLED : | |
74 AppInstaller.Result.ERROR; | |
75 errorMessage = error.message; | |
76 } | |
77 this.callback_(installerResult, errorMessage); | |
78 this.callback_ = null; | |
79 }; | |
OLD | NEW |