Chromium Code Reviews| Index: chrome/browser/resources/file_manager/js/suggest_apps_dialog.js |
| diff --git a/chrome/browser/resources/file_manager/js/suggest_apps_dialog.js b/chrome/browser/resources/file_manager/js/suggest_apps_dialog.js |
| index 7e02b6bf13b68cb18266ded0fb996a55bf31abb9..aa09f5d8e853e61d51cf352cf39b6e2d5c016337 100644 |
| --- a/chrome/browser/resources/file_manager/js/suggest_apps_dialog.js |
| +++ b/chrome/browser/resources/file_manager/js/suggest_apps_dialog.js |
| @@ -111,6 +111,7 @@ SuggestAppsDialog.State = { |
| INITIALIZED: 'SuggestAppsDialog.State.INITIALIZED', |
| INSTALLING: 'SuggestAppsDialog.State.INSTALLING', |
| INSTALLED_CLOSING: 'SuggestAppsDialog.State.INSTALLED_CLOSING', |
| + OPENING_WEBSTORE_CLOSING: 'SuggestAppsDialog.State.OPENING_WEBSTORE_CLOSING', |
| CANCELED_CLOSING: 'SuggestAppsDialog.State.CANCELED_CLOSING' |
| }; |
| Object.freeze(SuggestAppsDialog.State); |
| @@ -124,6 +125,8 @@ SuggestAppsDialog.Result = { |
| INSTALL_SUCCESSFUL: 'SuggestAppsDialog.Result.INSTALL_SUCCESSFUL', |
| // User cancelled the suggest app dialog. No message should be shown. |
| USER_CANCELL: 'SuggestAppsDialog.Result.USER_CANCELL', |
| + // User clicked the link to web store so the dialog is closed. |
| + WEBSTORE_LINK_OPENED: 'SuggestAppsDialog.Result.WEBSTORE_LINK_OPENED', |
| // Failed to load the widget. Error message should be shown. |
| FAILED: 'SuggestAppsDialog.Result.FAILED' |
| }; |
| @@ -198,6 +201,9 @@ SuggestAppsDialog.prototype.show = function(extension, mime, onDialogClosed) { |
| this.onDialogClosed_ = onDialogClosed; |
| this.state_ = SuggestAppsDialog.State.INITIALIZING; |
| + metrics.recordUserAction('SuggestApps.ShowDialog'); |
| + metrics.startInterval('SuggestApps.LoadTime'); |
| + |
| // Makes it sure that the initialization is completed. |
| this.initializationTask_.run(function() { |
| if (!this.accessToken_) { |
| @@ -261,6 +267,7 @@ SuggestAppsDialog.prototype.onWebstoreLinkClicked_ = function(e) { |
| var webStoreUrl = |
| FileTasks.createWebStoreLink(this.extension_, this.mimeType_); |
| chrome.windows.create({url: webStoreUrl}); |
| + this.state_ = SuggestAppsDialog.State.OPENING_WEBSTORE_CLOSING; |
| this.hide(); |
| }; |
| @@ -270,6 +277,9 @@ SuggestAppsDialog.prototype.onWebstoreLinkClicked_ = function(e) { |
| * @private |
| */ |
| SuggestAppsDialog.prototype.onWidgetLoaded_ = function(event) { |
| + metrics.recordInterval('SuggestApps.LoadTime'); |
| + metrics.recordEnum('SuggestApps.Load', 0, 3); // Load success. |
| + |
| this.frame_.classList.remove('show-spinner'); |
| this.state_ = SuggestAppsDialog.State.INITIALIZED; |
| @@ -282,6 +292,9 @@ SuggestAppsDialog.prototype.onWidgetLoaded_ = function(event) { |
| * @private |
| */ |
| SuggestAppsDialog.prototype.onWidgetLoadFailed_ = function(event) { |
| + metrics.recordEnum('SuggestApps.Load', 1, 2); |
| + metrics.recordEnum('SuggestApps.Load', 2, 3); // Load failure. |
| + |
| this.frame_.classList.remove('show-spinner'); |
| this.state_ = SuggestAppsDialog.State.INITIALIZE_FAILED_CLOSING; |
| @@ -335,13 +348,16 @@ SuggestAppsDialog.prototype.onInstallCompleted_ = function(result, error) { |
| switch (result) { |
| case AppInstaller.Result.SUCCESS: |
| + metrics.recordEnum('SuggestApps.Install', 0, 3); |
|
mtomasz
2013/10/15 07:30:30
metrics.recordEnum with enums is easier to read th
yoshiki
2013/10/15 07:47:03
Done.
|
| this.hide(); |
| break; |
| case AppInstaller.Result.CANCELLED: |
| // User cancelled the installation. Do nothing. |
| + metrics.recordEnum('SuggestApps.Install', 1, 3); |
| break; |
| case AppInstaller.Result.ERROR: |
| fileManager.error.show(str('SUGGEST_DIALOG_INSTALLATION_FAILED')); |
| + metrics.recordEnum('SuggestApps.Install', 2, 3); |
| break; |
| } |
| }; |
| @@ -361,8 +377,13 @@ SuggestAppsDialog.prototype.hide = function(opt_originalOnHide) { |
| // Assumes closing the dialog as canceling the install. |
| this.state_ = SuggestAppsDialog.State.CANCELED_CLOSING; |
| break; |
| + case SuggestAppsDialog.State.INITIALIZING: |
| + metrics.recordEnum('SuggestApps.Load', 1, 3); // Load cancelled. |
|
mtomasz
2013/10/15 07:30:30
(like here is good)
|
| + this.state_ = SuggestAppsDialog.State.CANCELED_CLOSING; |
| + break; |
| case SuggestAppsDialog.State.INSTALLED_CLOSING: |
| case SuggestAppsDialog.State.INITIALIZE_FAILED_CLOSING: |
| + case SuggestAppsDialog.State.OPENING_WEBSTORE_CLOSING: |
| // Do nothing. |
| break; |
| case SuggestAppsDialog.State.INITIALIZED: |
| @@ -401,15 +422,22 @@ SuggestAppsDialog.prototype.onHide_ = function(opt_originalOnHide) { |
| switch (this.state_) { |
| case SuggestAppsDialog.State.INSTALLED_CLOSING: |
| result = SuggestAppsDialog.Result.INSTALL_SUCCESSFUL; |
| + metrics.recordEnum('SuggestApps.CloseDialog', 1, 4); |
| break; |
| case SuggestAppsDialog.State.INITIALIZE_FAILED_CLOSING: |
| result = SuggestAppsDialog.Result.FAILED; |
| break; |
| case SuggestAppsDialog.State.CANCELED_CLOSING: |
| result = SuggestAppsDialog.Result.USER_CANCELL; |
| + metrics.recordEnum('SuggestApps.CloseDialog', 2, 4); |
| + break; |
| + case SuggestAppsDialog.State.OPENING_WEBSTORE_CLOSING: |
| + result = SuggestAppsDialog.Result.WEBSTORE_LINK_OPENED; |
| + metrics.recordEnum('SuggestApps.CloseDialog', 3, 4); |
| break; |
| default: |
| result = SuggestAppsDialog.Result.USER_CANCELL; |
| + metrics.recordEnum('SuggestApps.CloseDialog', 0, 4); |
| console.error('Invalid state.'); |
| } |
| this.state_ = SuggestAppsDialog.State.UNINITIALIZED; |