// Generated with https://crrev.com/c/2220116 and:
//   python3 tools/state_transitions/state_graph.py content/browser/renderer_host/navigation_request.cc NavigationState
//
// See tools/state_transitions/README.md
digraph createflow {
  NOT_STARTED -> {WAITING_FOR_RENDERER_RESPONSE, WILL_START_NAVIGATION, WILL_START_REQUEST};
  WAITING_FOR_RENDERER_RESPONSE -> {WILL_START_NAVIGATION};
  WILL_START_NAVIGATION -> {WILL_START_REQUEST, WILL_FAIL_REQUEST};
  WILL_START_REQUEST -> {WILL_REDIRECT_REQUEST, WILL_PROCESS_RESPONSE, READY_TO_COMMIT, DID_COMMIT, CANCELING, WILL_FAIL_REQUEST, DID_COMMIT_ERROR_PAGE};
  WILL_REDIRECT_REQUEST -> {WILL_REDIRECT_REQUEST, WILL_PROCESS_RESPONSE, CANCELING, WILL_FAIL_REQUEST};
  WILL_PROCESS_RESPONSE -> {READY_TO_COMMIT, CANCELING, WILL_FAIL_REQUEST};
  READY_TO_COMMIT -> {NOT_STARTED, DID_COMMIT, DID_COMMIT_ERROR_PAGE};
  DID_COMMIT -> {};
  CANCELING -> {READY_TO_COMMIT, WILL_FAIL_REQUEST};
  WILL_FAIL_REQUEST -> {READY_TO_COMMIT, CANCELING, WILL_FAIL_REQUEST};
  DID_COMMIT_ERROR_PAGE -> {};
}
