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 // 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'); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 132 var targetId = null; | 132 var targetId = null; |
| 133 if (typeof(arguments[nextArg]) == 'string') | 133 if (typeof(arguments[nextArg]) == 'string') |
| 134 targetId = arguments[nextArg++]; | 134 targetId = arguments[nextArg++]; |
| 135 | 135 |
| 136 // connectInfo (second argument) is optional. | 136 // connectInfo (second argument) is optional. |
| 137 var connectInfo = null; | 137 var connectInfo = null; |
| 138 if (typeof(arguments[nextArg]) == 'object') | 138 if (typeof(arguments[nextArg]) == 'object') |
| 139 connectInfo = arguments[nextArg++]; | 139 connectInfo = arguments[nextArg++]; |
| 140 | 140 |
| 141 if (nextArg != arguments.length) | 141 if (nextArg != arguments.length) |
| 142 throw new Error('Invalid arguments to connect.'); | 142 throw new $Error.self('Invalid arguments to connect.'); |
|
not at google - send to devlin
2014/08/19 16:45:56
new Error()
| |
| 143 return [targetId, connectInfo]; | 143 return [targetId, connectInfo]; |
| 144 }); | 144 }); |
| 145 | 145 |
| 146 apiFunctions.setUpdateArgumentsPreValidate('connectNative', | 146 apiFunctions.setUpdateArgumentsPreValidate('connectNative', |
| 147 function(appName) { | 147 function(appName) { |
| 148 if (typeof(appName) !== 'string') { | 148 if (typeof(appName) !== 'string') { |
| 149 throw new Error('Invalid arguments to connectNative.'); | 149 throw new $Error.self('Invalid arguments to connectNative.'); |
|
not at google - send to devlin
2014/08/19 16:45:56
new Error()
| |
| 150 } | 150 } |
| 151 return [appName]; | 151 return [appName]; |
| 152 }); | 152 }); |
| 153 | 153 |
| 154 apiFunctions.setHandleRequest('connect', function(targetId, connectInfo) { | 154 apiFunctions.setHandleRequest('connect', function(targetId, connectInfo) { |
| 155 // Don't let orphaned content scripts communicate with their extension. | 155 // Don't let orphaned content scripts communicate with their extension. |
| 156 // http://crbug.com/168263 | 156 // http://crbug.com/168263 |
| 157 if (unloadEvent.wasDispatched) | 157 if (unloadEvent.wasDispatched) |
| 158 throw new Error('Error connecting to extension ' + targetId); | 158 throw new $Error.self('Error connecting to extension ' + targetId); |
|
not at google - send to devlin
2014/08/19 16:45:56
new Error()
| |
| 159 | 159 |
| 160 if (!targetId) | 160 if (!targetId) |
| 161 targetId = runtime.id; | 161 targetId = runtime.id; |
| 162 | 162 |
| 163 var name = ''; | 163 var name = ''; |
| 164 if (connectInfo && connectInfo.name) | 164 if (connectInfo && connectInfo.name) |
| 165 name = connectInfo.name; | 165 name = connectInfo.name; |
| 166 | 166 |
| 167 var includeTlsChannelId = | 167 var includeTlsChannelId = |
| 168 !!(connectInfo && connectInfo.includeTlsChannelId); | 168 !!(connectInfo && connectInfo.includeTlsChannelId); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 180 return; | 180 return; |
| 181 | 181 |
| 182 apiFunctions.setHandleRequest('connectNative', | 182 apiFunctions.setHandleRequest('connectNative', |
| 183 function(nativeAppName) { | 183 function(nativeAppName) { |
| 184 if (!unloadEvent.wasDispatched) { | 184 if (!unloadEvent.wasDispatched) { |
| 185 var portId = runtimeNatives.OpenChannelToNativeApp(runtime.id, | 185 var portId = runtimeNatives.OpenChannelToNativeApp(runtime.id, |
| 186 nativeAppName); | 186 nativeAppName); |
| 187 if (portId >= 0) | 187 if (portId >= 0) |
| 188 return messaging.createPort(portId, ''); | 188 return messaging.createPort(portId, ''); |
| 189 } | 189 } |
| 190 throw new Error('Error connecting to native app: ' + nativeAppName); | 190 throw new $Error.self('Error connecting to native app: ' + nativeAppName); |
|
not at google - send to devlin
2014/08/19 16:45:56
new Error() ... I think.
| |
| 191 }); | 191 }); |
| 192 | 192 |
| 193 apiFunctions.setCustomCallback('getBackgroundPage', | 193 apiFunctions.setCustomCallback('getBackgroundPage', |
| 194 function(name, request, response) { | 194 function(name, request, response) { |
| 195 if (request.callback) { | 195 if (request.callback) { |
| 196 var bg = runtimeNatives.GetExtensionViews(-1, 'BACKGROUND')[0] || null; | 196 var bg = runtimeNatives.GetExtensionViews(-1, 'BACKGROUND')[0] || null; |
| 197 request.callback(bg); | 197 request.callback(bg); |
| 198 } | 198 } |
| 199 request.callback = null; | 199 request.callback = null; |
| 200 }); | 200 }); |
| 201 | 201 |
| 202 bindDirectoryEntryCallback('getPackageDirectoryEntry', apiFunctions); | 202 bindDirectoryEntryCallback('getPackageDirectoryEntry', apiFunctions); |
| 203 }); | 203 }); |
| 204 | 204 |
| 205 exports.bindDirectoryEntryCallback = bindDirectoryEntryCallback; | 205 exports.bindDirectoryEntryCallback = bindDirectoryEntryCallback; |
| 206 exports.binding = binding.generate(); | 206 exports.binding = binding.generate(); |
| OLD | NEW |