// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module blink.mojom;
// Parameters to evaluate scripts, mainly from outside Blink.
// Whether the script evaluation should be associated with a user gesture.
enum UserActivationOption {
kDoNotActivate,
kActivate,
};
enum WantResultOption {
kNoResult,
// Evaluation result (or promise resolution result if
// `PromiseResultOption::kAwait` is used) is passed to callback.
kWantResult,
// Same as above, with date and regexp allowed in V8ValueConverter.
kWantResultDateAndRegExpAllowed,
};
enum PromiseResultOption {
// If the result of the executed script is a promise or other then-able,
// wait for it to settle and pass the result of the promise to the caller.
// If the promise (and any subsequent thenables) resolves, this passes the
// value. If the promise rejects, the corresponding value will be empty.
kAwait,
// Don't wait for any promise to settle.
kDoNotWait,
};
enum EvaluationTiming {
// Execute scripts asynchronously.
kAsynchronous,
// Execute scripts synchronously, unless the page is suspended.
// Even in this case, completion can be asynchronous, e.g. when
// `PromiseResultOption::kAwait` is used.
// If the page is suspended, execute scripts asynchronously.
kSynchronous,
};
// Whether to block window load event until the scripts are evaluated.
enum LoadEventBlockingOption {
kDoNotBlock,
kBlock,
};