// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_PUBLIC_COMMON_RESULT_CODES_H_ #define CONTENT_PUBLIC_COMMON_RESULT_CODES_H_ #include "services/service_manager/embedder/result_codes.h" namespace content { // This file consolidates all the return codes for the browser and renderer // process. The return code is the value that: // a) is returned by main() or winmain(), or // b) specified in the call for ExitProcess() or TerminateProcess(), or // c) the exception value that causes a process to terminate. // // It is advisable to not use negative numbers because the Windows API returns // it as an unsigned long and the exception values have high numbers. For // example EXCEPTION_ACCESS_VIOLATION value is 0xC0000005. // // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content_public.common // // IMPORTANT: This needs to stay in sync with and // in tools/metrics/histograms/enums.xml. Due to // chrome::ResultCode's dependency on the enum values, do not add any new values // here, and mark obsolete values are unused instead of removing them. See // https://crrev.com/c/885090 for context. // TODO(wfh): Break the dependency so it is possible to add more values. enum ResultCode { RESULT_CODE_CONTENT_START = service_manager::RESULT_CODE_LAST_CODE, // Process was killed by user or system. RESULT_CODE_KILLED = RESULT_CODE_CONTENT_START, // Process hung. RESULT_CODE_HUNG, // A bad message caused the process termination. RESULT_CODE_KILLED_BAD_MESSAGE, // The GPU process exited because initialization failed. RESULT_CODE_GPU_DEAD_ON_ARRIVAL, // Last return code (keep this last). RESULT_CODE_LAST_CODE }; static_assert(RESULT_CODE_LAST_CODE == 5, "This enum is frozen - see the IMPORTANT note above."); } // namespace content #endif // CONTENT_PUBLIC_COMMON_RESULT_CODES_H_