Chromium Code Reviews| 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 chrome.app.runtime.onLaunched.addListener(function() { | 5 function launchFileManager(launchData) { |
| 6 chrome.app.window.create('main.html', { | 6 var options = { |
| 7 height: 800, | 7 defaultWidth: Math.round(window.screen.availWidth * 0.8), |
| 8 width: 1000 | 8 defaultHeight: Math.round(window.screen.availHeight * 0.8) |
| 9 }; | |
| 10 | |
| 11 chrome.app.window.create('main.html', options, function(newWindow) { | |
| 12 newWindow.contentWindow.launchData = launchData; | |
| 9 }); | 13 }); |
| 14 } | |
| 15 | |
| 16 chrome.app.runtime.onLaunched.addListener(launchFileManager); | |
| 17 | |
| 18 chrome.fileBrowserHandler.onExecute.addListener(function(id, details) { | |
| 19 var entry = details.entries[0]; | |
| 20 var url = entry.toURL(); | |
| 21 switch (id) { | |
| 22 case 'play': | |
| 23 launchAudioPlayer({items: [url], position: 0}); | |
|
dgozman
2012/11/08 13:49:28
Why don't you pass multiple urls here?
Vladislav Kaznacheev
2012/11/08 14:00:18
Only because I know that we never pass more than o
| |
| 24 break; | |
| 25 | |
| 26 case 'watch': | |
| 27 launchVideoPlayer(url); | |
| 28 break; | |
| 29 | |
| 30 default: | |
| 31 // Every other action opens the main Files app window. | |
| 32 var launchData = {}; | |
| 33 launchData.action = id; | |
| 34 launchData.defaultPath = entry.fullPath; | |
| 35 launchFileManager(launchData); | |
| 36 break; | |
| 37 } | |
| 10 }); | 38 }); |
| 11 | 39 |
| 12 /** | 40 /** |
| 13 * Wrapper for a singleton app window. | 41 * Wrapper for a singleton app window. |
| 14 * @constructor | 42 * @constructor |
| 15 */ | 43 */ |
| 16 function SingletonWindow() { | 44 function SingletonWindow() { |
| 17 this.window_ = null; | 45 this.window_ = null; |
| 18 this.creating_ = false; | 46 this.creating_ = false; |
| 19 } | 47 } |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 31 if (this.window_ && !this.window_.contentWindow.closed) { | 59 if (this.window_ && !this.window_.contentWindow.closed) { |
| 32 this.window_.focus(); | 60 this.window_.focus(); |
| 33 this.window_.contentWindow.reload(launchData); | 61 this.window_.contentWindow.reload(launchData); |
| 34 return; | 62 return; |
| 35 } | 63 } |
| 36 | 64 |
| 37 this.launchData_ = launchData; | 65 this.launchData_ = launchData; |
| 38 if (this.creating_) | 66 if (this.creating_) |
| 39 return; // The window is being created, will use the updated launch data. | 67 return; // The window is being created, will use the updated launch data. |
| 40 | 68 |
| 69 options.id = url; | |
| 41 this.creating_ = true; | 70 this.creating_ = true; |
| 42 chrome.app.window.create(url, options, function(newWindow) { | 71 chrome.app.window.create(url, options, function(newWindow) { |
| 43 this.window_ = newWindow; | 72 this.window_ = newWindow; |
| 44 this.window_.contentWindow.launchData = this.launchData_; | 73 this.window_.contentWindow.launchData = this.launchData_; |
| 45 this.creating_ = false; | 74 this.creating_ = false; |
| 46 this.window_.onClosed.addListener(function() { | 75 this.window_.onClosed.addListener(function() { |
| 47 this.window_.contentWindow_.unload(); | 76 this.window_.contentWindow_.unload(); |
| 48 }.bind(this)); | 77 }.bind(this)); |
| 49 }.bind(this)); | 78 }.bind(this)); |
| 50 }; | 79 }; |
| 51 | 80 |
| 52 var audioPlayer = new SingletonWindow(); | 81 var audioPlayer = new SingletonWindow(); |
| 53 | 82 |
| 54 /** | 83 /** |
| 55 * Launch the audio player or load the playlist into the existing player. | 84 * Launch the audio player or load the playlist into the existing player. |
| 56 * | 85 * |
| 57 * @param {Object} playlist Playlist. | 86 * @param {Object} playlist Playlist. |
| 58 */ | 87 */ |
| 59 function launchAudioPlayer(playlist) { | 88 function launchAudioPlayer(playlist) { |
| 60 var WIDTH = 280; | 89 var WIDTH = 280; |
| 61 var MIN_HEIGHT = 35 + 58; | 90 var MIN_HEIGHT = 35 + 58; |
| 62 var MAX_HEIGHT = 35 + 58 * 3; | 91 var MAX_HEIGHT = 35 + 58 * 3; |
| 63 var BOTTOM = 80; | 92 var BOTTOM = 80; |
| 64 var RIGHT = 20; | 93 var RIGHT = 20; |
| 65 | 94 |
| 66 var param = { | 95 var options = { |
| 67 id: 'audio', | |
| 68 defaultLeft: (window.screen.availWidth - WIDTH - RIGHT), | 96 defaultLeft: (window.screen.availWidth - WIDTH - RIGHT), |
| 69 defaultTop: (window.screen.availHeight - MIN_HEIGHT - BOTTOM), | 97 defaultTop: (window.screen.availHeight - MIN_HEIGHT - BOTTOM), |
| 70 minHeight: MIN_HEIGHT, | 98 minHeight: MIN_HEIGHT, |
| 71 maxHeight: MAX_HEIGHT, | 99 maxHeight: MAX_HEIGHT, |
| 72 height: MIN_HEIGHT, | 100 height: MIN_HEIGHT, |
| 73 minWidth: WIDTH, | 101 minWidth: WIDTH, |
| 74 maxWidth: WIDTH, | 102 maxWidth: WIDTH, |
| 75 width: WIDTH | 103 width: WIDTH |
| 76 }; | 104 }; |
| 77 | 105 |
| 78 audioPlayer.open('mediaplayer.html', param, playlist); | 106 audioPlayer.open('mediaplayer.html', options, playlist); |
| 79 } | 107 } |
| 80 | 108 |
| 81 var videoPlayer = new SingletonWindow(); | 109 var videoPlayer = new SingletonWindow(); |
| 82 | 110 |
| 83 /** | 111 /** |
| 84 * Launch video player. | 112 * Launch video player. |
| 85 * @param {string} url Video url. | 113 * @param {string} url Video url. |
| 86 */ | 114 */ |
| 87 function launchVideoPlayer(url) { | 115 function launchVideoPlayer(url) { |
| 88 var param = { | 116 var options = { |
| 89 id: 'video', | |
| 90 hidden: true // Will be shown when the video loads. | 117 hidden: true // Will be shown when the video loads. |
| 91 }; | 118 }; |
| 92 | 119 |
| 93 videoPlayer.open('video_player.html', param, {url: url}); | 120 videoPlayer.open('video_player.html', options, {url: url}); |
| 94 } | 121 } |
| OLD | NEW |