5#ifndef MOBROWSER_BROWSER_DELEGATES_HPP
6#define MOBROWSER_BROWSER_DELEGATES_HPP
11#include "mobrowser/base/delegate.hpp"
12#include "mobrowser/base/delegate_action.hpp"
13#include "mobrowser/browser/browser_command.hpp"
14#include "mobrowser/capture/capture_sources.hpp"
15#include "mobrowser/card/credit_card.hpp"
16#include "mobrowser/js/js_object.hpp"
17#include "mobrowser/menu/context_menu.hpp"
18#include "mobrowser/network/network.hpp"
19#include "mobrowser/network/tls/certificate.hpp"
20#include "mobrowser/ui/geometry.hpp"
21#include "mobrowser/user/user_profile.hpp"
58 explicit InjectJsAction(std::unique_ptr<rpc::internal::Callback> callback);
86 explicit InjectCssAction(std::unique_ptr<rpc::internal::Callback> callback);
142 explicit CertErrorAction(std::unique_ptr<rpc::internal::Callback> callback);
192 std::unique_ptr<rpc::internal::Callback> callback);
202 void invalid(
const std::vector<CertVerificationStatus>& statuses);
255 explicit OpenPopupAction(std::unique_ptr<rpc::internal::Callback> callback);
319 std::unique_ptr<rpc::internal::Callback> callback);
324 void show(std::shared_ptr<CustomContextMenu> context_menu);
367 explicit AlertAction(std::unique_ptr<rpc::internal::Callback> callback);
420 explicit ConfirmAction(std::unique_ptr<rpc::internal::Callback> callback);
473 explicit PromptAction(std::unique_ptr<rpc::internal::Callback> callback);
484 void ok(
const std::string& text);
534 std::unique_ptr<rpc::internal::Callback> callback);
588 std::unique_ptr<rpc::internal::Callback> callback);
632 explicit SaveAsPdfAction(std::unique_ptr<rpc::internal::Callback> callback);
638 void save(
const std::string& file_path);
673 std::unique_ptr<rpc::internal::Callback> callback);
717 std::unique_ptr<rpc::internal::Callback> callback);
766 std::unique_ptr<rpc::internal::Callback> callback);
819 std::unique_ptr<rpc::internal::Callback> callback);
877 std::unique_ptr<rpc::internal::Callback> callback);
882 void authenticate(
const std::string& user_name,
const std::string& password);
922 std::unique_ptr<rpc::internal::Callback> callback);
983 std::unique_ptr<rpc::internal::Callback> callback);
999 void selectSource(std::shared_ptr<Browser> browser,
bool capture_audio);
1033 std::unique_ptr<rpc::internal::Callback> callback);
1074 std::unique_ptr<rpc::internal::Callback> callback);
1120 std::unique_ptr<rpc::internal::Callback> callback);
1155 explicit CloseAction(std::unique_ptr<rpc::internal::Callback> callback);
The base API that implements classes which represent delegate's action.
Definition delegate_action.hpp:18
The BrowserDelegates::onAlert action.
Definition browser_delegates.hpp:365
void ok()
Close the dialog as if the OK button was pressed.
void prompt()
Show the native JavaScript alert dialog.
The BrowserDelegates::onAuthenticate action.
Definition browser_delegates.hpp:874
void prompt()
Display a native authentication dialog where the end user can provide username and password.
void authenticate(const std::string &user_name, const std::string &password)
Authenticate with the given username and password.
void cancel()
Cancel the authentication request.
The BrowserDelegates::onBeforeFormRepost action arguments.
Definition browser_delegates.hpp:585
void prompt()
Show the dialog.
void repost()
Resubmit the POST data.
void cancel()
Cancel the web page reload.
The BrowserDelegates::onBeforeUnload action.
Definition browser_delegates.hpp:531
void prompt()
Show the native JavaScript before unload dialog.
void leave()
Leave the current page.
void stay()
Stay on the current page.
A class that contains all browser delegates.
Definition browser_delegates.hpp:1171
Delegate< ShowContextMenuArgs, ShowContextMenuAction > onShowContextMenu
Invoked when context menu on the loaded web page should be shown.
Definition browser_delegates.hpp:1298
Delegate< AlertArgs, AlertAction > onAlert
Invoked when the JavaScript alert dialog should be displayed.
Definition browser_delegates.hpp:1315
Delegate< SaveAsPdfArgs, SaveAsPdfAction > onSaveAsPdf
Invoked when the currently loaded web page is about to save as PDF document and the browser wants to ...
Definition browser_delegates.hpp:1405
Delegate< CloseArgs, CloseAction > onClose
Invoked when the browser window is about to be closed.
Definition browser_delegates.hpp:1192
Delegate< VerifyCertArgs, VerifyCertAction > onVerifyCert
Invoked when certificate verification is required.
Definition browser_delegates.hpp:1264
Delegate< SaveUserProfileArgs, SaveUserProfileAction > onSaveUserProfile
Invoked when user is prompted to save the user profile in the user profile store after web form submi...
Definition browser_delegates.hpp:1572
Delegate< CanExecuteCommandArgs, CanExecuteCommandAction > onCanExecuteCommand
Invoked to check if a browser command can be executed or not.
Definition browser_delegates.hpp:1422
Delegate< InjectCssArgs, InjectCssAction > onInjectCss
Invoked when a web page frame's document element has been created and a custom style sheet can be inj...
Definition browser_delegates.hpp:1230
Delegate< UpdateUserProfileArgs, UpdateUserProfileAction > onUpdateUserProfile
Invoked when user is prompted to update the user profile in the user profile store after web form sub...
Definition browser_delegates.hpp:1592
Delegate< BeforeFormRepostArgs, BeforeFormRepostAction > onBeforeFormRepost
Invoked when the web page with POST data is going to be reloaded and the user must confirm that the P...
Definition browser_delegates.hpp:1386
Delegate< OpenPopupArgs, OpenPopupAction > onOpenPopup
Invoked when a new popup window has been created and can be displayed.
Definition browser_delegates.hpp:1281
Delegate< UpdatePasswordArgs, UpdatePasswordAction > onUpdatePassword
Invoked when the the user is prompted to update the password credentials in the password store after ...
Definition browser_delegates.hpp:1475
Delegate< SaveCreditCardArgs, SaveCreditCardAction > onSaveCreditCard
Invoked when user is prompted to save the credit card credentials in the credit card store after web ...
Definition browser_delegates.hpp:1551
Delegate< StartDownloadArgs, StartDownloadAction > onStartDownload
Invoked when the browser is about to start downloading a file.
Definition browser_delegates.hpp:1439
Delegate< RequestPdfPasswordArgs, RequestPdfPasswordAction > onRequestPdfPassword
Invoked when a web page needs a password to open an encrypted PDF document.
Definition browser_delegates.hpp:1512
Delegate< InjectJsArgs, InjectJsAction > onInjectJs
Invoked when a document element has been created and a custom JavaScript can be executed before any o...
Definition browser_delegates.hpp:1210
Delegate< SavePasswordArgs, SavePasswordAction > onSavePassword
Invoked when the the user is prompted to save the password credentials in the password store after we...
Definition browser_delegates.hpp:1457
Delegate< CertErrorArgs, CertErrorAction > onCertError
Invoked when an SSL certificate error occurs during loading a web page.
Definition browser_delegates.hpp:1247
Delegate< BeforeUnloadArgs, BeforeUnloadAction > onBeforeUnload
Invoked when the webpage is about to be unloaded and the JavaScript before unload confirmation dialog...
Definition browser_delegates.hpp:1368
Delegate< AuthenticateArgs, AuthenticateAction > onAuthenticate
Invoked when an HTTP request receives an authentication challenge and it is unable to respond using t...
Definition browser_delegates.hpp:1494
Delegate< PromptArgs, PromptAction > onPrompt
Invoked when the JavaScript dialog prompting the user to input some text should be displayed.
Definition browser_delegates.hpp:1350
Delegate< ConfirmArgs, ConfirmAction > onConfirm
Invoked when the JavaScript confirmation dialog should be displayed.
Definition browser_delegates.hpp:1332
Delegate< StartCaptureSessionArgs, StartCaptureSessionAction > onStartCaptureSession
Invoked when a web page requests permission to start a capture session.
Definition browser_delegates.hpp:1530
The BrowserDelegates::onShowBeforeFormRepost action arguments.
Definition browser_delegates.hpp:670
void cannot()
The command is not supported and must be suppressed.
void can()
The command can be executed.
The source for a content capture session.
Definition capture_source.hpp:39
The BrowserDelegates::onCertError action.
Definition browser_delegates.hpp:140
void showErrorPage()
Display the error page with the certificate error details.
void ignore()
Ignore the certificate error and load the requested resource.
The BrowserDelegates::onClose action.
Definition browser_delegates.hpp:1153
void proceed()
Continue processing the browser window close request.
void cancel()
Do not close the browser window and keep it open.
The BrowserDelegates::onConfirm action.
Definition browser_delegates.hpp:418
void prompt()
Show the native JavaScript confirm dialog.
void ok()
Close the dialog as if the OK button was pressed.
void cancel()
Close the dialog as if the cancel button was pressed.
Delegates allow you to make decisions that affect the application behavior.
Definition delegate.hpp:30
The BrowserDelegates::onInjectCss action.
Definition browser_delegates.hpp:84
void inject(const std::string &css)
Inject the given custom style sheet into the frame's document.
void proceed()
Continue without injecting a custom style sheet.
The BrowserDelegates::onInjectJs action.
Definition browser_delegates.hpp:56
void proceed()
Continue processing DOM and JavaScript on the frame.
The BrowserDelegates::onPrompt action.
Definition browser_delegates.hpp:471
void cancel()
Close the dialog as if the cancel button was pressed.
void prompt()
Show the native JavaScript prompt dialog.
void ok(const std::string &text)
Close the dialog as if the given text was entered and the OK button was pressed.
The BrowserDelegates::onRequestPdfPassword action.
Definition browser_delegates.hpp:919
void cancel()
Cancel the request for the password.
void password(const std::string &password)
Use the given password to load the encrypted PDF document.
void prompt()
Display a native prompt dialog where the end user can provide the password to open the encrypted PDF ...
The BrowserDelegates::onSaveAsPdf action arguments.
Definition browser_delegates.hpp:630
void save(const std::string &file_path)
Save the PDF file into the given target file path without displaying a Save File dialog.
void cancel()
Cancel request to save the PDF file.
void prompt()
Show the native Save File dialog when the user can select the directory where to save the PDF file.
The BrowserDelegates::onSaveCreditCard action.
Definition browser_delegates.hpp:1030
void cancel()
Cancel the save credit card request.
void save()
Save the credit card information in the credit card store.
void prompt()
Display the native prompt dialog where the end user can decide whether the credit card information sh...
The BrowserDelegates::onSavePassword action.
Definition browser_delegates.hpp:763
void cancel()
Cancel the save password credentials request.
void save()
Save the password credentials in the password store.
void neverSave()
Associate the password credentials with the current web page and remember it as "never-saved".
void prompt()
Display the native prompt dialog where the end user can decide whether the password credentials shoul...
The BrowserDelegates::onSaveUserProfile action.
Definition browser_delegates.hpp:1071
void save()
Save the user profile in the user profile store.
void cancel()
Cancel the save user profile request.
void prompt()
Display the native prompt dialog where the end user can decide whether the user profile should be sav...
The BrowserDelegates::onStartCaptureSession action.
Definition browser_delegates.hpp:980
void selectSource(const CaptureSource &source, bool capture_audio)
Use the given capture source.
void prompt()
Display the default dialog for choosing the capture source.
void cancel()
Cancel the capture session request.
void selectSource(std::shared_ptr< Browser > browser, bool capture_audio)
Use the given browser instance as the capture source.
The BrowserDelegates::onStartDownload action.
Definition browser_delegates.hpp:714
void download(const std::string &file_path)
Download and save the file at the given file path without displaying the Save File dialog.
void prompt()
Display the native Save File dialog where the end user can select the directory where to save the fil...
void cancel()
Cancel file download.
The BrowserDelegates::onUpdatePassword action.
Definition browser_delegates.hpp:816
void cancel()
Cancel the update password credentials request.
void update()
Update the password credentials in the password store.
void prompt()
Display the native prompt dialog where the end user can decide whether the password credentials shoul...
The BrowserDelegates::onUpdateUserProfile action.
Definition browser_delegates.hpp:1117
void prompt()
Display the native prompt dialog where the end user can decide whether the user profile should be upd...
void update()
Update the user profile in the user profile store.
void cancel()
Cancel the update user profile request.
The BrowserDelegates::onVerifyCert action.
Definition browser_delegates.hpp:189
void defaultAction()
Use the default behavior and let Chromium verify the certificate.
void valid()
Mark the given certificate as valid.
void invalid(const std::vector< CertVerificationStatus > &statuses)
Mark the given certificate as invalid with the specific statuses.
The BrowserDelegates::onAlert action arguments.
Definition browser_delegates.hpp:335
std::string ok_action_text
The localized text of the "OK" action.
Definition browser_delegates.hpp:354
std::string message
The text passed to the window.alert() JavaScript function.
Definition browser_delegates.hpp:349
std::string title
The localized dialog title.
Definition browser_delegates.hpp:344
std::shared_ptr< Browser > browser
The browser instance initiated this action.
Definition browser_delegates.hpp:339
std::string url
The URL of the web page that requested to display the alert dialog.
Definition browser_delegates.hpp:359
The BrowserDelegates::onAuthenticate action arguments.
Definition browser_delegates.hpp:841
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:845
std::string url
The address of a resource requesting authentication.
Definition browser_delegates.hpp:850
bool is_proxy
Indicates if the authentication request is issued by a proxy server.
Definition browser_delegates.hpp:868
HostPort host_port
The host-port pair identifying the resource requesting authentication.
Definition browser_delegates.hpp:863
std::string scheme
The authentication scheme such as "basic" or "digest".
Definition browser_delegates.hpp:858
The BrowserDelegates::onBeforeFormRepost action arguments.
Definition browser_delegates.hpp:555
std::string cancel_action_text
The localized text of the "Cancel" action.
Definition browser_delegates.hpp:579
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:559
std::string repost_action_text
The localized text of the "Repost" action.
Definition browser_delegates.hpp:574
std::string title
The localized dialog title.
Definition browser_delegates.hpp:564
std::string message
The localized text of the form repost warning.
Definition browser_delegates.hpp:569
The BrowserDelegates::onBeforeUnload action arguments.
Definition browser_delegates.hpp:495
std::shared_ptr< Browser > browser
The browser instance initiated this action.
Definition browser_delegates.hpp:499
std::string leave_action_text
The localized text of the "Leave" action.
Definition browser_delegates.hpp:519
std::string stay_action_text
The localized text of the "Stay" action.
Definition browser_delegates.hpp:514
std::string title
The localized dialog title.
Definition browser_delegates.hpp:504
bool is_reload
Determines whether this callback is invoked as a result of reloading the current web page.
Definition browser_delegates.hpp:525
std::string message
The text passed to the window.onbeforeunload() JavaScript function.
Definition browser_delegates.hpp:509
The BrowserDelegates::onCanExecuteCommand action arguments.
Definition browser_delegates.hpp:655
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:659
BrowserCommandId command_id
The standard browser command id.
Definition browser_delegates.hpp:664
Provides access to the sources available for content capture.
Definition capture_sources.hpp:17
The BrowserDelegates::onCertError action arguments.
Definition browser_delegates.hpp:107
Certificate certificate
The SSL certificate bound to the request which the certificate error occurred in.
Definition browser_delegates.hpp:134
std::string url
Represents the URL of the request that required the client certificate selection.
Definition browser_delegates.hpp:123
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:111
NetError error
Returns the network error code which describes the reason of the certificate error.
Definition browser_delegates.hpp:117
bool is_main_frame
Indicates whether the navigation is taking place in the main frame.
Definition browser_delegates.hpp:128
Definition certificate.hpp:37
The BrowserDelegates::onClose action arguments.
Definition browser_delegates.hpp:1143
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:1147
The BrowserDelegates::onConfirm action arguments.
Definition browser_delegates.hpp:383
std::string title
The localized dialog title.
Definition browser_delegates.hpp:392
std::shared_ptr< Browser > browser
The browser instance initiated this action.
Definition browser_delegates.hpp:387
std::string ok_action_text
The localized text of the "OK" action.
Definition browser_delegates.hpp:402
std::string message
The text passed to the window.confirm() JavaScript function.
Definition browser_delegates.hpp:397
std::string url
The URL of the web page that requested to display a confirmation dialog.
Definition browser_delegates.hpp:412
std::string cancel_action_text
The localized text of the "Cancel" action.
Definition browser_delegates.hpp:407
The credit card information persisted in the credit card store.
Definition credit_card.hpp:38
A host/port pair of the URI.
Definition url_request.hpp:233
The BrowserDelegates::onInjectCss action arguments.
Definition browser_delegates.hpp:69
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:73
std::shared_ptr< Frame > frame
The frame which DOM document has been created.
Definition browser_delegates.hpp:78
The BrowserDelegates::onInjectJs action arguments.
Definition browser_delegates.hpp:36
std::shared_ptr< Frame > frame
The frame which DOM document has been loaded.
Definition browser_delegates.hpp:45
std::shared_ptr< JsObject > window
The Window JavaScript object of the frame.
Definition browser_delegates.hpp:50
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:40
The BrowserDelegates::onPrompt action arguments.
Definition browser_delegates.hpp:441
std::string cancel_action_text
The localized text of the "Cancel" action.
Definition browser_delegates.hpp:465
std::shared_ptr< Browser > browser
The browser instance initiated this action.
Definition browser_delegates.hpp:445
std::string ok_action_text
The localized text of the "Ok" action.
Definition browser_delegates.hpp:460
std::string message
The text passed to the window.prompt() JavaScript function.
Definition browser_delegates.hpp:455
std::string title
The localized dialog title.
Definition browser_delegates.hpp:450
A rectangle described by the location and dimensions.
Definition geometry.hpp:75
The BrowserDelegates::onRequestPdfPassword action arguments.
Definition browser_delegates.hpp:899
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:903
std::shared_ptr< Frame > frame
The frame containing the encrypted PDF document.
Definition browser_delegates.hpp:908
std::string url
The URL of the encrypted PDF document.
Definition browser_delegates.hpp:913
The BrowserDelegates::onSaveAsPdf action arguments.
Definition browser_delegates.hpp:609
std::string suggested_directory_path
The absolute path to the directory where the target PDF file is suggested to be saved.
Definition browser_delegates.hpp:624
std::string suggested_file_name
The suggested name of the target PDF file.
Definition browser_delegates.hpp:618
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:613
The BrowserDelegates::onSaveCreditCard action arguments.
Definition browser_delegates.hpp:1015
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:1019
CreditCard credit_card
The credit card information entered in the web form.
Definition browser_delegates.hpp:1024
The BrowserDelegates::onSavePassword action arguments.
Definition browser_delegates.hpp:743
std::string url
The URL of the resource where the form is located.
Definition browser_delegates.hpp:752
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:747
std::string login
The login value passed in the form.
Definition browser_delegates.hpp:757
The BrowserDelegates::onSaveUserProfile action arguments.
Definition browser_delegates.hpp:1056
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:1060
UserProfile user_profile
The user data entered in the web form.
Definition browser_delegates.hpp:1065
The BrowserDelegates::onStartCaptureSession action arguments.
Definition browser_delegates.hpp:950
bool audio_capture_requested
Indicates if the page requests audio capture as well as the video content.
Definition browser_delegates.hpp:974
std::string url
The URL of the web page.
Definition browser_delegates.hpp:964
CaptureSources sources
The available capture sources.
Definition browser_delegates.hpp:969
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:954
std::shared_ptr< Frame > frame
The frame starting the capture session.
Definition browser_delegates.hpp:959
The BrowserDelegates::onStartDownload action arguments.
Definition browser_delegates.hpp:689
std::shared_ptr< Frame > frame
The frame initiated this download or an empty std::shared_ptr if the frame is already closed and dest...
Definition browser_delegates.hpp:703
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:693
std::shared_ptr< Download > download
The download activity instance.
Definition browser_delegates.hpp:708
The BrowserDelegates::onUpdatePassword action arguments.
Definition browser_delegates.hpp:796
std::string url
The URL of the resource where the form is located.
Definition browser_delegates.hpp:805
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:800
std::string login
The login value passed in the form.
Definition browser_delegates.hpp:810
The BrowserDelegates::onUpdateUserProfile action arguments.
Definition browser_delegates.hpp:1097
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:1101
UserProfile original_user_profile
The original user data that is about to update.
Definition browser_delegates.hpp:1111
UserProfile user_profile
The new user data entered in the web form.
Definition browser_delegates.hpp:1106
The collected data entered by the user to a form and persisted to the user data store.
Definition user_profile.hpp:16
The BrowserDelegates::onVerifyCert action arguments.
Definition browser_delegates.hpp:158
std::vector< CertVerificationError > verification_errors
The list of errors found by the default SSL certificate verifier.
Definition browser_delegates.hpp:183
std::shared_ptr< Browser > browser
The browser instance initiated this callback.
Definition browser_delegates.hpp:162
std::vector< Certificate > intermediate_certs
The list of intermediate certificates in the chain of the validated certificate.
Definition browser_delegates.hpp:178
Certificate certificate
The certificate that is requested to be verified.
Definition browser_delegates.hpp:172
std::string host
The host name of the SSL server that requests the certificate verification.
Definition browser_delegates.hpp:167