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

Unified Diff: lib/html/src/Isolates.dart

Issue 10960062: Fix SendPortSync dispatch for FF (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Cleanup for dartium Created 8 years, 3 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
Index: lib/html/src/Isolates.dart
diff --git a/lib/html/src/Isolates.dart b/lib/html/src/Isolates.dart
index e3e89c708e8335441c770d02345dfd8000b38d9b..3bbbf7f6c741d7327d89ad1e38a077cc4e2eff52 100644
--- a/lib/html/src/Isolates.dart
+++ b/lib/html/src/Isolates.dart
@@ -89,8 +89,8 @@ class _RemoteSendPortSync implements SendPortSync {
// TODO(vsm): Set this up set once, on the first call.
var source = '$target-result';
var result = null;
- var listener = (TextEvent e) {
- result = JSON.parse(e.data);
+ var listener = (Event e) {
blois 2012/09/24 22:20:14 Seems like this should be CustomEvent, no? detail
vsm 2012/09/25 16:22:51 I've had the change the Event type a couple times,
+ result = JSON.parse(_getPortSyncEventData(e));
};
window.on[source].add(listener);
_dispatchEvent(target, [source, message]);
@@ -161,8 +161,8 @@ class ReceivePortSync {
void receive(callback(var message)) {
_callback = callback;
if (_listener === null) {
- _listener = (TextEvent e) {
- var data = JSON.parse(e.data);
+ _listener = (Event e) {
blois 2012/09/24 22:20:14 CustomEvent?
vsm 2012/09/25 16:22:51 See above. On 2012/09/24 22:20:14, blois wrote:
+ var data = JSON.parse(_getPortSyncEventData(e));
var replyTo = data[0];
var message = _deserialize(data[1]);
var result = _callback(message);
@@ -193,7 +193,9 @@ class ReceivePortSync {
get _isolateId => ReceivePortSync._isolateId;
void _dispatchEvent(String receiver, var message) {
- var event = document.$dom_createEvent('TextEvent');
- event.initTextEvent(receiver, false, false, window, JSON.stringify(message));
+ var event = document.$dom_createEvent('CustomEvent');
+ event.initCustomEvent(receiver, false, false, JSON.stringify(message));
window.$dom_dispatchEvent(event);
}
+
+String _getPortSyncEventData(CustomEvent event) => event.detail;

Powered by Google App Engine
This is Rietveld 408576698