| // Copyright 2017 The Cobalt Authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Defines an interface for setting arbitrary values to be logged (in a |
| // platform-specific way) whenever a crash occurs. For example, a platform |
| // may implement this by uploading the data to a central crash report |
| // repository that can be examined later. |
| // Platforms typically have maximum crash log data sizes on the order of 16KB, |
| // but it varies per platform. |
| interface H5vccCrashLog { |
| // Returns true if the string was successfully set in the crash log, and false |
| // if for some reason the string could not be set in the crash log. |
| // Sets a (key, value) string pair that should be logged if a crash occurs. |
| boolean setString(DOMString key, DOMString value); |
| |
| // Induce a crash. This attempts, but does not guarantee, to cause a specified |
| // type of crash. The result may vary by platform. This API is intended for |
| // reliability testing only. |
| void triggerCrash(H5vccCrashType intent); |
| |
| // Returns true if Watchdog client was registered. |
| // name, Watchdog client to register. |
| // description, information on the Watchdog client. |
| // monitor_state, application state up to which the client is monitored. |
| // time_interval, maximum number of microseconds allowed between pings |
| // before triggering a Watchdog violation. |
| // time_wait, number of microseconds to initially wait before Watchdog |
| // violations can be triggered. |
| // replace, behavior with previously registered Watchdog clients of the |
| // same name. |
| boolean register(DOMString name, DOMString description, |
| WatchdogState watchdog_state, long long time_interval, |
| long long time_wait, WatchdogReplace watchdog_replace); |
| |
| // Returns true if Watchdog client was unregistered. Name determines the |
| // Watchdog client to unregister. |
| boolean unregister(DOMString name); |
| |
| // Returns true if Watchdog client was pinged. Name determines the Watchdog |
| // client to ping with ping_info which can either be empty or contain relevant |
| // metadata. |
| boolean ping(DOMString name, DOMString ping_info); |
| |
| // Returns a json string containing the Watchdog violations. Current boolean |
| // determines whether the current file representing ongoing violations or the |
| // previous file containing violations from previous app starts and since the |
| // last call (up to a limit) is returned. |
| DOMString getWatchdogViolations(boolean current); |
| |
| // Gets a persistent Watchdog setting that determines whether or not a |
| // Watchdog violation will trigger a crash. |
| boolean getPersistentSettingWatchdogCrash(); |
| |
| // Sets a persistent Watchdog setting that determines whether or not a |
| // Watchdog violation will trigger a crash. |
| void setPersistentSettingWatchdogCrash(boolean can_trigger_crash); |
| }; |