Chromium Code Reviews| 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) { |
|
benwells
2013/03/13 03:58:29
Why is this done in an anonymous function?
koz (OOO until 15th September)
2013/03/13 05:01:13
Because the var fe, fs above are actually scoped t
|
| + 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) { |