Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1048)

Unified Diff: ui/file_manager/file_manager/background/js/launcher_search.js

Issue 1092513003: Open search result of drive search in Chrome Launcher. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/file_manager/externs/launcher_search_provider.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/file_manager/file_manager/background/js/launcher_search.js
diff --git a/ui/file_manager/file_manager/background/js/launcher_search.js b/ui/file_manager/file_manager/background/js/launcher_search.js
index 457a59b0f0816963f5461192aadee2822a3d924c..d87fdd361521ad9fa6a8cd2898d209aea5b0a88c 100644
--- a/ui/file_manager/file_manager/background/js/launcher_search.js
+++ b/ui/file_manager/file_manager/background/js/launcher_search.js
@@ -34,6 +34,11 @@ function LauncherSearch() {
*/
this.onQueryEndedBound_ = this.onQueryEnded_.bind(this);
+ /**
+ * @private {function(string)}
+ */
+ this.onOpenResultBound_ = this.onOpenResult_.bind(this);
+
// This feature is disabled when drive is disabled.
chrome.fileManagerPrivate.onPreferencesChanged.addListener(
this.onPreferencesChanged_.bind(this));
@@ -69,6 +74,8 @@ LauncherSearch.prototype.initializeEventListeners_ = function(isDriveEnabled) {
this.onQueryStartedBound_);
chrome.launcherSearchProvider.onQueryEnded.removeListener(
this.onQueryEndedBound_);
+ chrome.launcherSearchProvider.onOpenResult.removeListener(
+ this.onOpenResultBound_);
}
// Set queryId_ to null to prevent that on-going search returns search
@@ -82,7 +89,8 @@ LauncherSearch.prototype.initializeEventListeners_ = function(isDriveEnabled) {
this.onQueryStartedBound_);
chrome.launcherSearchProvider.onQueryEnded.addListener(
this.onQueryEndedBound_);
- // TODO(yawano): Adds listener to onOpenResult when it becomes available.
+ chrome.launcherSearchProvider.onOpenResult.addListener(
+ this.onOpenResultBound_);
} else {
this.enabled_ = false;
}
@@ -131,3 +139,62 @@ LauncherSearch.prototype.onQueryStarted_ = function(queryId, query, limit) {
LauncherSearch.prototype.onQueryEnded_ = function(queryId) {
this.queryId_ = null;
};
+
+/**
+ * Handles onOpenResult event.
+ * @param {string} itemId
+ */
+LauncherSearch.prototype.onOpenResult_ = function(itemId) {
+ util.urlToEntry(itemId).then(function(entry) {
+ if (entry.isDirectory) {
+ // If it's directory, open the directory with file manager.
+ launchFileManager(
+ { currentDirectoryURL: entry.toURL() },
+ undefined, /* App ID */
+ LaunchType.FOCUS_SAME_OR_CREATE);
+ } else {
+ // If the file is not directory, try to execute default task.
+ chrome.fileManagerPrivate.getFileTasks([entry.toURL()], function(tasks) {
+ // Select default task.
+ var defaultTask = null;
+ for (var i = 0; i < tasks.length; i++) {
+ var task = tasks[i];
+ if (task.isDefault) {
+ defaultTask = task;
+ break;
+ }
+ }
+
+ if (defaultTask) {
+ // Execute default task.
+ chrome.fileManagerPrivate.executeTask(
+ defaultTask.taskId,
+ [entry.toURL()],
+ function(result) {
+ if (result === 'opened' || result === 'message_sent')
+ return;
+ this.openFileManagerWithSelectionURL_(entry.toURL());
+ }.bind(this));
+ } else {
+ // If there is no default task for the url, open a file manager with
+ // selecting it.
+ // TODO(yawano): Add fallback to view-in-browser as file_tasks.js do.
+ this.openFileManagerWithSelectionURL_(entry.toURL());
+ }
+ }.bind(this));
+ }
+ }.bind(this));
+};
+
+/**
+ * Opens file manager with selecting a specified url.
+ * @param {string} selectionURL A url to be selected.
+ * @private
+ */
+LauncherSearch.prototype.openFileManagerWithSelectionURL_ = function(
+ selectionURL) {
+ launchFileManager(
+ { selectionURL: selectionURL },
+ undefined, /* App ID */
+ LaunchType.FOCUS_SAME_OR_CREATE);
+};
« no previous file with comments | « ui/file_manager/externs/launcher_search_provider.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698