MCPcopy
hub / github.com/ampproject/amphtml / maybeReportErrorToViewer

Function maybeReportErrorToViewer

src/error-reporting.js:415–437  ·  view source on GitHub ↗
(win, data)

Source from the content-addressed store, hash-verified

413 * @visibleForTesting
414 */
415export function maybeReportErrorToViewer(win, data) {
416 const ampdocService = Services.ampdocServiceFor(win);
417 if (!ampdocService.isSingleDoc()) {
418 return Promise.resolve(false);
419 }
420 const ampdocSingle = ampdocService.getSingleDoc();
421 const htmlElement = ampdocSingle.getRootNode().documentElement;
422 const docOptedIn = htmlElement.hasAttribute('report-errors-to-viewer');
423 if (!docOptedIn) {
424 return Promise.resolve(false);
425 }
426 const viewer = Services.viewerForDoc(ampdocSingle);
427 if (!viewer.hasCapability('errorReporter')) {
428 return Promise.resolve(false);
429 }
430 return viewer.isTrustedViewer().then((viewerTrusted) => {
431 if (!viewerTrusted) {
432 return false;
433 }
434 viewer.sendMessage('error', errorReportingDataForViewer(data));
435 return true;
436 });
437}
438
439/**
440 * Strips down the error reporting data to a minimal set

Callers 1

Calls 9

resolveMethod · 0.80
getSingleDocMethod · 0.80
isSingleDocMethod · 0.45
getRootNodeMethod · 0.45
hasCapabilityMethod · 0.45
thenMethod · 0.45
isTrustedViewerMethod · 0.45
sendMessageMethod · 0.45

Tested by

no test coverage detected