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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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. |
71 * @param {Primise} Promise to be fulfilled on success, or rejected on error. | |
hirono
2014/08/20 04:33:28
typo: Primise -> Promise
yoshiki
2014/08/20 06:18:14
Done.
| |
71 */ | 72 */ |
72 function open(videos) { | 73 function open(videos) { |
73 chrome.app.window.create('video_player.html', { | 74 return new Promise(function(fulfill, reject) { |
74 id: 'video', | 75 chrome.app.window.create('video_player.html', { |
75 frame: 'none', | 76 id: 'video', |
76 singleton: false, | 77 frame: 'none', |
77 minWidth: 480, | 78 singleton: false, |
78 minHeight: 270 | 79 minWidth: 480, |
79 }, | 80 minHeight: 270 |
80 function(createdWindow) { | 81 }, |
82 fulfill); | |
83 }).then(function(createdWindow) { | |
81 // Stores the window for test purpose. | 84 // Stores the window for test purpose. |
82 appWindowsForTest[videos[0].entry.name] = createdWindow; | 85 appWindowsForTest[videos[0].entry.name] = createdWindow; |
83 | 86 |
84 createdWindow.setIcon('images/icon/video-player-64.png'); | 87 createdWindow.setIcon('images/icon/video-player-64.png'); |
85 createdWindow.contentWindow.videos = videos; | 88 createdWindow.contentWindow.videos = videos; |
86 chrome.runtime.sendMessage({ready: true}, function() {}); | 89 chrome.runtime.sendMessage({ready: true}, function() {}); |
87 }.wrap()); | 90 }).catch(function(error) { |
91 console.error('Launch failed', error.stack || error); | |
92 return Promise.reject(error); | |
93 }); | |
88 } | 94 } |
95 | |
96 // If is is run in the browser test, wait for the test resources are installed | |
97 // as a component extension, and then load the test resources. | |
98 if (chrome.test) { | |
99 window.testExtensionId = 'ljoplibgfehghmibaoaepfagnmbbfiga'; | |
100 chrome.runtime.onMessageExternal.addListener(function(message) { | |
101 if (message.name !== 'testResourceLoaded') | |
102 return; | |
103 var script = document.createElement('script'); | |
104 script.src = | |
105 'chrome-extension://' + window.testExtensionId + | |
106 '/common/test_loader.js'; | |
107 document.documentElement.appendChild(script); | |
108 }); | |
109 } | |
OLD | NEW |