Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // Stores the app windows OLNY for test purpose. | 7 // Stores the app windows OLNY for test purpose. |
| 8 // We SHOULD NOT use it as it is except for test, since the files which have | 8 // We SHOULD NOT use it as it is except for test, since the files which have |
| 9 // the same name will be overridden each other. | 9 // the same name will be overridden each other. |
| 10 var appWindowsForTest = {}; | 10 var appWindowsForTest = {}; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 60 } else { | 60 } else { |
| 61 // TODO(yoshiki): handle error in a smarter way. | 61 // TODO(yoshiki): handle error in a smarter way. |
| 62 open('', 'error'); // Empty URL shows the error message. | 62 open('', 'error'); // Empty URL shows the error message. |
| 63 } | 63 } |
| 64 fulfill(); | 64 fulfill(); |
| 65 }.wrap()); | 65 }.wrap()); |
| 66 } | 66 } |
| 67 | 67 |
| 68 /** | 68 /** |
| 69 * Opens player window. | 69 * Opens player window. |
| 70 * @param {Array.<Object>} videos List of videos to play. | 70 * @param {Array.<Object>} videos List of videos to play. |
|
hirono
2014/08/20 04:14:06
nit: @return
yoshiki
2014/08/20 04:26:21
Done.
| |
| 71 */ | 71 */ |
| 72 function open(videos) { | 72 function open(videos) { |
| 73 chrome.app.window.create('video_player.html', { | 73 return new Promise(function(fulfill, reject) { |
| 74 id: 'video', | 74 chrome.app.window.create('video_player.html', { |
| 75 frame: 'none', | 75 id: 'video', |
| 76 singleton: false, | 76 frame: 'none', |
| 77 minWidth: 480, | 77 singleton: false, |
| 78 minHeight: 270 | 78 minWidth: 480, |
| 79 }, | 79 minHeight: 270 |
| 80 function(createdWindow) { | 80 }, |
| 81 fulfill); | |
| 82 }).then(function(createdWindow) { | |
| 81 // Stores the window for test purpose. | 83 // Stores the window for test purpose. |
| 82 appWindowsForTest[videos[0].entry.name] = createdWindow; | 84 appWindowsForTest[videos[0].entry.name] = createdWindow; |
| 83 | 85 |
| 84 createdWindow.setIcon('images/icon/video-player-64.png'); | 86 createdWindow.setIcon('images/icon/video-player-64.png'); |
| 85 createdWindow.contentWindow.videos = videos; | 87 createdWindow.contentWindow.videos = videos; |
| 86 chrome.runtime.sendMessage({ready: true}, function() {}); | 88 chrome.runtime.sendMessage({ready: true}, function() {}); |
| 87 }.wrap()); | 89 }).catch(function(error) { |
| 90 console.error('Launch failed', error.stack || error); | |
|
hirono
2014/08/20 04:14:06
How about doing: return Promise.reject(error) ?
It
yoshiki
2014/08/20 04:26:21
Done.
| |
| 91 }); | |
| 88 } | 92 } |
| 93 | |
| 94 // If is is run in the browser test, wait for the test resources are installed | |
| 95 // as a component extension, and then load the test resources. | |
| 96 if (chrome.test) { | |
| 97 window.testExtensionId = 'ljoplibgfehghmibaoaepfagnmbbfiga'; | |
| 98 chrome.runtime.onMessageExternal.addListener(function(message) { | |
| 99 if (message.name !== 'testResourceLoaded') | |
| 100 return; | |
| 101 var script = document.createElement('script'); | |
| 102 script.src = | |
| 103 'chrome-extension://' + window.testExtensionId + | |
| 104 '/common/test_loader.js'; | |
| 105 document.documentElement.appendChild(script); | |
| 106 }); | |
| 107 } | |
| OLD | NEW |