Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: sdk/lib/developer/extension.dart

Issue 1299493007: Rework service extensions to be safe (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« runtime/vm/isolate.cc ('K') | « runtime/vm/symbols.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/developer/extension.dart
diff --git a/sdk/lib/developer/extension.dart b/sdk/lib/developer/extension.dart
index f23b5ad5630b266f35c0ef1576cedf6595374ff8..17877853a0d490de3144f93744f6cf16ded586ae 100644
--- a/sdk/lib/developer/extension.dart
+++ b/sdk/lib/developer/extension.dart
@@ -102,17 +102,17 @@ void registerExtension(String method, ServiceExtensionHandler handler) {
_extensions[method] = handler;
}
-bool _scheduleExtension(String method,
- List<String> parameterKeys,
- List<String> parameterValues,
- SendPort replyPort,
- Object id) {
+Object _scheduleExtension(String method,
turnidge 2015/08/20 17:34:39 Function?
Cutch 2015/08/20 18:09:37 Done.
+ List<String> parameterKeys,
+ List<String> parameterValues,
+ SendPort replyPort,
+ Object id) {
ServiceExtensionHandler handler = _extensions[method];
if (handler == null) {
- return false;
+ return null;
}
- // Defer execution of handler until next event loop.
- Timer.run(() {
+ // This closure will be executed at the next turn of the event loop.
+ return () {
var parameters = {};
for (var i = 0; i < parameterKeys.length; i++) {
parameters[parameterKeys[i]] = parameterValues[i];
@@ -148,8 +148,7 @@ bool _scheduleExtension(String method,
}
_postResponse(replyPort, id, response);
});
- });
- return true;
+ };
}
_postResponse(SendPort replyPort,
« runtime/vm/isolate.cc ('K') | « runtime/vm/symbols.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698