webui_explainer.md: Added section on error reporting
Add a section on error reporting, including explanations of when error reports will happen, how to see them, and how to turn them off if desired. Fixed: b:186643751 Change-Id: Id2c70096055be3dcf756a1767d3a262bd5ffca5a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2995494 Commit-Queue: Ian Barkley-Yeung <iby@chromium.org> Reviewed-by: dpapad <dpapad@chromium.org> Cr-Commit-Position: refs/heads/master@{#897602}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
2e3517397a
commit
20a8ff713d
@@ -911,6 +911,45 @@ StoragePartition, a separate frame tree, and restricts postMessage communication
|
|||||||
by default. However, `<webview>` does not support Site Isolation and
|
by default. However, `<webview>` does not support Site Isolation and
|
||||||
therefore it is not advisable to use for any sensitive content.
|
therefore it is not advisable to use for any sensitive content.
|
||||||
|
|
||||||
|
## JavaScript Error Reporting
|
||||||
|
|
||||||
|
By default, errors in the JavaScript of a WebUI page will generate error reports
|
||||||
|
which appear in Google's internal crash/ reports page. These error reports will
|
||||||
|
only be generated for Google Chrome builds, not Chromium or other Chromium-based
|
||||||
|
browsers.
|
||||||
|
|
||||||
|
Specifically, an error report will be generated when the JavaScript for a
|
||||||
|
WebUI-based chrome:// page does one of the following:
|
||||||
|
* Generates an uncaught exception,
|
||||||
|
* Has a promise which is rejected, and no rejection handler is provided, or
|
||||||
|
* Calls `console.error()`.
|
||||||
|
|
||||||
|
Such errors will appear alongside other crashes in the
|
||||||
|
`product_name=Chrome_ChromeOS` or `product_name=Chrome_Linux` lists on crash/.
|
||||||
|
The signature of the error is simply the error message. To avoid
|
||||||
|
spamming the system, only one error report with a given message will be
|
||||||
|
generated per hour.
|
||||||
|
|
||||||
|
If you are getting error reports for an expected condition, you can turn off the
|
||||||
|
reports simply by changing `console.error()` into `console.warn()`.
|
||||||
|
|
||||||
|
If you wish to get more control of the JavaScript error messages, for example
|
||||||
|
to change the product name or to add additional data, you may wish to switch to
|
||||||
|
using `CrashReportPrivate.reportError()`. If you do so, be sure to override
|
||||||
|
`WebUIController::IsJavascriptErrorReportingEnabled()` to return false for your
|
||||||
|
page; this will avoid generating redundant error reports.
|
||||||
|
|
||||||
|
Known issues:
|
||||||
|
1. Error reporting is currently enabled only on ChromeOS and Linux.
|
||||||
|
2. Errors are only reported for chrome:// URLs.
|
||||||
|
3. Unhandled promise rejections do not have a good stack.
|
||||||
|
4. The line numbers and column numbers in the stacks are for the minified
|
||||||
|
JavaScript and do not correspond to the line and column numbers of the
|
||||||
|
original source files.
|
||||||
|
5. Error messages with variable strings do not group well. For example, if the
|
||||||
|
error message includes the name of a network, each network name will be its
|
||||||
|
own signature.
|
||||||
|
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user