Chromium Code Reviews| Index: chrome/renderer/resources/extension_process_bindings.js |
| diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js |
| index af682c07e189a3c97fa5363260f7862ab0a1cc22..6c67d06089c58e9b1b96955d8807a37f113aaba2 100644 |
| --- a/chrome/renderer/resources/extension_process_bindings.js |
| +++ b/chrome/renderer/resources/extension_process_bindings.js |
| @@ -522,7 +522,29 @@ var chrome = chrome || {}; |
| // for api functions that wish to insert themselves into the call. |
| var apiDefinitions = chromeHidden.JSON.parse(GetExtensionAPIDefinition()); |
| + // Get the platform from navigator.appVersion. |
| + var platform = "unknown"; |
|
Matt Perry
2011/06/07 00:15:52
nit: can you move this block into a separate getPl
Peng
2011/06/07 19:17:30
Done.
|
| + var platforms = [ |
| + [/CrOS Touch/, "chromeos touch"], |
| + [/CrOS/, "chromeos"], |
| + [/Linux/, "linux"], |
| + [/Mac/, "mac"], |
| + [/Win/, "win"], |
| + ]; |
| + |
| + for (var i = 0; i < platforms.length; i++) { |
| + if (platforms[i][0].test(navigator.appVersion)) { |
| + platform = platforms[i][1]; |
| + break; |
| + } |
| + } |
| + |
| apiDefinitions.forEach(function(apiDef) { |
| + // Check platform, if apiDef has platforms key. |
| + if (apiDef.platforms && apiDef.platforms.indexOf(platform) == -1) { |
| + return; |
| + } |
| + |
| var module = chrome; |
| var namespaces = apiDef.namespace.split('.'); |
| for (var index = 0, name; name = namespaces[index]; index++) { |