| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Map of all currently open app window. The key is an app id. | 8 * Map of all currently open app window. The key is an app id. |
| 9 */ | 9 */ |
| 10 var appWindows = {}; | 10 var appWindows = {}; |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 }); | 383 }); |
| 384 } | 384 } |
| 385 | 385 |
| 386 /** | 386 /** |
| 387 * Executes a file browser task. | 387 * Executes a file browser task. |
| 388 * | 388 * |
| 389 * @param {string} action Task id. | 389 * @param {string} action Task id. |
| 390 * @param {Object} details Details object. | 390 * @param {Object} details Details object. |
| 391 */ | 391 */ |
| 392 function onExecute(action, details) { | 392 function onExecute(action, details) { |
| 393 var urls = details.entries.map(function(e) { return e.toURL() }); | 393 var urls = details.entries.map(function(e) { return e.toURL(); }); |
| 394 | 394 |
| 395 switch (action) { | 395 switch (action) { |
| 396 case 'play': | 396 case 'play': |
| 397 launchAudioPlayer({items: urls, position: 0}); | 397 launchAudioPlayer({items: urls, position: 0}); |
| 398 break; | 398 break; |
| 399 | 399 |
| 400 case 'watch': | 400 case 'watch': |
| 401 launchVideoPlayer(urls[0]); | 401 launchVideoPlayer(urls[0]); |
| 402 break; | 402 break; |
| 403 | 403 |
| 404 default: | 404 default: |
| 405 // Every other action opens a Files app window. | 405 var steps = new AsyncUtil.Queue(); |
| 406 var appState = { | 406 var launchEnable = null; |
| 407 params: { | 407 steps.run(function(nextStep) { |
| 408 action: action | 408 // If it is not auto-open (triggered by mounting external devices), we |
| 409 }, | 409 // always launch Files.app. |
| 410 defaultPath: details.entries[0].fullPath, | 410 if (action != 'auto-open') { |
| 411 }; | 411 launchEnable = true; |
| 412 // For mounted devices just focus any Files.app window. The mounted | 412 nextStep(); |
| 413 // volume will appear on the navigation list. | 413 return; |
| 414 var type = action == 'auto-open' ? LaunchType.FOCUS_ANY_OR_CREATE : | 414 } |
| 415 LaunchType.FOCUS_SAME_OR_CREATE; | 415 // If the disable-default-apps flag is on, Files.app is not opened |
| 416 launchFileManager(appState, | 416 // automatically on device mount because it obstculs the manual test. |
| 417 undefined, // App ID. | 417 chrome.commandLinePrivate.hasSwitch('disable-default-apps', |
| 418 type); | 418 function(flag) { |
| 419 launchEnable = !flag; |
| 420 nextStep(); |
| 421 }); |
| 422 }); |
| 423 steps.run(function() { |
| 424 if (!launchEnable) |
| 425 return; |
| 426 |
| 427 // Every other action opens a Files app window. |
| 428 var appState = { |
| 429 params: { |
| 430 action: action |
| 431 }, |
| 432 defaultPath: details.entries[0].fullPath |
| 433 }; |
| 434 // For mounted devices just focus any Files.app window. The mounted |
| 435 // volume will appear on the navigation list. |
| 436 var type = action == 'auto-open' ? LaunchType.FOCUS_ANY_OR_CREATE : |
| 437 LaunchType.FOCUS_SAME_OR_CREATE; |
| 438 launchFileManager(appState, |
| 439 undefined, // App ID. |
| 440 type); |
| 441 }); |
| 419 break; | 442 break; |
| 420 } | 443 } |
| 421 } | 444 } |
| 422 | 445 |
| 423 | |
| 424 /** | 446 /** |
| 425 * @return {Object} Audio player window create options. | 447 * @return {Object} Audio player window create options. |
| 426 */ | 448 */ |
| 427 function createAudioPlayerOptions() { | 449 function createAudioPlayerOptions() { |
| 428 var WIDTH = 280; | 450 var WIDTH = 280; |
| 429 var HEIGHT = 35 + 58; | 451 var HEIGHT = 35 + 58; |
| 430 return { | 452 return { |
| 431 type: 'panel', | 453 type: 'panel', |
| 432 hidden: true, | 454 hidden: true, |
| 433 minHeight: HEIGHT, | 455 minHeight: HEIGHT, |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 queue.run(function(callback) { | 581 queue.run(function(callback) { |
| 560 chrome.fileBrowserPrivate.getStrings(function(strings) { | 582 chrome.fileBrowserPrivate.getStrings(function(strings) { |
| 561 initContextMenu(strings); | 583 initContextMenu(strings); |
| 562 chrome.storage.local.set({strings: strings}, callback); | 584 chrome.storage.local.set({strings: strings}, callback); |
| 563 }); | 585 }); |
| 564 }); | 586 }); |
| 565 } | 587 } |
| 566 | 588 |
| 567 // Initialize Files.app. | 589 // Initialize Files.app. |
| 568 initApp(); | 590 initApp(); |
| OLD | NEW |