Revision b55e29597d92ab89063673f031151e2bdb4b9479 authored by Joe Downing on 22 March 2018, 07:35:35 UTC, committed by Chromium WPT Sync on 22 March 2018, 07:35:35 UTC
This change moves the KeyboardLock API methods to a 'keyboard' namespace on the Navigator object. We are doing this work now as there has been a request for additional keyboard functionality that would also be placed on the new keyboard object and we wanted to move the KeyboardLock methods there for consistency before we launch. KeyboardLock API Spec is here: https://w3c.github.io/keyboard-lock/#API Old calling pattern: Navigator.keyboardLock(); Navigator.keyboardUnlock(); New calling pattern: Navigator.keyboard.lock(); Navigator.keyboard.unlock(); Note: The main logic in the KeyboardLock.cpp class and tests is the same as it was, however the file changed enough that git does not recognize it as a file move. BUG=680809 Change-Id: I234b2ab12d5ecd44c894ed5103863fd96fd548d4 Reviewed-on: https://chromium-review.googlesource.com/969656 Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Reviewed-by: Gary Kacmarcik <garykac@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Commit-Queue: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#544996}
1 parent 1a8c195
RTCRtpParameters-helper.js
'use strict';
// Test is based on the following editor draft:
// https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
// Helper function for testing RTCRtpParameters dictionary fields
// This file depends on dictionary-helper.js which should
// be loaded from the main HTML file.
/*
Validates the RTCRtpParameters returned from RTCRtpSender.prototype.getParameters
5.2. RTCRtpSender Interface
getParameters
- transactionId is set to a new unique identifier, used to match this getParameters
call to a setParameters call that may occur later.
- encodings is set to the value of the [[SendEncodings]] internal slot.
- The headerExtensions sequence is populated based on the header extensions that
have been negotiated for sending.
- The codecs sequence is populated based on the codecs that have been negotiated
for sending, and which the user agent is currently capable of sending. If
setParameters has removed or reordered codecs, getParameters MUST return the
shortened/reordered list. However, every time codecs are renegotiated by a
new offer/answer exchange, the list of codecs MUST be restored to the full
negotiated set, in the priority order indicated by the remote description,
in effect discarding the effects of setParameters.
- rtcp.cname is set to the CNAME of the associated RTCPeerConnection. rtcp.reducedSize
is set to true if reduced-size RTCP has been negotiated for sending, and false otherwise.
- degradationPreference is set to the last value passed into setParameters, or the
default value of "balanced" if setParameters hasn't been called.
*/
function validateSenderRtpParameters(param) {
validateRtpParameters(param);
assert_not_equals(param.transactionId, undefined,
'Expect sender param.transactionId to be set');
assert_not_equals(param.rtcp.cname, undefined,
'Expect sender param.rtcp.cname to be set');
assert_not_equals(param.rtcp.reducedSize, undefined,
'Expect sender param.rtcp.reducedSize to be set to either true or false');
}
/*
Validates the RTCRtpParameters returned from RTCRtpReceiver.prototype.getParameters
5.3. RTCRtpReceiver Interface
getParameters
When getParameters is called, the RTCRtpParameters dictionary is constructed
as follows:
- encodings is populated based on SSRCs and RIDs present in the current remote
description, including SSRCs used for RTX and FEC, if signaled. Every member
of the RTCRtpEncodingParameters dictionaries other than the SSRC and RID fields
is left undefined.
- The headerExtensions sequence is populated based on the header extensions that
the receiver is currently prepared to receive.
- The codecs sequence is populated based on the codecs that the receiver is currently
prepared to receive.
- rtcp.reducedSize is set to true if the receiver is currently prepared to receive
reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined.
- transactionId and degradationPreference are left undefined.
*/
function validateReceiverRtpParameters(param) {
validateRtpParameters(param);
assert_equals(param.transactionId, undefined,
'Expect receiver param.transactionId to be unset');
assert_not_equals(param.rtcp.reducedSize, undefined,
'Expect receiver param.rtcp.reducedSize to be set');
assert_equals(param.rtcp.cname, undefined,
'Expect receiver param.rtcp.cname to be unset');
assert_equals(param.degradationPreference, undefined,
'Expect receiver param.degradationPreference to be unset');
}
/*
dictionary RTCRtpParameters {
DOMString transactionId;
sequence<RTCRtpEncodingParameters> encodings;
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
RTCDegradationPreference degradationPreference;
};
enum RTCDegradationPreference {
"maintain-framerate",
"maintain-resolution",
"balanced"
};
*/
function validateRtpParameters(param) {
assert_optional_string_field(param, 'transactionId');
assert_array_field(param, 'encodings');
for(const encoding of param.encodings) {
validateEncodingParameters(encoding);
}
assert_array_field(param, 'headerExtensions');
for(const headerExt of param.headerExtensions) {
validateHeaderExtensionParameters(headerExt);
}
assert_dict_field(param, 'rtcp');
validateRtcpParameters(param.rtcp);
assert_array_field(param, 'codecs');
for(const codec of param.codecs) {
validateCodecParameters(codec);
}
assert_optional_enum_field(param, 'degradationPreference',
['maintain-framerate', 'maintain-resolution', 'balanced']);
}
/*
dictionary RTCRtpEncodingParameters {
[readonly]
unsigned long ssrc;
[readonly]
RTCRtpRtxParameters rtx;
[readonly]
RTCRtpFecParameters fec;
RTCDtxStatus dtx;
boolean active;
RTCPriorityType priority;
unsigned long ptime;
unsigned long maxBitrate;
double maxFramerate;
[readonly]
DOMString rid;
double scaleResolutionDownBy;
};
dictionary RTCRtpRtxParameters {
[readonly]
unsigned long ssrc;
};
dictionary RTCRtpFecParameters {
[readonly]
unsigned long ssrc;
};
enum RTCDtxStatus {
"disabled",
"enabled"
};
enum RTCPriorityType {
"very-low",
"low",
"medium",
"high"
};
*/
function validateEncodingParameters(encoding) {
assert_optional_unsigned_int_field(encoding, 'ssrc');
assert_optional_dict_field(encoding, 'rtx');
if(encoding.rtx) {
assert_unsigned_int_field(encoding.rtx, 'ssrc');
}
assert_optional_dict_field(encoding, 'fec');
if(encoding.fec) {
assert_unsigned_int_field(encoding.fec, 'ssrc');
}
assert_optional_enum_field(encoding, 'dtx',
['disabled', 'enabled']);
assert_optional_boolean_field(encoding, 'active');
assert_optional_enum_field(encoding, 'priority',
['very-low', 'low', 'medium', 'high']);
assert_optional_unsigned_int_field(encoding, 'ptime');
assert_optional_unsigned_int_field(encoding, 'maxBitrate');
assert_optional_number_field(encoding, 'maxFramerate');
assert_optional_string_field(encoding, 'rid');
assert_optional_number_field(encoding, 'scaleResolutionDownBy');
}
/*
dictionary RTCRtcpParameters {
[readonly]
DOMString cname;
[readonly]
boolean reducedSize;
};
*/
function validateRtcpParameters(rtcp) {
assert_optional_string_field(rtcp, 'cname');
assert_optional_boolean_field(rtcp, 'reducedSize');
}
/*
dictionary RTCRtpHeaderExtensionParameters {
[readonly]
DOMString uri;
[readonly]
unsigned short id;
[readonly]
boolean encrypted;
};
*/
function validateHeaderExtensionParameters(headerExt) {
assert_optional_string_field(headerExt, 'uri');
assert_optional_unsigned_int_field(headerExt, 'id');
assert_optional_boolean_field(headerExt, 'encrypted');
}
/*
dictionary RTCRtpCodecParameters {
[readonly]
unsigned short payloadType;
[readonly]
DOMString mimeType;
[readonly]
unsigned long clockRate;
[readonly]
unsigned short channels;
[readonly]
DOMString sdpFmtpLine;
};
*/
function validateCodecParameters(codec) {
assert_optional_unsigned_int_field(codec, 'payloadType');
assert_optional_string_field(codec, 'mimeType');
assert_optional_unsigned_int_field(codec, 'clockRate');
assert_optional_unsigned_int_field(codec, 'channels');
assert_optional_string_field(codec, 'sdpFmtpLine');
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...