diff --git a/index.bs b/index.bs index cc61e03c4..a570cca54 100644 --- a/index.bs +++ b/index.bs @@ -1400,6 +1400,7 @@ for a session.
 session.CapabilityRequest = {
   ? acceptInsecureCerts: bool,
+  ? interceptFileDialogs: bool,
   ? browserName: text,
   ? browserVersion: text,
   ? platformName: text,
@@ -1444,6 +1445,34 @@ with parameter |value| is:
 
 
 
+
+Capability: intercept file dialogs
+Key: "interceptFileDialogs"
+Value type: boolean
+Description: Defines whether the file dialogs should be intercepted and not shown on screen.
+
+ +
+The [=additional capability deserialization algorithm=] for the +"interceptFileDialogs" capability, with parameter |value| is: + +1. If |value| is not a boolean, return [=error=] with [=error code|code=] + [=invalid argument=]. + +1. Return [=success=] with data |value|. + +
+ +
+The [=matched capability serialization algorithm=] for the "interceptFileDialogs" capability, +with parameter |value| is: + +1. If |value| is false, return [=success=] with data null. + +1. Return [=success=] with data true. + +
+ #### The session.ProxyConfiguration Type #### {#type-session-ProxyConfiguration} [=remote end definition=] and [=local end definition=] @@ -9638,7 +9667,23 @@ opened steps given |element|. 1. [=Emit an event=] with |session| and |body|. -1. Return true. +1. Let |intercepting sessions| be the [=set of sessions for which file dialog interception is enabled=]. + +1. Return false if |intercepting sessions| is empty, and true otherwise. + + + +
+ +The set of sessions for which file dialog interception is enabled is: + +1. Let |sessions| be a new [=/set=]. + +1. For each |session| in [=active BiDI sessions=]: + + 1. If |session|'s [=intercept file dialogs=] capability is true, append |session| to |sessions|. + +1. Return |sessions|.