| Index: chrome/renderer/resources/extensions/app_runtime_custom_bindings.js
|
| diff --git a/chrome/renderer/resources/extensions/app_runtime_custom_bindings.js b/chrome/renderer/resources/extensions/app_runtime_custom_bindings.js
|
| index d17d2e55fa76c8696fe26e0b90475b1af60ca3d9..0f3a0f784daa5cc6874c6d2ae5c3b2a72a5fb9d7 100644
|
| --- a/chrome/renderer/resources/extensions/app_runtime_custom_bindings.js
|
| +++ b/chrome/renderer/resources/extensions/app_runtime_custom_bindings.js
|
| @@ -15,6 +15,38 @@ var appNatives = requireNative('app_runtime');
|
| var DeserializeString = appNatives.DeserializeString;
|
| var SerializeToString = appNatives.SerializeToString;
|
| var CreateBlob = appNatives.CreateBlob;
|
| +var entryIdManager = require('entryIdManager');
|
| +
|
| +chromeHidden.Event.registerArgumentMassager('app.runtime.onRestarted',
|
| + function(args, dispatch) {
|
| + // These file entries don't get dispatched, we just use this hook to register
|
| + // them all with entryIdManager.
|
| + var fileEntries = args[0];
|
| +
|
| + var pendingCallbacks = fileEntries.length;
|
| +
|
| + var dispatchIfNoPendingCallbacks = function() {
|
| + if (pendingCallbacks == 0)
|
| + dispatch([]);
|
| + };
|
| +
|
| + for (var i = 0; i < fileEntries.length; i++) {
|
| + var fe = fileEntries[i];
|
| + var fs = GetIsolatedFileSystem(fe.fileSystemId);
|
| + (function(fe, fs) {
|
| + fs.root.getFile(fe.baseName, {}, function(fileEntry) {
|
| + entryIdManager.registerEntry(fe.id, fileEntry);
|
| + pendingCallbacks--;
|
| + dispatchIfNoPendingCallbacks();
|
| + }, function(err) {
|
| + console.error('Error getting fileEntry, code: ' + err.code);
|
| + pendingCallbacks--;
|
| + dispatchIfNoPendingCallbacks();
|
| + });
|
| + })(fe, fs);
|
| + }
|
| + dispatchIfNoPendingCallbacks();
|
| +});
|
|
|
| chromeHidden.Event.registerArgumentMassager('app.runtime.onLaunched',
|
| function(args, dispatch) {
|
|
|