pub struct FrameProxy { /* private fields */ }
Implementations§
Source§impl FrameProxy
impl FrameProxy
Sourcepub fn take_event_stream(&self) -> FrameEventStream
pub fn take_event_stream(&self) -> FrameEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn create_view(&self, view_token: ViewToken) -> Result<(), Error>
pub fn create_view(&self, view_token: ViewToken) -> Result<(), Error>
Creates a new view using the specified view_token
. Caller should pass the other end of
the token to [fuchsia.ui.gfx/ViewHolderArgs
] to attach the new view to a view tree.
See the description of [CreateContextParams.service_directory
] for additional services
that must be present when using this method.
Sourcepub fn create_view_with_view_ref(
&self,
view_token: ViewToken,
view_ref_control: ViewRefControl,
view_ref: ViewRef,
) -> Result<(), Error>
pub fn create_view_with_view_ref( &self, view_token: ViewToken, view_ref_control: ViewRefControl, view_ref: ViewRef, ) -> Result<(), Error>
Creates a new view using the specified view_token
. Caller should pass the other end of
the token to [fuchsia.ui.gfx/ViewHolderArgs
] to attach the new view to a view tree.
view_ref
can be cloned before passing it to this method, which will allow clients to
track the view.
view_ref_control
must not have the ZX_RIGHT_DUPLICATE
set, or view creation will fail
and view_token
will be closed.
See the description of [CreateContextParams.service_directory
] for additional services
that must be present when using this method.
Sourcepub fn create_view2(&self, args: CreateView2Args) -> Result<(), Error>
pub fn create_view2(&self, args: CreateView2Args) -> Result<(), Error>
Creates a new Flatland view using the specified view_creation_token
defined under args
.
Caller should pass the other end of the token to
[fuchsia.ui.composition/Flatland.CreateViewport
] to attach the new Flatland view to its
graph.
Sourcepub fn enable_headless_rendering(&self) -> Result<(), Error>
pub fn enable_headless_rendering(&self) -> Result<(), Error>
Enables headless rendering of the Frame.
This is used when content depends on layout and/or animation events firing normally.
May only be used on a Context created with [ContextFeatureFlags.HEADLESS
].
Sourcepub fn disable_headless_rendering(&self) -> Result<(), Error>
pub fn disable_headless_rendering(&self) -> Result<(), Error>
Stops headless rendering of the Frame.
May only be used on a Context created with [ContextFeatureFlags.HEADLESS
].
Sourcepub fn get_media_player(
&self,
player: ServerEnd<PlayerMarker>,
) -> Result<(), Error>
pub fn get_media_player( &self, player: ServerEnd<PlayerMarker>, ) -> Result<(), Error>
Returns a [fuchsia.media.sessions2/Player
] interface through which media (i.e.
video/audio) playback in the frame may be observed, and/or controlled. Only one
[fuchsia.media.sessions2/Player
] may be active at a time, for each [Frame
].
Returns an interface through which the [Frame
] may be navigated to a desired URL,
reloaded, etc.
controller
: An asynchronous interface request for the [Frame
]’s [NavigationController
].
Sourcepub fn execute_java_script(
&self,
origins: &[String],
script: Buffer,
) -> QueryResponseFut<FrameExecuteJavaScriptResult, DefaultFuchsiaResourceDialect>
pub fn execute_java_script( &self, origins: &[String], script: Buffer, ) -> QueryResponseFut<FrameExecuteJavaScriptResult, DefaultFuchsiaResourceDialect>
Executes a UTF-8 encoded script
in the [Frame
] if the [Frame
]’s URL has an origin
which matches entries in origins
.
At least one origins
entry must be specified. If a wildcard "*"
is specified in
origins
, then the script will be evaluated unconditionally.
Returns the result of executing script
, as a JSON-encoded string.
Note that scripts share the same execution context as the document, meaning that document may modify variables, classes, or objects set by the script in arbitrary or unpredictable ways.
If an error occurred, the FrameError will be set to one of these values:
BUFFER_NOT_UTF8
:script
is not UTF-8 encoded.INVALID_ORIGIN
: The [Frame
]’s current URL does not match any of the values inorigins
ororigins
is an empty vector.
Sourcepub fn execute_java_script_no_result(
&self,
origins: &[String],
script: Buffer,
) -> QueryResponseFut<FrameExecuteJavaScriptNoResultResult, DefaultFuchsiaResourceDialect>
pub fn execute_java_script_no_result( &self, origins: &[String], script: Buffer, ) -> QueryResponseFut<FrameExecuteJavaScriptNoResultResult, DefaultFuchsiaResourceDialect>
Variant of [Frame.ExecuteJavaScript
] which executes the supplied script without returning
a result.
Sourcepub fn add_before_load_java_script(
&self,
id: u64,
origins: &[String],
script: Buffer,
) -> QueryResponseFut<FrameAddBeforeLoadJavaScriptResult, DefaultFuchsiaResourceDialect>
pub fn add_before_load_java_script( &self, id: u64, origins: &[String], script: Buffer, ) -> QueryResponseFut<FrameAddBeforeLoadJavaScriptResult, DefaultFuchsiaResourceDialect>
Executes a UTF-8 encoded script
for every subsequent page load where the [Frame
]’s URL
has an origin reflected in origins
. The script is executed early, prior to the execution
of the document’s scripts.
Scripts are identified by a client-managed identifier id
. Any script previously injected
using the same id
will be replaced.
The order in which multiple bindings are executed is the same as the order in which the
bindings were added. If a script is added which clobbers an existing script of the same
id
, the previous script’s precedence in the injection order will be preserved.
At least one origins
entry must be specified. If a wildcard "*"
is specified in
origins
, then the script will be evaluated unconditionally.
If an error occurred, the FrameError
will be set to one of these values:
BUFFER_NOT_UTF8
:script
is not UTF-8 encoded.INVALID_ORIGIN
:origins
is an empty vector.
Sourcepub fn remove_before_load_java_script(&self, id: u64) -> Result<(), Error>
pub fn remove_before_load_java_script(&self, id: u64) -> Result<(), Error>
Removes a previously added JavaScript snippet identified by id
. This is a no-op if there
is no JavaScript snippet identified by id
.
Sourcepub fn post_message(
&self,
target_origin: &str,
message: WebMessage,
) -> QueryResponseFut<FramePostMessageResult, DefaultFuchsiaResourceDialect>
pub fn post_message( &self, target_origin: &str, message: WebMessage, ) -> QueryResponseFut<FramePostMessageResult, DefaultFuchsiaResourceDialect>
Posts a message to the frame’s onMessage handler.
target_origin
restricts message delivery to the specified origin. If target_origin
is
"*"
, then the message will be sent to the document regardless of its origin.
See the
HTML spec
section 9.4.3 for more details on how the target origin policy is applied.
If an error occurred, the FrameError
will be set to one of these values:
INTERNAL_ERROR
: The WebEngine failed to create a message pipe.BUFFER_NOT_UTF8
: The script inmessage
’sdata
property is not UTF-8 encoded.INVALID_ORIGIN
:origins
is an empty vector.NO_DATA_IN_MESSAGE
: Thedata
property is missing inmessage
.
Sets the listener for handling page navigation events.
listener
: The observer to use. Unregisters any existing listener if null.
Sets the listener for handling page navigation events. The listener will receive the current navigation state immediately. After that, it’s notified whenever the state changes.
listener
: The observer to use. Unregisters any existing listener if null.flags
: Flags for optional features that should be enabled for the listener.
Sourcepub fn set_java_script_log_level(
&self,
level: ConsoleLogLevel,
) -> Result<(), Error>
pub fn set_java_script_log_level( &self, level: ConsoleLogLevel, ) -> Result<(), Error>
If set to a value other than [ConsoleLogLevel.NONE
], allows web content to log messages
to the [fuchsia.logger/LogSink
] configured for this [Frame
], via the
console
object (e.g. using debug()
, log()
, info()
, warn()
and
error()
).
The default value is [ConsoleLogLevel.NONE
].
As the system log may be persisted, it is recommended that [ConsoleLogLevel.NONE
] be used
in Incognito and other private browsing modes.
Log lines are written to the [fuchsia.logger/LogsSink
] configured
for this [fuchsia.web/Frame
], with severities mapped as follows:
debug()
,log()
andinfo()
are logged at [fuchsia.logger/LogLevelFilter.INFO
] severity.warn()
is logged at [fuchsia.logger/LogLevelFilter.WARN
] severity.error()
is logged at [fuchsia.logger/LogLevelFilter.ERROR
] severity.
Sourcepub fn set_console_log_sink(
&self,
sink: Option<ClientEnd<LogSinkMarker>>,
) -> Result<(), Error>
pub fn set_console_log_sink( &self, sink: Option<ClientEnd<LogSinkMarker>>, ) -> Result<(), Error>
Specifies where to emit console
log output to. By default log output will be routed to a
[fuchsia.logger/LogSink
] obtained via the [fuchsia.web/Context
]’s service directory.
sink
: The [fuchsia.logger/LogSink
] to use to emit logs. Passing anull
handle resets logging to use the default [fuchsia.logger/LogSink
].
Sourcepub fn configure_input_types(
&self,
types: InputTypes,
allow: AllowInputState,
) -> Result<(), Error>
pub fn configure_input_types( &self, types: InputTypes, allow: AllowInputState, ) -> Result<(), Error>
Enables or disables the processing of the specified types
of user inputs.
allow
specifies whether to enable or disable the specified types
.
All input types are enabled by default.
Sourcepub fn set_popup_frame_creation_listener(
&self,
listener: Option<ClientEnd<PopupFrameCreationListenerMarker>>,
) -> Result<(), Error>
pub fn set_popup_frame_creation_listener( &self, listener: Option<ClientEnd<PopupFrameCreationListenerMarker>>, ) -> Result<(), Error>
Sets the listener for handling popup frame opened by web content. If no listener is present, then any new popup frame will be blocked.
listener
: The listener to use. Unregisters any existing listener if null.
Sourcepub fn set_url_request_rewrite_rules(
&self,
rules: &[UrlRequestRewriteRule],
) -> QueryResponseFut<(), DefaultFuchsiaResourceDialect>
pub fn set_url_request_rewrite_rules( &self, rules: &[UrlRequestRewriteRule], ) -> QueryResponseFut<(), DefaultFuchsiaResourceDialect>
Supplies a set of UrlRequestRewriteRule
to apply on every subsequent URL request.
rules
are cumulative and applied in order.rules
are only applied on the first URL request in a redirect chain.rules
will be validated before being applied. Ifrules
are invalid, the [Frame
] will be closed withERR_INVALID_ARGS
.- [
Frame.SetUrlRequestRewriteRules
] must not be called again until its acknowledgement callback has been processed. If this happens, the [Frame
] will be closed withERR_BAD_STATE
.
Sourcepub fn set_media_settings(
&self,
settings: &FrameMediaSettings,
) -> Result<(), Error>
pub fn set_media_settings( &self, settings: &FrameMediaSettings, ) -> Result<(), Error>
Sets [fuchsia.media/FrameMediaSettings
] for the frame. The specified parameters are
applied to audio streams that started after this message is processed. Should be called
before the Frame is navigated to content in order to ensure that the settings applied to
all media streams. Due to request pipelining, this means doing so before calling
[Frame.GetNavigationController()
] and [NavigationController.LoadUrl()
].
Sourcepub fn force_content_dimensions(
&self,
web_dips: Option<&Vec2>,
) -> Result<(), Error>
pub fn force_content_dimensions( &self, web_dips: Option<&Vec2>, ) -> Result<(), Error>
Overrides the dimensions reported to web content. The devicePixelRatio reported to
web content will be adjusted in response to changes in the pixel size of the View,
rather than changing the size reported to the content. Call with null web_dips
to
remove any prior forced content dimensions.
Sourcepub fn set_permission_state(
&self,
permission: &PermissionDescriptor,
web_origin: &str,
state: PermissionState,
) -> Result<(), Error>
pub fn set_permission_state( &self, permission: &PermissionDescriptor, web_origin: &str, state: PermissionState, ) -> Result<(), Error>
Sets the permission state for the specified permission
and web_origin
. By default, all
permissions are denied.
Sourcepub fn set_block_media_loading(&self, blocked: bool) -> Result<(), Error>
pub fn set_block_media_loading(&self, blocked: bool) -> Result<(), Error>
Sets whether to block all HTMLMediaElements in the frame from fetching and loading media resources.
May be used, for example, to prevent loading media in frames that are not visible.
While media loading is blocked, elements with autoplay
set to true
will not start
playback. The promises returned by calls to play()
will remain unresolved until loading is
unblocked by a call to this method.
When media loading is unblocked, elements will begin fetching, resource, loading, and playing as appropriate.
Any elements that have begun fetching or loading media resources for the current source
before media loading was blocked will continue to fetch, load, and start playback as
appropriate. This includes calls to play()
even after media loading is blocked.
Sourcepub fn get_private_memory_size(
&self,
) -> QueryResponseFut<u64, DefaultFuchsiaResourceDialect>
pub fn get_private_memory_size( &self, ) -> QueryResponseFut<u64, DefaultFuchsiaResourceDialect>
Returns the amount of private (non-shared) physical memory used by the Frame’s main document. The returned size might not reflect the memory usage of embedded iframes.
Sets the navigation policy provider for the [Frame
]. When set, the [Frame
] sends
[NavigationPolicyProvider.EvaluateRequestedNavigation
] when processing navigation
requests. params
defines when the message is sent. After sending the
EvaluateRequestedNavigation
message, the [Frame
] blocks the corresponding navigation
until it receives a response.
Should be called before GetNavigationController
to ensure that it is applied to all
navigations including the first [NavigationController.LoadURL
] request.
Sourcepub fn set_content_area_settings(
&self,
settings: &ContentAreaSettings,
) -> Result<(), Error>
pub fn set_content_area_settings( &self, settings: &ContentAreaSettings, ) -> Result<(), Error>
Sets various settings for how web content should be run in the Frame. May be called at any time, including after the URL has loaded. Each call changes only the specified fields, overwriting any prior value.
This method will fail with ZX_ERR_NOT_SUPPORTED
if any value in ContentAreaSettings
is not supported by the Frame.
Sourcepub fn reset_content_area_settings(&self) -> Result<(), Error>
pub fn reset_content_area_settings(&self) -> Result<(), Error>
Reset the Frame’s ContentAreaSettings
to default values.
Sourcepub fn close(&self, payload: &FrameCloseRequest) -> Result<(), Error>
pub fn close(&self, payload: &FrameCloseRequest) -> Result<(), Error>
Request graceful or immediate teardown of the Frame content and notification of completion via Frame epitaph.
Graceful teardown allows unload and cleanup tasks in the implementation and web content
(e.g., unload
event handlers) to run for up to the specified period of time. Immediate
teardown only runs the minimum cleanup tasks in the implementation and does not allow web
content to run event handlers.
-
If
timeout
is zero, an immediate teardown is initiated. The channel will close withZX_OK
. This is equivalent to the caller closing the Frame channel. -
If
timeout
is non-zero, a graceful teardown is initiated. The channel will close withZX_OK
if the Frame closes within the specifiedtimeout
and withZX_ERR_TIMED_OUT
otherwise. -
If
timeout
is not specified, a reasonable implementation-specific timeout is applied.
Subsequent calls to Close()
will override any previously specified Close()
timeout.
Trait Implementations§
Source§impl Clone for FrameProxy
impl Clone for FrameProxy
Source§fn clone(&self) -> FrameProxy
fn clone(&self) -> FrameProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FrameProxy
impl Debug for FrameProxy
Source§impl FrameProxyInterface for FrameProxy
impl FrameProxyInterface for FrameProxy
type ExecuteJavaScriptResponseFut = QueryResponseFut<Result<Buffer, FrameError>>
type ExecuteJavaScriptNoResultResponseFut = QueryResponseFut<Result<(), FrameError>>
type AddBeforeLoadJavaScriptResponseFut = QueryResponseFut<Result<(), FrameError>>
type PostMessageResponseFut = QueryResponseFut<Result<(), FrameError>>
type SetUrlRequestRewriteRulesResponseFut = QueryResponseFut<()>
type GetPrivateMemorySizeResponseFut = QueryResponseFut<u64>
fn create_view(&self, view_token: ViewToken) -> Result<(), Error>
fn create_view_with_view_ref( &self, view_token: ViewToken, view_ref_control: ViewRefControl, view_ref: ViewRef, ) -> Result<(), Error>
fn create_view2(&self, args: CreateView2Args) -> Result<(), Error>
fn enable_headless_rendering(&self) -> Result<(), Error>
fn disable_headless_rendering(&self) -> Result<(), Error>
fn get_media_player(&self, player: ServerEnd<PlayerMarker>) -> Result<(), Error>
fn execute_java_script( &self, origins: &[String], script: Buffer, ) -> Self::ExecuteJavaScriptResponseFut
fn execute_java_script_no_result( &self, origins: &[String], script: Buffer, ) -> Self::ExecuteJavaScriptNoResultResponseFut
fn add_before_load_java_script( &self, id: u64, origins: &[String], script: Buffer, ) -> Self::AddBeforeLoadJavaScriptResponseFut
fn remove_before_load_java_script(&self, id: u64) -> Result<(), Error>
fn post_message( &self, target_origin: &str, message: WebMessage, ) -> Self::PostMessageResponseFut
fn set_java_script_log_level(&self, level: ConsoleLogLevel) -> Result<(), Error>
fn set_console_log_sink( &self, sink: Option<ClientEnd<LogSinkMarker>>, ) -> Result<(), Error>
fn configure_input_types( &self, types: InputTypes, allow: AllowInputState, ) -> Result<(), Error>
fn set_popup_frame_creation_listener( &self, listener: Option<ClientEnd<PopupFrameCreationListenerMarker>>, ) -> Result<(), Error>
fn set_url_request_rewrite_rules( &self, rules: &[UrlRequestRewriteRule], ) -> Self::SetUrlRequestRewriteRulesResponseFut
fn set_media_settings(&self, settings: &FrameMediaSettings) -> Result<(), Error>
fn force_content_dimensions(&self, web_dips: Option<&Vec2>) -> Result<(), Error>
fn set_permission_state( &self, permission: &PermissionDescriptor, web_origin: &str, state: PermissionState, ) -> Result<(), Error>
fn set_block_media_loading(&self, blocked: bool) -> Result<(), Error>
fn get_private_memory_size(&self) -> Self::GetPrivateMemorySizeResponseFut
fn set_content_area_settings( &self, settings: &ContentAreaSettings, ) -> Result<(), Error>
fn reset_content_area_settings(&self) -> Result<(), Error>
fn close(&self, payload: &FrameCloseRequest) -> Result<(), Error>
Source§impl Proxy for FrameProxy
impl Proxy for FrameProxy
Source§type Protocol = FrameMarker
type Protocol = FrameMarker
Proxy
controls.Source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Auto Trait Implementations§
impl Freeze for FrameProxy
impl !RefUnwindSafe for FrameProxy
impl Send for FrameProxy
impl Sync for FrameProxy
impl Unpin for FrameProxy
impl !UnwindSafe for FrameProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)