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

Unified Diff: pkg/unittest/html_config.dart

Issue 10968040: Eliminate some of the flakiness in testing: (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: 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
« no previous file with comments | « no previous file | pkg/unittest/html_enhanced_config.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/unittest/html_config.dart
===================================================================
--- pkg/unittest/html_config.dart (revision 12658)
+++ pkg/unittest/html_config.dart (working copy)
@@ -19,25 +19,41 @@
// TODO(rnystrom): Get rid of this if we get canonical closures for methods.
EventListener _onErrorClosure;
+ EventListener _onMessageClosure;
- void _installErrorHandler() {
+ void _installHandlers() {
if (_onErrorClosure == null) {
_onErrorClosure =
(e) => handleExternalError(e, '(DOM callback has errors)');
// Listen for uncaught errors.
window.on.error.add(_onErrorClosure);
}
+ if (_onMessageClosure == null) {
+ _onMessageClosure = (e) => processMessage(e);
+ // Listen for errors from JS.
+ window.on.message.add(_onMessageClosure);
+ }
}
- void _uninstallErrorHandler() {
+ void _uninstallHandlers() {
if (_onErrorClosure != null) {
window.on.error.remove(_onErrorClosure);
_onErrorClosure = null;
}
+ if (_onMessageClosure != null) {
+ window.on.message.remove(_onMessageClosure);
+ _onMessageClosure = null;
+ }
}
+ void processMessage(e) {
+ if ('unittest-suite-external-error' == e.data) {
+ handleExternalError('<unknown>', '(external error detected)');
+ }
+ }
+
void onInit() {
- _installErrorHandler();
+ _installHandlers();
}
void onStart() {
@@ -48,7 +64,7 @@
void onDone(int passed, int failed, int errors, List<TestCase> results,
String uncaughtError) {
- _uninstallErrorHandler();
+ _uninstallHandlers();
_showResultsInPage(passed, failed, errors, results, _isLayoutTest,
uncaughtError);
window.postMessage('unittest-suite-done', '*');
« no previous file with comments | « no previous file | pkg/unittest/html_enhanced_config.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698