| 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 // Custom binding for the runtime API. | 5 // Custom binding for the runtime API. |
| 6 | 6 |
| 7 var binding = require('binding').Binding.create('runtime'); | 7 var binding = require('binding').Binding.create('runtime'); |
| 8 | 8 |
| 9 var messaging = require('messaging'); | 9 var messaging = require('messaging'); |
| 10 var runtimeNatives = requireNative('runtime'); | 10 var runtimeNatives = requireNative('runtime'); |
| 11 var messagingNatives = requireNative('messaging_natives'); |
| 11 var process = requireNative('process'); | 12 var process = requireNative('process'); |
| 12 var utils = require('utils'); | 13 var utils = require('utils'); |
| 13 | 14 |
| 14 var WINDOW = {}; | 15 var WINDOW = {}; |
| 15 try { | 16 try { |
| 16 WINDOW = window; | 17 WINDOW = window; |
| 17 } catch (e) { | 18 } catch (e) { |
| 18 // Running in SW context. | 19 // Running in SW context. |
| 19 // TODO(lazyboy): Synchronous access to background page is not possible from | 20 // TODO(lazyboy): Synchronous access to background page is not possible from |
| 20 // service worker context. Decide what we should do in this case for the class | 21 // service worker context. Decide what we should do in this case for the class |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 targetId = id; | 148 targetId = id; |
| 148 } | 149 } |
| 149 | 150 |
| 150 var name = ''; | 151 var name = ''; |
| 151 if (connectInfo && connectInfo.name) | 152 if (connectInfo && connectInfo.name) |
| 152 name = connectInfo.name; | 153 name = connectInfo.name; |
| 153 | 154 |
| 154 var includeTlsChannelId = | 155 var includeTlsChannelId = |
| 155 !!(connectInfo && connectInfo.includeTlsChannelId); | 156 !!(connectInfo && connectInfo.includeTlsChannelId); |
| 156 | 157 |
| 157 var portId = runtimeNatives.OpenChannelToExtension(targetId, name, | 158 var portId = messagingNatives.OpenChannelToExtension(targetId, name, |
| 158 includeTlsChannelId); | 159 includeTlsChannelId); |
| 159 if (portId >= 0) | 160 if (portId >= 0) |
| 160 return messaging.createPort(portId, name); | 161 return messaging.createPort(portId, name); |
| 161 }); | 162 }); |
| 162 | 163 |
| 163 // | 164 // |
| 164 // Privileged APIs. | 165 // Privileged APIs. |
| 165 // | 166 // |
| 166 if (contextType != 'BLESSED_EXTENSION') | 167 if (contextType != 'BLESSED_EXTENSION') |
| 167 return; | 168 return; |
| 168 | 169 |
| 169 apiFunctions.setHandleRequest('connectNative', | 170 apiFunctions.setHandleRequest('connectNative', |
| 170 function(nativeAppName) { | 171 function(nativeAppName) { |
| 171 var portId = runtimeNatives.OpenChannelToNativeApp(nativeAppName); | 172 var portId = messagingNatives.OpenChannelToNativeApp(nativeAppName); |
| 172 if (portId >= 0) | 173 if (portId >= 0) |
| 173 return messaging.createPort(portId, ''); | 174 return messaging.createPort(portId, ''); |
| 174 throw new Error('Error connecting to native app: ' + nativeAppName); | 175 throw new Error('Error connecting to native app: ' + nativeAppName); |
| 175 }); | 176 }); |
| 176 | 177 |
| 177 apiFunctions.setCustomCallback('getBackgroundPage', | 178 apiFunctions.setCustomCallback('getBackgroundPage', |
| 178 function(name, request, callback, response) { | 179 function(name, request, callback, response) { |
| 179 if (callback) { | 180 if (callback) { |
| 180 var bg = | 181 var bg = |
| 181 runtimeNatives.GetExtensionViews(-1, -1, 'BACKGROUND')[0] || null; | 182 runtimeNatives.GetExtensionViews(-1, -1, 'BACKGROUND')[0] || null; |
| 182 callback(bg); | 183 callback(bg); |
| 183 } | 184 } |
| 184 }); | 185 }); |
| 185 | 186 |
| 186 bindDirectoryEntryCallback('getPackageDirectoryEntry', apiFunctions); | 187 bindDirectoryEntryCallback('getPackageDirectoryEntry', apiFunctions); |
| 187 }); | 188 }); |
| 188 | 189 |
| 189 exports.$set('bindDirectoryEntryCallback', bindDirectoryEntryCallback); | 190 exports.$set('bindDirectoryEntryCallback', bindDirectoryEntryCallback); |
| 190 exports.$set('binding', binding.generate()); | 191 exports.$set('binding', binding.generate()); |
| OLD | NEW |