chromium/chrome/common/extensions/api/crash_report_private.idl

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Private API for Chrome component extensions to report errors.
[platforms=("chromeos")]
namespace crashReportPrivate {
  // A dictionary containing additional context about the error.
  dictionary ErrorInfo {
    // The error message.
    DOMString message;

    // URL where the error occurred.
    // Must be the full URL, containing the protocol (e.g.
    // http://www.example.com).
    DOMString url;

    // Name of the product where the error occurred.
    // Defaults to the product variant of Chrome that is hosting the extension.
    // (e.g. "Chrome" or "Chrome_ChromeOS").
    DOMString? product;

    // Version of the product where the error occurred.
    // Defaults to the version of Chrome that is hosting the extension (e.g.
    // "73.0.3683.75").
    DOMString? version;

    // Line number where the error occurred.
    long? lineNumber;

    // Column number where the error occurred.
    long? columnNumber;

    // Used to map the obfuscated source code back to a source map. If present,
    // must match the debug_id used to upload the source map.
    DOMString? debugId;

    // String containing the stack trace for the error.
    // Defaults to the empty string.
    DOMString? stackTrace;
  };

  // Callback for |reportError|.
  callback ReportCallback = void ();

  interface Functions {
    // Report and upload an error to Crash.
    // |info|: Information about the error.
    // |callback|: Called when the error has been uploaded.
    static void reportError(
        ErrorInfo info,
        ReportCallback callback);
  };
};