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