| 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..48536985c71afefb28fbea27ac6570041deb0ef4 100644
|
| --- a/chrome/renderer/resources/extension_process_bindings.js
|
| +++ b/chrome/renderer/resources/extension_process_bindings.js
|
| @@ -499,6 +499,24 @@ var chrome = chrome || {};
|
| };
|
| }
|
|
|
| + // Get the platform from navigator.appVersion.
|
| + function getPlatform() {
|
| + 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)) {
|
| + return platforms[i][1];
|
| + }
|
| + }
|
| + return "unknown";
|
| + }
|
| +
|
| chromeHidden.onLoad.addListener(function (extensionId) {
|
| if (!extensionId) {
|
| return;
|
| @@ -521,8 +539,14 @@ var chrome = chrome || {};
|
| // TOOD(rafaelw): Consider providing some convenient override points
|
| // for api functions that wish to insert themselves into the call.
|
| var apiDefinitions = chromeHidden.JSON.parse(GetExtensionAPIDefinition());
|
| + var platform = getPlatform();
|
|
|
| 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++) {
|
|
|