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
Raw File
dictionary-helper.js
'use strict';

// Helper assertion functions to validate dictionary fields
// on dictionary objects returned from APIs

function assert_unsigned_int_field(object, field) {
  const num = object[field];
  assert_true(Number.isInteger(num) && (num >= 0),
    `Expect dictionary.${field} to be unsigned integer`);
}

function assert_int_field(object, field) {
  const num = object[field];
  assert_true(Number.isInteger(num),
    `Expect dictionary.${field} to be integer`);
}

function assert_string_field(object, field) {
  const str = object[field];
  assert_equals(typeof str, 'string',
    `Expect dictionary.${field} to be string`);
}

function assert_number_field(object, field) {
  const num = object[field];
  assert_equals(typeof num, 'number',
    `Expect dictionary.${field} to be number`);
}

function assert_boolean_field(object, field) {
  const bool = object[field];
  assert_equals(typeof bool, 'boolean',
    `Expect dictionary.${field} to be boolean`);
}

function assert_array_field(object, field) {
  assert_true(Array.isArray(object[field]),
    `Expect dictionary.${field} to be array`);
}

function assert_dict_field(object, field) {
  assert_equals(typeof object[field], 'object',
    `Expect dictionary.${field} to be plain object`);

  assert_not_equals(object[field], null,
    `Expect dictionary.${field} to not be null`);
}

function assert_enum_field(object, field, validValues) {
  assert_string_field(object, field);
  assert_true(validValues.includes(object[field]),
    `Expect dictionary.${field} to have one of the valid enum values: ${validValues}`);
}

function assert_optional_unsigned_int_field(object, field) {
  if(object[field] !== undefined) {
    assert_unsigned_int_field(object, field);
  }
}

function assert_optional_int_field(object, field) {
  if(object[field] !== undefined) {
    assert_int_field(object, field);
  }
}

function assert_optional_string_field(object, field) {
  if(object[field] !== undefined) {
    assert_string_field(object, field);
  }
}

function assert_optional_number_field(object, field) {
  if(object[field] !== undefined) {
    assert_number_field(object, field);
  }
}

function assert_optional_boolean_field(object, field) {
  if(object[field] !== undefined) {
    assert_boolean_field(object, field);
  }
}

function assert_optional_array_field(object, field) {
  if(object[field] !== undefined) {
    assert_array_field(object, field);
  }
}

function assert_optional_dict_field(object, field) {
  if(object[field] !== undefined) {
    assert_dict_field(object, field);
  }
}

function assert_optional_enum_field(object, field, validValues) {
  if(object[field] !== undefined) {
    assert_enum_field(object, field, validValues);
  }
}
back to top