option optimize_for = SPEED;
option cc_generic_services = false;

enum EJSRegisterMethodType {
	k_EJSRegisterMethodType_Invalid = 0;
	k_EJSRegisterMethodType_Function = 1;
	k_EJSRegisterMethodType_Callback = 2;
	k_EJSRegisterMethodType_Promise = 3;
}

message CMsgKeyUp {
	optional uint32 browser_handle = 1;
	optional uint32 keyCode = 2;
	optional uint32 modifiers = 3;
}

message CMsgKeyDown {
	optional uint32 browser_handle = 1;
	optional uint32 keyCode = 2;
	optional uint32 modifiers = 3;
	optional bool is_system_key = 4;
}

message CMsgKeyChar {
	optional uint32 browser_handle = 1;
	optional uint32 unichar = 2;
	optional uint32 modifiers = 3;
}

message CMsgMouseDown {
	optional uint32 browser_handle = 1;
	optional uint32 mouse_button = 2;
	optional uint32 modifiers = 3;
}

message CMsgMouseUp {
	optional uint32 browser_handle = 1;
	optional uint32 mouse_button = 2;
	optional uint32 modifiers = 3;
	optional bool is_off_panel = 4;
	optional int32 x = 5;
	optional int32 y = 6;
}

message CMsgMouseDblClick {
	optional uint32 browser_handle = 1;
	optional uint32 mouse_button = 2;
	optional uint32 modifiers = 3;
}

message CMsgMouseWheel {
	optional uint32 browser_handle = 1;
	optional int32 deltax = 2;
	optional int32 deltay = 3;
	optional uint32 modifiers = 4;
}

message CMsgMouseMove {
	optional uint32 browser_handle = 1;
	optional int32 x = 2;
	optional int32 y = 3;
	optional uint32 modifiers = 4;
}

message CMsgMouseLeave {
	optional uint32 browser_handle = 1;
}

message CMsgBrowserCreate {
	optional uint32 request_id = 1;
	optional string useragent = 3;
	optional string user_css = 5;
	optional bool native_dropdowns = 6;
	optional float dpi_scaling = 7;
	optional bool offscreen = 8 [default = true];
	optional uint32 initial_width = 9 [default = 0];
	optional uint32 initial_height = 10 [default = 0];
	optional string window_icon = 11;
	optional bool borderless = 12 [default = false];
	optional string vroverlay_key = 13;
	optional uint32 browser_type = 14 [default = 0];
	optional int32 initial_top = 15 [default = -2147483648];
	optional int32 initial_left = 16 [default = -2147483648];
	optional bool only_allow_trusted_popups = 17 [default = false];
	optional string initial_url = 18;
	optional fixed64 hwnd_parent = 19;
}

message CMsgBrowserCreateResponse {
	optional uint32 browser_handle = 1;
	optional uint32 request_id = 2;
}

message CMsgBrowserRemove {
	optional uint32 browser_handle = 1;
}

message CMsgSetLocalFileRequestMapping {
	message AdditionalRoute {
		optional string relative_url = 1;
		optional string local_path = 2;
		optional string allowed_extensions = 3;
	}

	optional uint32 browser_handle = 1;
	optional string request_url = 2;
	optional string default_local_path = 3;
	repeated .CMsgSetLocalFileRequestMapping.AdditionalRoute routes = 4;
}

message CMsgBrowserErrorStrings {
	optional uint32 browser_handle = 1;
	optional string title = 2;
	optional string header = 3;
	optional string cache_miss = 4;
	optional string bad_url = 5;
	optional string connection_problem = 6;
	optional string proxy_problem = 7;
	optional string unknown = 8;
}

message CMsgBrowserSize {
	optional uint32 browser_handle = 1;
	optional uint32 width = 2;
	optional uint32 height = 3;
}

message CMsgBrowserSetMinSize {
	optional uint32 browser_handle = 1;
	optional uint32 width = 2;
	optional uint32 height = 3;
}

message CMsgBrowserPosition {
	optional uint32 browser_handle = 1;
	optional int32 x = 2;
	optional int32 y = 3;
	optional int32 x_local = 4;
	optional int32 y_local = 5;
}

message CMsgBrowserResized {
	optional uint32 browser_handle = 1;
	optional int32 x = 2;
	optional int32 y = 3;
	optional uint32 width = 4;
	optional uint32 height = 5;
}

message CMsgPostURL {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string post = 3;
	optional uint32 pageserial = 4;
}

message CMsgAddHeader {
	optional uint32 browser_handle = 1;
	optional string key = 2;
	optional string value = 3;
}

message CMsgStopLoad {
	optional uint32 browser_handle = 1;
}

message CMsgReload {
	optional uint32 browser_handle = 1;
}

message CMsgGoForward {
	optional uint32 browser_handle = 1;
}

message CMsgGoBack {
	optional uint32 browser_handle = 1;
}

message CMsgWasHidden {
	optional uint32 browser_handle = 1;
	optional bool hidden = 2;
}

message CMsgClearHistory {
	optional uint32 browser_handle = 1;
}

message CMsgClearAllBrowsingData {
	optional uint32 browser_handle = 1;
}

message CMsgCopy {
	optional uint32 browser_handle = 1;
}

message CMsgPaste {
	optional uint32 browser_handle = 1;
}

message CMsgExecuteJavaScript {
	optional uint32 browser_handle = 1;
	optional string script = 2;
}

message CMsgSetFocus {
	optional uint32 browser_handle = 1;
	optional bool focus = 2;
}

message CMsgHorizontalScrollBarSize {
	optional uint32 browser_handle = 1;
}

message CMsgHorizontalScrollBarSizeResponse {
	optional uint32 browser_handle = 1;
	optional uint32 scroll_max = 6;
	optional uint32 scroll = 7;
	optional float zoom = 8;
	optional bool visible = 9;
	optional uint32 page_size = 10;
}

message CMsgVerticalScrollBarSize {
	optional uint32 browser_handle = 1;
}

message CMsgVerticalScrollBarSizeResponse {
	optional uint32 browser_handle = 1;
	optional uint32 scroll_max = 6;
	optional uint32 scroll = 7;
	optional float zoom = 8;
	optional bool visible = 9;
	optional uint32 page_size = 10;
}

message CMsgFind {
	optional uint32 browser_handle = 1;
	optional string find = 2;
	optional bool infind = 3;
	optional bool reverse = 4 [default = false];
}

message CMsgStopFind {
	optional uint32 browser_handle = 1;
}

message CMsgSetHorizontalScroll {
	optional uint32 browser_handle = 1;
	optional uint32 scroll = 2;
}

message CMsgSetVerticalScroll {
	optional uint32 browser_handle = 1;
	optional uint32 scroll = 2;
}

message CMsgSetZoomLevel {
	optional uint32 browser_handle = 1;
	optional double zoom = 2;
}

message CMsgViewSource {
	optional uint32 browser_handle = 1;
}

message CMsgBrowserReady {
	optional uint32 browser_handle = 1;
	optional string vr_overlay_key = 2;
	optional fixed64 hwnd_browser = 3;
}

message CMsgURLChanged {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string postData = 3;
	optional bool bIsRedirect = 4;
	optional string pagetitle = 5;
	optional bool bNewNavigation = 6;
}

message CHTMLHeader {
	optional string key = 1;
	optional string value = 2;
}

message CHTMLPageSecurityInfo {
	optional bool bIsSecure = 1 [default = false];
	optional bool bHasCertError = 2 [default = false];
	optional string issuerName = 3;
	optional string certName = 4;
	optional int32 certExpiry = 5 [default = 0];
	optional int32 nCertBits = 6 [default = 0];
	optional bool bIsEVCert = 7 [default = false];
}

message CMsgFinishedRequest {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string pageTitle = 3;
}

message CMsgLoadedRequest {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string pageTitle = 3;
	repeated .CHTMLHeader headers = 5;
}

message CMsgPageSecurity {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional .CHTMLPageSecurityInfo security_info = 3;
}

message CMsgStartRequest {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string target = 3;
	optional string postData = 4;
	optional bool bIsRedirect = 5;
}

message CMsgStartRequestResponse {
	optional uint32 browser_handle = 1;
	optional bool bAllow = 2;
}

message CMsgShowPopup {
	optional uint32 browser_handle = 1;
}

message CMsgHidePopup {
	optional uint32 browser_handle = 1;
}

message CMsgSizePopup {
	optional uint32 browser_handle = 1;
	optional int32 x = 2;
	optional int32 y = 3;
	optional uint32 wide = 4;
	optional uint32 tall = 5;
}

message CMsgOpenNewTab {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional bool bForeground = 3;
}

message CMsgPopupHTMLWindow {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional int32 x = 3 [default = -2147483648];
	optional int32 y = 4 [default = -2147483648];
	optional uint32 wide = 5;
	optional uint32 tall = 6;
	optional uint32 popup_index = 7;
	optional bool trusted_creator = 8;
}

message CMsgPopupHTMLWindowResponse {
	optional uint32 browser_handle = 1;
	optional bool bAllow = 2;
}

message CMsgSetHTMLTitle {
	optional uint32 browser_handle = 1;
	optional string title = 2;
}

message CMsgLoadingResource {
	optional uint32 browser_handle = 1;
	optional string url = 2;
}

message CMsgStatusText {
	optional uint32 browser_handle = 1;
	optional string text = 2;
}

message CMsgSetCursor {
	optional uint32 browser_handle = 1;
	optional uint32 cursor = 2;
	optional bytes custom_data = 3;
	optional uint32 wide = 4;
	optional uint32 tall = 5;
	optional uint32 xhotspot = 6;
	optional uint32 yhotspot = 7;
}

message CMsgFileLoadDialog {
	optional uint32 browser_handle = 1;
	optional string title = 2;
	optional string initialFile = 3;
}

message CMsgFileLoadDialogResponse {
	optional uint32 browser_handle = 1;
	repeated string files = 2;
}

message CMsgShowToolTip {
	optional uint32 browser_handle = 1;
	optional string text = 2;
}

message CMsgUpdateToolTip {
	optional uint32 browser_handle = 1;
	optional string text = 2;
}

message CMsgHideToolTip {
	optional uint32 browser_handle = 1;
}

message CMsgSearchResults {
	optional uint32 browser_handle = 1;
	optional int32 activeMatch = 2;
	optional int32 results = 3;
}

message CMsgClose {
	optional uint32 browser_handle = 1;
}

message CMsgSetSharedPaintBuffers {
	optional uint32 browser_handle = 1;
	optional uint32 wide = 2;
	optional uint32 tall = 3;
	optional uint64 source_pid = 4;
	optional uint64 source_handle = 5;
	optional uint64 handle = 6;
}

message CMsgAckSharedPaintBuffers {
	optional uint32 browser_handle = 1;
}

message CMsgNeedsPaint {
	optional uint32 browser_handle = 1;
	optional uint32 scrollx = 10;
	optional uint32 scrolly = 11;
	optional float pagescale = 12;
	optional uint32 pageserial = 15;
}

message CMsgComboNeedsPaint {
	optional uint32 browser_handle = 1;
	optional uint64 rgba = 2;
	optional uint32 combobox_wide = 3 [default = 0];
	optional uint32 combobox_tall = 4 [default = 0];
	optional uint64 shared_memory_handle = 5 [default = 0];
	optional uint64 shared_memory_size = 7 [default = 0];
}

message CMsgNeedsSharedTexturePaint {
	optional uint32 browser_handle = 1;
	optional uint32 share_handle = 2;
	optional uint32 width = 3;
	optional uint32 height = 4;
	optional uint32 scrollx = 5;
	optional uint32 scrolly = 6;
	optional float pagescale = 7;
	optional uint32 pageserial = 8;
}

message CMsgGameOverlayTexturePaint {
	optional uint32 browser_handle = 1;
	optional uint32 width = 3;
	optional uint32 height = 4;
	optional uint32 scrollx = 5;
	optional uint32 scrolly = 6;
	optional float pagescale = 7;
	optional uint32 pageserial = 8;
}

message CMsgGetZoom {
	optional uint32 browser_handle = 1;
}

message CMsgGetZoomResponse {
	optional uint32 browser_handle = 1;
	optional float zoom = 2;
}

message CMsgLinkAtPosition {
	optional uint32 browser_handle = 1;
	optional uint32 x = 2;
	optional uint32 y = 3;
}

message CMsgLinkAtPositionResponse {
	optional uint32 browser_handle = 1;
	optional uint32 x = 2;
	optional uint32 y = 3;
	optional string url = 4;
	optional bool blivelink = 5;
	optional bool binput = 6;
}

message CMsgZoomToElementAtPosition {
	optional uint32 browser_handle = 1;
	optional uint32 x = 2;
	optional uint32 y = 3;
}

message CMsgZoomToElementAtPositionResponse {
	optional uint32 browser_handle = 1;
	optional float scale = 2;
	optional float duration = 3;
}

message CMsgScalePageToValue {
	optional uint32 browser_handle = 1;
	optional float scale = 2;
	optional float x = 3;
	optional float y = 4;
}

message CMsgScalePageToValueResponse {
	optional uint32 browser_handle = 1;
	optional float zoom = 2;
}

message CMsgSavePageToJPEG {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string filename = 3;
	optional uint32 width = 4;
	optional uint32 height = 5;
}

message CMsgSavePageToJPEGResponse {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string filename = 3;
}

message CMsgJSAlert {
	optional uint32 browser_handle = 1;
	optional string message = 2;
}

message CMsgJSConfirm {
	optional uint32 browser_handle = 1;
	optional string message = 2;
}

message CMsgJSDialogResponse {
	optional uint32 browser_handle = 1;
	optional bool result = 2;
}

message CMsgCanGoBackAndForward {
	optional uint32 browser_handle = 1;
	optional bool bgoback = 2;
	optional bool bgoforward = 3;
}

message CMsgOpenSteamURL {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	optional string referrer = 3;
}

message CMsgSetCookie {
	optional string key = 1;
	optional string value = 2;
	optional string path = 3;
	optional string host = 4;
	optional uint32 expires = 5;
	optional bool secure = 6;
	optional bool httponly = 7;
}

message CMsgSetTargetFrameRate {
	optional uint32 browser_handle = 1;
	optional uint32 nTargetFrameRate = 2;
}

message CMsgPauseRepaint {
	optional uint32 browser_handle = 1;
}

message CMsgFullRepaint {
	optional uint32 browser_handle = 1;
}

message CMsgRequestFullScreen {
	optional uint32 browser_handle = 1;
}

message CMsgExitFullScreen {
	optional uint32 browser_handle = 1;
}

message CMsgToggleFindInPageDialog {
	optional uint32 browser_handle = 1;
}

message CMsgSetPIDShuttingDown {
	optional uint32 browser_handle = 1;
}

message CMsgDisableBackgroundThrottling {
	optional uint32 browser_handle = 1;
}

message CMsgAckPIDShuttingDown {
	optional uint32 browser_handle = 1;
}

message CMsgGetCookiesForURL {
	optional uint32 browser_handle = 1;
	optional string url = 2;
}

message CCookie {
	optional string name = 1;
	optional string value = 2;
	optional string domain = 3;
	optional string path = 4;
}

message CMsgGetCookiesForURLResponse {
	optional uint32 browser_handle = 1;
	optional string url = 2;
	repeated .CCookie cookies = 3;
}

message CMsgNodeHasFocus {
	optional uint32 browser_handle = 1;
	optional bool bInput = 2;
	optional string name = 3;
	optional string elementtagname = 4;
	optional string searchbuttontext = 5;
	optional bool bHasMultipleInputs = 6;
	optional string input_type = 7;
}

message CMsgZoomToFocusedElement {
	optional uint32 browser_handle = 1;
}

message CMsgCloseFullScreenFlashIfOpen {
	optional uint32 browser_handle = 1;
}

message CMsgPauseFullScreenFlashMovieIfOpen {
	optional uint32 browser_handle = 1;
}

message CMsgFocusedNodeText {
	optional uint32 browser_handle = 1;
}

message CMsgFocusedNodeTextResponse {
	optional uint32 browser_handle = 1;
	optional string value = 2;
}

message CMsgBuildID {
	optional uint64 build_id = 1;
}

message CMsgOpenDevTools {
	optional uint32 browser_handle = 1;
}

message CMsgCloseDevTools {
	optional uint32 browser_handle = 1;
}

message CMsgUnlockH264 {
	optional uint32 browser_handle = 1;
	optional string unlock_code = 2;
}

message CMsgScreenInformationChanged {
	optional uint32 browser_handle = 1;
	optional uint32 override_width = 2;
	optional uint32 override_height = 3;
	optional uint32 monitor_left = 4;
	optional uint32 monitor_top = 5;
	optional uint32 monitor_right = 6;
	optional uint32 monitor_bottom = 7;
	optional uint32 usable_left = 8;
	optional uint32 usable_top = 9;
	optional uint32 usable_right = 10;
	optional uint32 usable_bottom = 11;
}

message CMsgClearAllCookies {
	optional uint32 browser_handle = 1;
}

message CMsgScreenDPI {
	optional uint32 browser_handle = 1;
	optional float dpi_scaling = 2;
}

message CMsgAuthedSteamDomains {
	repeated string domains = 1;
}

message CMsgSteamAuthNeeded {
	optional bool filler = 1;
}

message CMsgSteamAuthCookiesSet {
	optional bool success = 1;
}

message CMsgJSRegisterMethod {
	optional uint32 browser_handle = 1;
	optional string name = 2;
	optional .EJSRegisterMethodType method_type = 3 [default = k_EJSRegisterMethodType_Invalid];
}

message CJSMethodArgument {
	optional string json_data = 1;
	optional uint64 function_handle = 2;
}

message CMsgJSValue {
	message JSObjectProperty {
		optional string name = 1;
		optional .CMsgJSValue value = 2;
	}

	optional bool bool_value = 1;
	optional int32 int_value = 2;
	optional uint32 uint_value = 3;
	optional double double_value = 4;
	optional string string_value = 5;
	optional uint64 function_handle = 6;
	optional bool is_array = 8;
	repeated .CMsgJSValue array_values = 9;
	optional bool is_object = 10;
	repeated .CMsgJSValue.JSObjectProperty object_properties = 11;
}

message CMsgJSMethodCall {
	optional uint32 browser_handle = 1;
	optional string name = 2;
	repeated .CMsgJSValue arguments = 3;
}

message CMsgJSExecuteCallback {
	optional uint32 browser_handle = 1;
	optional uint64 function_handle = 2;
	repeated .CMsgJSValue arguments = 3;
}

message CMsgJSReleaseCallback {
	optional uint32 browser_handle = 1;
	optional uint64 function_handle = 2;
}

message CMsgJSRaiseException {
	optional uint32 browser_handle = 1;
	optional string exception = 2;
}

message CMsgLoadLocalization {
	optional uint32 browser_handle = 1;
	optional string localization_path = 2;
	optional string language = 3;
}

message CMsgJumpListLink {
	optional string display_name = 1;
	optional string url_link = 2;
	optional string icon_path = 3;
}

message CMSgJumpListMRUApp {
	optional uint32 appid = 1;
	optional string display_name = 2;
	optional string url_link = 3;
	optional string icon_path = 4;
}

message CMsgSetJumpList {
	optional string steam_path = 1;
	optional string mru_title = 2;
	repeated .CMSgJumpListMRUApp apps = 3;
	repeated .CMsgJumpListLink links = 4;
}

message CMsgSetGameOverlayTargetPIDs {
	optional uint32 browser_handle = 1;
	repeated uint32 target_pid = 2;
}

message CMsgGameOverlayTargetTextureID {
	optional uint32 browser_handle = 1;
	optional uint32 target_pid = 2;
	optional uint32 texture_handle = 3;
}

message CMsgDraggableRegionsChanged {
	message DraggableRects {
		optional int32 x = 1;
		optional int32 y = 2;
		optional int32 width = 3;
		optional int32 height = 4;
		optional bool draggable = 5;
	}

	optional uint32 browser_handle = 1;
	repeated .CMsgDraggableRegionsChanged.DraggableRects rects = 2;
}

message CMsgResizeGripChanged {
	optional uint32 browser_handle = 1;
	optional int32 width = 2;
	optional int32 height = 3;
}

message CMsgSetWindowPosition {
	optional uint32 browser_handle = 1;
	optional int32 x = 2;
	optional int32 y = 3;
	optional int32 width = 4;
	optional int32 height = 5;
}

message CMsgShowWindow {
	optional uint32 browser_handle = 1;
}

message CMsgHideWindow {
	optional uint32 browser_handle = 1;
}

message CMsgBringWindowToFront {
	optional uint32 browser_handle = 1;
}

message CMsgSetForegroundWindow {
	optional uint32 browser_handle = 1;
}

message CMsgMaximizeRestoreWindow {
	optional uint32 browser_handle = 1;
}

message CMsgMinimizeWindow {
	optional uint32 browser_handle = 1;
}

message CMsgShowBrowserContextMenu {
	optional uint32 browser_handle = 1;
}

message CMsgImeSetComposition {
	optional uint32 browser_handle = 1;
	optional string text = 2;
}

message CMsgImeCommitText {
	optional uint32 browser_handle = 1;
	optional string text = 2;
}

message CMsgImeCancelComposition {
	optional uint32 browser_handle = 1;
}

message CMsgImeCompositionRangeChanged {
	optional uint32 browser_handle = 1;
	optional uint32 x = 2;
	optional uint32 y = 3;
}

message CMsgInspectElement {
	optional uint32 browser_handle = 1;
	optional uint32 x = 2;
	optional uint32 y = 3;
}

