///|
/// Dispatch script domain
fn BidiProtocol::dispatch_script(
self : BidiProtocol,
request : BidiRequest,
action : String,
) -> Result[Unit, String] {
match action {
"rememberSyntheticLocationHref" => {
self.handle_script_remember_synthetic_location_href(
request.id,
request.params,
)
Ok(())
}
"clearSyntheticLocationHref" => {
self.handle_script_clear_synthetic_location_href(
request.id,
request.params,
)
Ok(())
}
"evaluate" => {
self.handle_script_evaluate(request, false)
Ok(())
}
"evaluateResult" => {
self.handle_script_evaluate(request, true)
Ok(())
}
"callFunction" => {
self.handle_script_call_function(request, false)
Ok(())
}
"callFunctionResult" => {
self.handle_script_call_function(request, true)
Ok(())
}
"getElementForTest" => {
self.handle_script_get_element_for_test(request.id, request.params)
Ok(())
}
"createIframeContextForTest" => {
self.handle_script_create_iframe_context_for_test(
request.id,
request.params,
)
Ok(())
}
"createIframeContextIdForTest" => {
self.handle_script_create_iframe_context_id_for_test(
request.id,
request.params,
)
Ok(())
}
"prepareLoadedStaticTestPage" => {
self.handle_script_prepare_loaded_static_test_page(
request.id,
request.params,
)
Ok(())
}
"loadStaticTestPageForTest" => {
self.handle_script_load_static_test_page_for_test(
request.id,
request.params,
)
Ok(())
}
"setupBeforeunloadPageForTest" => {
self.handle_script_setup_beforeunload_page_for_test(
request.id,
request.params,
)
Ok(())
}
"prepareBeforeunloadPageForTest" => {
self.handle_script_prepare_beforeunload_page_for_test(
request.id,
request.params,
)
Ok(())
}
"prepareBeforeunloadPageUrlForTest" => {
self.handle_script_prepare_beforeunload_page_url_for_test(
request.id,
request.params,
)
Ok(())
}
"syncDocumentCookiesForTest" => {
self.handle_script_sync_document_cookies_for_test(
request.id,
request.params,
)
Ok(())
}
"fetchForTest" => {
self.handle_script_fetch_for_test(request.id, request.params)
Ok(())
}
"fetchFromContextForTest" => {
self.handle_script_fetch_from_context_for_test(request.id, request.params)
Ok(())
}
"disown" => {
self.handle_script_disown(request.id, request.params)
Ok(())
}
"addPreloadScript" =>
self.handle_script_add_preload_script(request.id, request.params, false)
"addPreloadScriptId" =>
self.handle_script_add_preload_script(request.id, request.params, true)
"removePreloadScript" => {
self.handle_script_remove_preload_script(request.id, request.params)
Ok(())
}
"removeAllPreloadScripts" => {
self.remove_all_preload_scripts()
self.send_success(request.id, Some(make_object({})))
Ok(())
}
"getRealms" =>
match self.resolve_realms_list(request.id, request.params) {
Some(realms) => {
let result = make_object({ "realms": Json::array(realms) })
self.send_success(request.id, Some(result))
Ok(())
}
None => Ok(())
}
"getRealmsList" =>
match self.resolve_realms_list(request.id, request.params) {
Some(realms) => {
self.send_success(request.id, Some(Json::array(realms)))
Ok(())
}
None => Ok(())
}
_ => {
self.send_error(
request.id,
"unknown command",
"Unknown script method: " + action,
)
Ok(())
}
}
}