blob: b39db8e0fbd2b3cf65d9093bd8376e7d8690c6d8 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://rawgit.com/w3c/keyboard-lock/gh-pages/index.html.
// TODO(zijiehe, garykac): Update the spec to match the implementation.
// 1. "System" should be removed from both the function names: these functions
// are not for system keys or key combinations only.
// See https://github.com/w3c/keyboard-lock/issues/6
// 2. Returns Promise<void> from requestKeyboardLock() function: user agents can
// decline the request, and web page can get a notification once the
// requested keys should be received.
// See https://github.com/w3c/keyboard-lock/issues/7
// 3. The parameter of requestKeyboardLock() should be
// optional sequence<DOMString> keyCodes = []
// See https://github.com/w3c/keyboard-lock/issues/21
// 4. cancelKeyboardLock() function is implicitly called whenever the unloading
// document cleanup steps run with a document.
// See https://github.com/w3c/keyboard-lock/issues/22
[
ImplementedAs=NavigatorKeyboardLock
] partial interface Navigator {
[SecureContext, RuntimeEnabled=KeyboardLock, CallWith=ScriptState] Promise<void> requestKeyboardLock(optional sequence<DOMString> keyCodes = []);
[SecureContext, RuntimeEnabled=KeyboardLock] void cancelKeyboardLock();
};