1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 package org.mozilla.geckoview.test.util 5 6 import org.mozilla.geckoview.GeckoSession 7 8 class Callbacks private constructor() { 9 object Default : All { 10 } 11 12 interface All : ContentDelegate, NavigationDelegate, PermissionDelegate, ProgressDelegate, 13 PromptDelegate, ScrollDelegate, TrackingProtectionDelegate { 14 } 15 16 interface ContentDelegate : GeckoSession.ContentDelegate { onTitleChangenull17 override fun onTitleChange(session: GeckoSession, title: String) { 18 } 19 onFocusRequestnull20 override fun onFocusRequest(session: GeckoSession) { 21 } 22 onCloseRequestnull23 override fun onCloseRequest(session: GeckoSession) { 24 } 25 onFullScreennull26 override fun onFullScreen(session: GeckoSession, fullScreen: Boolean) { 27 } 28 onContextMenunull29 override fun onContextMenu(session: GeckoSession, screenX: Int, screenY: Int, uri: String, elementSrc: String) { 30 } 31 } 32 33 interface NavigationDelegate : GeckoSession.NavigationDelegate { onLocationChangenull34 override fun onLocationChange(session: GeckoSession, url: String) { 35 } 36 onCanGoBacknull37 override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) { 38 } 39 onCanGoForwardnull40 override fun onCanGoForward(session: GeckoSession, canGoForward: Boolean) { 41 } 42 onLoadRequestnull43 override fun onLoadRequest(session: GeckoSession, uri: String, where: Int): Boolean { 44 return false; 45 } 46 onNewSessionnull47 override fun onNewSession(session: GeckoSession, uri: String, response: GeckoSession.Response<GeckoSession>) { 48 response.respond(null) 49 } 50 } 51 52 interface PermissionDelegate : GeckoSession.PermissionDelegate { onAndroidPermissionsRequestnull53 override fun onAndroidPermissionsRequest(session: GeckoSession, permissions: Array<out String>, callback: GeckoSession.PermissionDelegate.Callback) { 54 callback.reject() 55 } 56 onContentPermissionRequestnull57 override fun onContentPermissionRequest(session: GeckoSession, uri: String, type: Int, access: String, callback: GeckoSession.PermissionDelegate.Callback) { 58 callback.reject() 59 } 60 onMediaPermissionRequestnull61 override fun onMediaPermissionRequest(session: GeckoSession, uri: String, video: Array<out GeckoSession.PermissionDelegate.MediaSource>, audio: Array<out GeckoSession.PermissionDelegate.MediaSource>, callback: GeckoSession.PermissionDelegate.MediaCallback) { 62 callback.reject() 63 } 64 } 65 66 interface ProgressDelegate : GeckoSession.ProgressDelegate { onPageStartnull67 override fun onPageStart(session: GeckoSession, url: String) { 68 } 69 onPageStopnull70 override fun onPageStop(session: GeckoSession, success: Boolean) { 71 } 72 onSecurityChangenull73 override fun onSecurityChange(session: GeckoSession, securityInfo: GeckoSession.ProgressDelegate.SecurityInformation) { 74 } 75 } 76 77 interface PromptDelegate : GeckoSession.PromptDelegate { onAlertnull78 override fun onAlert(session: GeckoSession, title: String, msg: String, callback: GeckoSession.PromptDelegate.AlertCallback) { 79 callback.dismiss() 80 } 81 onButtonPromptnull82 override fun onButtonPrompt(session: GeckoSession, title: String, msg: String, btnMsg: Array<out String>, callback: GeckoSession.PromptDelegate.ButtonCallback) { 83 callback.dismiss() 84 } 85 onTextPromptnull86 override fun onTextPrompt(session: GeckoSession, title: String, msg: String, value: String, callback: GeckoSession.PromptDelegate.TextCallback) { 87 callback.dismiss() 88 } 89 onAuthPromptnull90 override fun onAuthPrompt(session: GeckoSession, title: String, msg: String, options: GeckoSession.PromptDelegate.AuthOptions, callback: GeckoSession.PromptDelegate.AuthCallback) { 91 callback.dismiss() 92 } 93 onChoicePromptnull94 override fun onChoicePrompt(session: GeckoSession, title: String, msg: String, type: Int, choices: Array<out GeckoSession.PromptDelegate.Choice>, callback: GeckoSession.PromptDelegate.ChoiceCallback) { 95 callback.dismiss() 96 } 97 onColorPromptnull98 override fun onColorPrompt(session: GeckoSession, title: String, value: String, callback: GeckoSession.PromptDelegate.TextCallback) { 99 callback.dismiss() 100 } 101 onDateTimePromptnull102 override fun onDateTimePrompt(session: GeckoSession, title: String, type: Int, value: String, min: String, max: String, callback: GeckoSession.PromptDelegate.TextCallback) { 103 callback.dismiss() 104 } 105 onFilePromptnull106 override fun onFilePrompt(session: GeckoSession, title: String, type: Int, mimeTypes: Array<out String>, callback: GeckoSession.PromptDelegate.FileCallback) { 107 callback.dismiss() 108 } 109 } 110 111 interface ScrollDelegate : GeckoSession.ScrollDelegate { onScrollChangednull112 override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) { 113 } 114 } 115 116 interface TrackingProtectionDelegate : GeckoSession.TrackingProtectionDelegate { onTrackerBlockednull117 override fun onTrackerBlocked(session: GeckoSession, uri: String, categories: Int) { 118 } 119 } 120 } 121