Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var GetAvailability = requireNative('v8_context').GetAvailability; | 5 var GetAvailability = requireNative('v8_context').GetAvailability; |
| 6 var GetGlobal = requireNative('sendRequest').GetGlobal; | 6 var GetGlobal = requireNative('sendRequest').GetGlobal; |
| 7 | 7 |
| 8 // Utility for setting chrome.*.lastError. | 8 // Utility for setting chrome.*.lastError. |
| 9 // | 9 // |
| 10 // A utility here is useful for two reasons: | 10 // A utility here is useful for two reasons: |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 106 * | 106 * |
| 107 * The target chrome object is the global object's of the callback, so this | 107 * The target chrome object is the global object's of the callback, so this |
| 108 * method won't work if the real callback has been wrapped (etc). | 108 * method won't work if the real callback has been wrapped (etc). |
| 109 */ | 109 */ |
| 110 function run(name, message, stack, callback, args) { | 110 function run(name, message, stack, callback, args) { |
| 111 var targetChrome = GetGlobal(callback).chrome; | 111 var targetChrome = GetGlobal(callback).chrome; |
| 112 set(name, message, stack, targetChrome); | 112 set(name, message, stack, targetChrome); |
| 113 try { | 113 try { |
| 114 $Function.apply(callback, undefined, args); | 114 $Function.apply(callback, undefined, args); |
| 115 } finally { | 115 } finally { |
| 116 if (!hasAccessed(targetChrome)) | |
|
not at google - send to devlin
2015/01/20 17:41:35
This doesn't look right, it'll always print an err
robwu
2015/01/20 22:34:01
This is correct. Function run sets chrome.runtime.
not at google - send to devlin
2015/01/21 22:21:19
What am I missing here? If I do:
chrome.someNames
robwu
2015/01/21 23:21:09
callback is a user-supplied callback. That "// cod
not at google - send to devlin
2015/01/21 23:24:32
but if there isn't an error, it'll still print a n
robwu
2015/01/21 23:28:18
A few lines earlier, chrome.runtime.lastError is s
| |
| 117 reportUncheckedLastError(name, message, stack); | |
| 116 clear(targetChrome); | 118 clear(targetChrome); |
| 117 } | 119 } |
| 118 } | 120 } |
| 119 | 121 |
| 122 /** | |
| 123 * Call this method when runtime.lastError was set but not checked. | |
| 124 * This notifies the developer of the error via the (error) console. | |
| 125 * | |
| 126 * @param {string=} name - name of API. | |
| 127 * @param {string} message - error description. | |
| 128 * @param {string=} stack - Stack trace of the call up to the error. | |
| 129 */ | |
| 130 function reportUncheckedLastError(name, message, stack) { | |
|
not at google - send to devlin
2015/01/20 17:41:35
Given that this method is under the "lastError" na
robwu
2015/01/20 22:34:01
If we couple this method with the chrome object, t
robwu
2015/01/21 23:21:09
Done.
| |
| 131 console.error("Unchecked runtime.lastError while running " + | |
| 132 (name || "unknown") + ": " + message + (stack ? "\n" + stack : "")); | |
| 133 } | |
| 134 | |
| 120 exports.clear = clear; | 135 exports.clear = clear; |
| 121 exports.hasAccessed = hasAccessed; | 136 exports.hasAccessed = hasAccessed; |
| 122 exports.hasError = hasError; | 137 exports.hasError = hasError; |
| 123 exports.set = set; | 138 exports.set = set; |
| 124 exports.run = run; | 139 exports.run = run; |
| 140 exports.reportUncheckedLastError = reportUncheckedLastError; | |
| OLD | NEW |