| Index: chrome/renderer/resources/extensions/experimental.app_custom_bindings.js
|
| diff --git a/chrome/renderer/resources/extensions/experimental.app_custom_bindings.js b/chrome/renderer/resources/extensions/experimental.app_custom_bindings.js
|
| index a586df96f8e9e8eec8cb6c98678c7a71a9962894..ac59fd7c4c2ea22aabdd868eda7d1de540d26b1b 100644
|
| --- a/chrome/renderer/resources/extensions/experimental.app_custom_bindings.js
|
| +++ b/chrome/renderer/resources/extensions/experimental.app_custom_bindings.js
|
| @@ -9,12 +9,32 @@ var fileSystemHelpers = requireNative('file_system_natives');
|
| var GetIsolatedFileSystem = fileSystemHelpers.GetIsolatedFileSystem;
|
| var appNatives = requireNative('experimental_app');
|
| var DeserializeString = appNatives.DeserializeString;
|
| +var SerializeToString = appNatives.SerializeToString;
|
| var CreateBlob = appNatives.CreateBlob;
|
|
|
| chromeHidden.Event.registerArgumentMassager('experimental.app.onLaunched',
|
| function(args, dispatch) {
|
| - var launchData = args[0];
|
| - var intentData = args[1];
|
| + var intentId = args[0];
|
| + var launchData = args[1];
|
| + var intentData = args[2];
|
| +
|
| + if (launchData) {
|
| + if (intentId) {
|
| + var fn = function(success, data) {
|
| + // TODO(thorogood): What if data is not of a serializable type?
|
| + chrome.experimental.app.postIntentResponse({
|
| + 'intentId': intentId,
|
| + 'success': success,
|
| + 'data': SerializeToString(data)
|
| + });
|
| + };
|
| + launchData.intent.postResult = fn.bind(undefined, true);
|
| + launchData.intent.postFailure = fn.bind(undefined, false);
|
| + } else {
|
| + launchData.intent.postResult = function() {};
|
| + launchData.intent.postFailure = function() {};
|
| + }
|
| + }
|
|
|
| if (launchData && intentData) {
|
| switch(intentData.format) {
|
| @@ -23,8 +43,6 @@ chromeHidden.Event.registerArgumentMassager('experimental.app.onLaunched',
|
| try {
|
| fs.root.getFile(intentData.baseName, {}, function(fileEntry) {
|
| launchData.intent.data = fileEntry;
|
| - launchData.intent.postResult = function() {};
|
| - launchData.intent.postFailure = function() {};
|
| dispatch([launchData]);
|
| }, function(fileError) {
|
| console.error('Error getting fileEntry, code: ' + fileError.code);
|
| @@ -38,16 +56,12 @@ chromeHidden.Event.registerArgumentMassager('experimental.app.onLaunched',
|
| case('serialized'):
|
| var deserializedData = DeserializeString(intentData.data);
|
| launchData.intent.data = deserializedData;
|
| - launchData.intent.postResult = function() {};
|
| - launchData.intent.postFailure = function() {};
|
| dispatch([launchData]);
|
| break;
|
| case('blob'):
|
| var blobData = CreateBlob(intentData.blobFilePath,
|
| intentData.blobLength);
|
| launchData.intent.data = blobData;
|
| - launchData.intent.postResult = function() {};
|
| - launchData.intent.postFailure = function() {};
|
| dispatch([launchData]);
|
| break;
|
| default:
|
|
|