| 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 1e33cb984a849c7f5b237b545464c2951143aaea..e828bd5c70f310dffee845196376db77e16cdb00 100644
|
| --- a/chrome/renderer/resources/extension_process_bindings.js
|
| +++ b/chrome/renderer/resources/extension_process_bindings.js
|
| @@ -150,12 +150,17 @@ var chrome = chrome || {};
|
| }
|
|
|
| forEach(apiDefinitions, function(apiDef) {
|
| - var module = {};
|
| - chrome[apiDef.namespace] = module;
|
| + chrome[apiDef.namespace] = chrome[apiDef.namespace] || {};
|
| + var module = chrome[apiDef.namespace];
|
|
|
| // Setup Functions.
|
| if (apiDef.functions) {
|
| forEach(apiDef.functions, function(functionDef) {
|
| + // Module functions may have been defined earlier by hand. Don't clobber
|
| + // them.
|
| + if (module[functionDef.name])
|
| + return;
|
| +
|
| var apiFunction = {};
|
| apiFunction.definition = functionDef;
|
| apiFunction.name = apiDef.namespace + "." + functionDef.name;;
|
| @@ -176,6 +181,11 @@ var chrome = chrome || {};
|
| // Setup Events
|
| if (apiDef.events) {
|
| forEach(apiDef.events, function(eventDef) {
|
| + // Module events may have been defined earlier by hand. Don't clobber
|
| + // them.
|
| + if (module[eventDef.name])
|
| + return;
|
| +
|
| var eventName = apiDef.namespace + "." + eventDef.name;
|
| module[eventDef.name] = new chrome.Event(eventName);
|
| });
|
|
|