Index: chrome/browser/resources/video_player/js/error_util.js |
diff --git a/chrome/browser/resources/video_player/js/error_util.js b/chrome/browser/resources/video_player/js/error_util.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..30a1d542615132afd9240ed9c29b8d29a218ea62 |
--- /dev/null |
+++ b/chrome/browser/resources/video_player/js/error_util.js |
@@ -0,0 +1,43 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
hirono
2014/03/26 02:55:05
nit: 2014
yoshiki
2014/03/26 04:55:52
Done.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+'use strict'; |
+ |
+/** |
+ * This variable is checked in SelectFileDialogExtensionBrowserTest. |
+ * @type {number} |
+ */ |
+window.JSErrorCount = 0; |
+ |
+/** |
+ * Count uncaught exceptions. |
+ */ |
+window.onerror = function() { window.JSErrorCount++; }; |
+ |
+/** |
+ * Wrap the function to use it as a callback. |
hirono
2014/03/26 02:55:05
nit: Wraps
yoshiki
2014/03/26 04:55:52
Done.
|
+ * This does: |
+ * - Capture the stack trace in case of error. |
+ * - Bind this object |
+ * |
+ * @param {Object} thisObject Object to be used as this. |
+ * @return {function} Wapped function. |
+ */ |
+Function.prototype.wrap = function(thisObject) { |
hirono
2014/03/26 02:55:05
Strictly our design guide forbid us to modify prot
yoshiki
2014/03/26 04:55:52
Not "strictly". The guide says "Modifying other bu
hirono
2014/03/26 08:18:31
SGTM.
mtomasz
2014/04/01 19:37:50
Out of curiosity. Why don't we put this code to #1
|
+ var func = this; |
+ var liveStack = (new Error('Stack trace before async call')).stack; |
+ if (thisObject === undefined) |
+ thisObject = null; |
+ |
+ return function wrappedCallback() { |
+ try { |
+ return func.apply(thisObject, arguments); |
+ } catch (e) { |
+ console.error('Exception is happen in callback.', liveStack); |
hirono
2014/03/26 02:55:05
The e.stack is also useful information. Could you
hirono
2014/03/26 02:55:05
nit: Exception happens or Exception is thrown?
yoshiki
2014/03/26 04:55:52
Done.
yoshiki
2014/03/26 04:55:52
The original exception e will be caught by the han
|
+ |
+ window.JSErrorCount++; |
mtomasz
2014/04/01 19:37:50
Aren't we incrementing JSErrorCount twice? #16 and
|
+ throw e; |
+ } |
+ } |
+}; |