mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
Import chromium-70.0.3521.2
This commit is contained in:
commit
c677cbe429
36
.clang-format
Normal file
36
.clang-format
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Defines the Chromium style for automatic reformatting.
|
||||||
|
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
BasedOnStyle: Chromium
|
||||||
|
# This defaults to 'Auto'. Explicitly set it for a while, so that
|
||||||
|
# 'vector<vector<int> >' in existing files gets formatted to
|
||||||
|
# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
|
||||||
|
# 'int>>' if the file already contains at least one such instance.)
|
||||||
|
Standard: Cpp11
|
||||||
|
|
||||||
|
# Make sure code like:
|
||||||
|
# IPC_BEGIN_MESSAGE_MAP()
|
||||||
|
# IPC_MESSAGE_HANDLER(WidgetHostViewHost_Update, OnUpdate)
|
||||||
|
# IPC_END_MESSAGE_MAP()
|
||||||
|
# gets correctly indented.
|
||||||
|
MacroBlockBegin: "^\
|
||||||
|
BEGIN_MSG_MAP|\
|
||||||
|
BEGIN_MSG_MAP_EX|\
|
||||||
|
BEGIN_SAFE_MSG_MAP_EX|\
|
||||||
|
CR_BEGIN_MSG_MAP_EX|\
|
||||||
|
IPC_BEGIN_MESSAGE_MAP|\
|
||||||
|
IPC_BEGIN_MESSAGE_MAP_WITH_PARAM|\
|
||||||
|
IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN|\
|
||||||
|
IPC_STRUCT_BEGIN|\
|
||||||
|
IPC_STRUCT_BEGIN_WITH_PARENT|\
|
||||||
|
IPC_STRUCT_TRAITS_BEGIN|\
|
||||||
|
POLPARAMS_BEGIN|\
|
||||||
|
PPAPI_BEGIN_MESSAGE_MAP$"
|
||||||
|
MacroBlockEnd: "^\
|
||||||
|
CR_END_MSG_MAP|\
|
||||||
|
END_MSG_MAP|\
|
||||||
|
IPC_END_MESSAGE_MAP|\
|
||||||
|
IPC_PROTOBUF_MESSAGE_TRAITS_END|\
|
||||||
|
IPC_STRUCT_END|\
|
||||||
|
IPC_STRUCT_TRAITS_END|\
|
||||||
|
POLPARAMS_END|\
|
||||||
|
PPAPI_END_MESSAGE_MAP$"
|
45
.gitattributes
vendored
Normal file
45
.gitattributes
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Stop Windows python license check presubmit errors by forcing LF checkout.
|
||||||
|
*.py text eol=lf
|
||||||
|
|
||||||
|
# Force LF checkout of the pins files to avoid transport_security_state_generator errors.
|
||||||
|
/net/http/*.pins text eol=lf
|
||||||
|
|
||||||
|
# Force LF checkout for all source files
|
||||||
|
*.c text eol=lf
|
||||||
|
*.cc text eol=lf
|
||||||
|
*.cpp text eol=lf
|
||||||
|
*.grd text eol=lf
|
||||||
|
*.grdp text eol=lf
|
||||||
|
*.gn text eol=lf
|
||||||
|
*.gni text eol=lf
|
||||||
|
*.h text eol=lf
|
||||||
|
*.html text eol=lf
|
||||||
|
*.in text eol=lf
|
||||||
|
*.inc text eol=lf
|
||||||
|
*.java text eol=lf
|
||||||
|
*.js text eol=lf
|
||||||
|
*.json text eol=lf
|
||||||
|
*.md text eol=lf
|
||||||
|
*.mm text eol=lf
|
||||||
|
*.sh text eol=lf
|
||||||
|
*.sql text eol=lf
|
||||||
|
*.txt text eol=lf
|
||||||
|
*.xml text eol=lf
|
||||||
|
*.xslt text eol=lf
|
||||||
|
.clang-format text eol=lf
|
||||||
|
.eslintrc.js text eol=lf
|
||||||
|
.git-blame-ignore-revs text eol=lf
|
||||||
|
.gitattributes text eol=lf
|
||||||
|
.gitignore text eol=lf
|
||||||
|
.vpython text eol=lf
|
||||||
|
codereview.settings text eol=lf
|
||||||
|
DEPS text eol=lf
|
||||||
|
ENG_REVIEW_OWNERS text eol=lf
|
||||||
|
LICENSE text eol=lf
|
||||||
|
LICENSE.* text eol=lf
|
||||||
|
MAJOR_BRANCH_DATE text eol=lf
|
||||||
|
OWNERS text eol=lf
|
||||||
|
README text eol=lf
|
||||||
|
README.* text eol=lf
|
||||||
|
WATCHLISTS text eol=lf
|
||||||
|
VERSION text eol=lf
|
332
.gn
Normal file
332
.gn
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
# This file is used by the GN meta build system to find the root of the source
|
||||||
|
# tree and to set startup options. For documentation on the values set in this
|
||||||
|
# file, run "gn help dotfile" at the command line.
|
||||||
|
|
||||||
|
import("//build/dotfile_settings.gni")
|
||||||
|
import("//third_party/angle/dotfile_settings.gni")
|
||||||
|
|
||||||
|
# The location of the build configuration file.
|
||||||
|
buildconfig = "//build/config/BUILDCONFIG.gn"
|
||||||
|
|
||||||
|
# The secondary source root is a parallel directory tree where
|
||||||
|
# GN build files are placed when they can not be placed directly
|
||||||
|
# in the source tree, e.g. for third party source trees.
|
||||||
|
secondary_source = "//build/secondary/"
|
||||||
|
|
||||||
|
# These arguments override the default values for items in a declare_args
|
||||||
|
# block. "gn args" in turn can override these.
|
||||||
|
#
|
||||||
|
# In general the value for a build arg in the declare_args block should be the
|
||||||
|
# default. In some cases, a DEPS-ed in project will want different defaults for
|
||||||
|
# being built as part of Chrome vs. being built standalone. In this case, the
|
||||||
|
# Chrome defaults should go here. There should be no overrides here for
|
||||||
|
# values declared in the main Chrome repository.
|
||||||
|
#
|
||||||
|
# Important note for defining defaults: This file is executed before the
|
||||||
|
# BUILDCONFIG.gn file. That file sets up the global variables like "is_ios".
|
||||||
|
# This means that the default_args can not depend on the platform,
|
||||||
|
# architecture, or other build parameters. If you really need that, the other
|
||||||
|
# repo should define a flag that toggles on a behavior that implements the
|
||||||
|
# additional logic required by Chrome to set the variables.
|
||||||
|
default_args = {
|
||||||
|
# TODO(brettw) bug 684096: Chrome on iOS does not build v8, so "gn gen" prints
|
||||||
|
# a warning that "Build argument has no effect". When adding a v8 variable, it
|
||||||
|
# also needs to be defined to src/ios/BUILD.gn (respectively removed from both
|
||||||
|
# location when it is removed).
|
||||||
|
|
||||||
|
v8_extra_library_files = [
|
||||||
|
# Dependencies used by the extra libraries. Putting them here causes them
|
||||||
|
# to be executed first during snapshot creation.
|
||||||
|
"//third_party/blink/renderer/core/streams/CommonOperations.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/CommonStrings.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/SimpleQueue.js",
|
||||||
|
|
||||||
|
# Extra libraries.
|
||||||
|
"//third_party/blink/renderer/core/streams/ByteLengthQueuingStrategy.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/CountQueuingStrategy.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/ReadableStream.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/WritableStream.js",
|
||||||
|
"//third_party/blink/renderer/core/streams/TransformStream.js",
|
||||||
|
]
|
||||||
|
v8_experimental_extra_library_files = []
|
||||||
|
v8_enable_gdbjit = false
|
||||||
|
v8_imminent_deprecation_warnings = false
|
||||||
|
|
||||||
|
# TODO(jochen): Remove this. http://crbug.com/v8/5830,
|
||||||
|
# http://crbug.com/728583.
|
||||||
|
v8_check_microtasks_scopes_consistency = false
|
||||||
|
|
||||||
|
# Don't include webrtc's builtin task queue implementation.
|
||||||
|
rtc_link_task_queue_impl = false
|
||||||
|
|
||||||
|
# Don't include the iLBC audio codec.
|
||||||
|
# TODO(bugs.webrtc.org/8396): Once WebRTC gets rid of its internal
|
||||||
|
# deps on codecs, we can remove this.
|
||||||
|
rtc_include_ilbc = false
|
||||||
|
|
||||||
|
# Changes some setup for the Crashpad build to set them to build against
|
||||||
|
# Chromium's zlib, base, etc.
|
||||||
|
crashpad_dependencies = "chromium"
|
||||||
|
}
|
||||||
|
|
||||||
|
# These are the targets to check headers for by default. The files in targets
|
||||||
|
# matching these patterns (see "gn help label_pattern" for format) will have
|
||||||
|
# their includes checked for proper dependencies when you run either
|
||||||
|
# "gn check" or "gn gen --check".
|
||||||
|
check_targets = [
|
||||||
|
#"//apps/*", # Medium-hard.
|
||||||
|
"//ash/*",
|
||||||
|
"//base/*",
|
||||||
|
"//blink/*",
|
||||||
|
"//build/*",
|
||||||
|
"//cc/*",
|
||||||
|
|
||||||
|
#"//chrome/*", # Epic number of errors.
|
||||||
|
"//chrome/app/*",
|
||||||
|
"//chrome/app_shim/*",
|
||||||
|
|
||||||
|
#"//chrome/browser/android/*", # Only vr has errors. https://crbug.com/871623
|
||||||
|
"//chrome/browser/android/accessibility/*",
|
||||||
|
"//chrome/browser/android/autofill_assistant/*",
|
||||||
|
"//chrome/browser/android/bookmarks/*",
|
||||||
|
"//chrome/browser/android/bottombar/*",
|
||||||
|
"//chrome/browser/android/browserservices/*",
|
||||||
|
"//chrome/browser/android/browsing_data/*",
|
||||||
|
"//chrome/browser/android/component_updater/*",
|
||||||
|
"//chrome/browser/android/compositor/*",
|
||||||
|
"//chrome/browser/android/compositor/layer/*",
|
||||||
|
"//chrome/browser/android/compositor/resources/*",
|
||||||
|
"//chrome/browser/android/compositor/scene_layer/*",
|
||||||
|
"//chrome/browser/android/consent_auditor/*",
|
||||||
|
"//chrome/browser/android/content/*",
|
||||||
|
"//chrome/browser/android/contextualsearch/*",
|
||||||
|
"//chrome/browser/android/contextual_suggestions/*",
|
||||||
|
"//chrome/browser/android/cookies/*",
|
||||||
|
"//chrome/browser/android/crash/*",
|
||||||
|
"//chrome/browser/android/customtabs/*",
|
||||||
|
"//chrome/browser/android/digital_asset_links/*",
|
||||||
|
"//chrome/browser/android/document/*",
|
||||||
|
"//chrome/browser/android/dom_distiller/*",
|
||||||
|
"//chrome/browser/android/download/*",
|
||||||
|
"//chrome/browser/android/download/items/*",
|
||||||
|
"//chrome/browser/android/download/service/*",
|
||||||
|
"//chrome/browser/android/explore_sites/*",
|
||||||
|
"//chrome/browser/android/feature_engagement/*",
|
||||||
|
"//chrome/browser/android/feed/*",
|
||||||
|
"//chrome/browser/android/feedback/*",
|
||||||
|
"//chrome/browser/android/find_in_page/*",
|
||||||
|
"//chrome/browser/android/history/*",
|
||||||
|
"//chrome/browser/android/history_report/*",
|
||||||
|
"//chrome/browser/android/instantapps/*",
|
||||||
|
"//chrome/browser/android/locale/*",
|
||||||
|
"//chrome/browser/android/metrics/*",
|
||||||
|
"//chrome/browser/android/mojo/*",
|
||||||
|
"//chrome/browser/android/net/*",
|
||||||
|
"//chrome/browser/android/ntp/*",
|
||||||
|
"//chrome/browser/android/omnibox/*",
|
||||||
|
"//chrome/browser/android/oom_intervention/*",
|
||||||
|
"//chrome/browser/android/password_manager/*",
|
||||||
|
"//chrome/browser/android/payments/*",
|
||||||
|
"//chrome/browser/android/policy/*",
|
||||||
|
"//chrome/browser/android/preferences/*",
|
||||||
|
"//chrome/browser/android/preferences/autofill/*",
|
||||||
|
"//chrome/browser/android/profiles/*",
|
||||||
|
"//chrome/browser/android/proto/*",
|
||||||
|
"//chrome/browser/android/provider/*",
|
||||||
|
"//chrome/browser/android/rappor/*",
|
||||||
|
"//chrome/browser/android/rlz/*",
|
||||||
|
"//chrome/browser/android/search_permissions/*",
|
||||||
|
"//chrome/browser/android/sessions/*",
|
||||||
|
"//chrome/browser/android/signin/*",
|
||||||
|
"//chrome/browser/android/subresource_filter/*",
|
||||||
|
"//chrome/browser/android/tasks/*",
|
||||||
|
"//chrome/browser/android/thumbnail/*",
|
||||||
|
"//chrome/browser/android/usb/*",
|
||||||
|
"//chrome/browser/android/vr/arcore_device/*",
|
||||||
|
"//chrome/browser/android/webapk/*",
|
||||||
|
"//chrome/browser/android/webapps/*",
|
||||||
|
"//chrome/browser/android/widget/*",
|
||||||
|
|
||||||
|
"//chrome/browser/chromeos/*",
|
||||||
|
"//chrome/browser/extensions/*",
|
||||||
|
"//chrome/browser/resource_coordinator/*",
|
||||||
|
"//chrome/browser/ui/*",
|
||||||
|
"//chrome/chrome_cleaner/*",
|
||||||
|
"//chrome/common/*",
|
||||||
|
"//chrome/installer/*",
|
||||||
|
"//chrome/profiling",
|
||||||
|
"//chrome/third_party/mozilla_security_manager/*",
|
||||||
|
"//chrome/tools/*",
|
||||||
|
"//chrome/utility/*",
|
||||||
|
"//chromecast/*",
|
||||||
|
"//chromeos/*",
|
||||||
|
"//chrome_elf/*",
|
||||||
|
"//cloud_print/*",
|
||||||
|
"//components/*",
|
||||||
|
"//content/*",
|
||||||
|
"//courgette/*",
|
||||||
|
"//crypto/*",
|
||||||
|
"//data/*",
|
||||||
|
"//dbus/*",
|
||||||
|
"//device/*",
|
||||||
|
|
||||||
|
#"//extensions/*", # Lots of errors.
|
||||||
|
"//extensions:extensions_unittests",
|
||||||
|
"//extensions/browser:browser_tests",
|
||||||
|
"//extensions/browser:unit_tests",
|
||||||
|
"//extensions/browser/install:*",
|
||||||
|
"//extensions/common:common",
|
||||||
|
"//extensions/common:unit_tests",
|
||||||
|
"//extensions/renderer:unit_tests",
|
||||||
|
"//extensions/shell/*",
|
||||||
|
"//gin/*",
|
||||||
|
"//google_apis/*",
|
||||||
|
"//google_update/*",
|
||||||
|
"//gpu/*",
|
||||||
|
|
||||||
|
"//ios/*",
|
||||||
|
"//ios_internal/*",
|
||||||
|
"//ipc/*",
|
||||||
|
|
||||||
|
#"//jingle/*",
|
||||||
|
"//mash/*",
|
||||||
|
|
||||||
|
"//media/*",
|
||||||
|
"//mojo/*",
|
||||||
|
|
||||||
|
#"//native_client/*",
|
||||||
|
"//net/*",
|
||||||
|
|
||||||
|
#"//pdf/*", # Medium-hard.
|
||||||
|
#"//ppapi/*", # Lots of errors.
|
||||||
|
"//ppapi/examples/*",
|
||||||
|
"//ppapi/tests/*",
|
||||||
|
"//printing/*",
|
||||||
|
|
||||||
|
#"//remoting/*", # Medium-hard.
|
||||||
|
"//rlz/*",
|
||||||
|
|
||||||
|
#"//sandbox/*", # Medium-hard.
|
||||||
|
"//services/*",
|
||||||
|
"//skia/*",
|
||||||
|
"//sql/*",
|
||||||
|
"//storage/*",
|
||||||
|
"//testing/*",
|
||||||
|
|
||||||
|
#"//third_party/*", # May not ever want this.
|
||||||
|
#"//third_party/breakpad/*", # Small errors.
|
||||||
|
"//third_party/boringssl/*",
|
||||||
|
"//third_party/brotli/*",
|
||||||
|
"//third_party/fuchsia-sdk/*",
|
||||||
|
"//third_party/hunspell/*",
|
||||||
|
"//third_party/leveldatabase/*",
|
||||||
|
|
||||||
|
#"//third_party/libaddressinput/*", # Small errors.
|
||||||
|
"//third_party/libphonenumber/*",
|
||||||
|
|
||||||
|
#"//third_party/libwebp/*", # Errors: https://crbug.com/800762
|
||||||
|
"//third_party/snappy/*",
|
||||||
|
|
||||||
|
#"//third_party/WebKit/*", # Errors: https://crbug.com/800764
|
||||||
|
#"//third_party/webrtc/*", # Errors: https://crbug.com/824831
|
||||||
|
"//third_party/webrtc_overrides/*",
|
||||||
|
"//tools/*",
|
||||||
|
|
||||||
|
"//ui/*",
|
||||||
|
"//url/*",
|
||||||
|
|
||||||
|
#"//v8/*", # Errors: https://bugs.chromium.org/p/v8/issues/detail?id=7330
|
||||||
|
"//webrunner/*",
|
||||||
|
]
|
||||||
|
|
||||||
|
# These are the list of GN files that run exec_script. This whitelist exists
|
||||||
|
# to force additional review for new uses of exec_script, which is strongly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# GYPI_TO_GN
|
||||||
|
#
|
||||||
|
# Some of these entries are for legacy gypi_to_gn calls. We should not be
|
||||||
|
# adding new calls to this script in the build (see //build/gypi_to_gn.py for
|
||||||
|
# detailed advice). The only time you should be editing this list for
|
||||||
|
# gypi_to_gn purposes is when moving an existing call to a different place.
|
||||||
|
#
|
||||||
|
# PLEASE READ
|
||||||
|
#
|
||||||
|
# You should almost never need to add new exec_script calls. exec_script is
|
||||||
|
# slow, especially on Windows, and can cause confusing effects. Although
|
||||||
|
# individually each call isn't slow or necessarily very confusing, at the scale
|
||||||
|
# of our repo things get out of hand quickly. By strongly pushing back on all
|
||||||
|
# additions, we keep the build fast and clean. If you think you need to add a
|
||||||
|
# new call, please consider:
|
||||||
|
#
|
||||||
|
# - Do not use a script to check for the existence of a file or directory to
|
||||||
|
# enable a different mode. Instead, use GN build args to enable or disable
|
||||||
|
# functionality and set options. An example is checking for a file in the
|
||||||
|
# src-internal repo to see if the corresponding src-internal feature should
|
||||||
|
# be enabled. There are several things that can go wrong with this:
|
||||||
|
#
|
||||||
|
# - It's mysterious what causes some things to happen. Although in many cases
|
||||||
|
# such behavior can be conveniently automatic, GN optimizes for explicit
|
||||||
|
# and obvious behavior so people can more easily diagnose problems.
|
||||||
|
#
|
||||||
|
# - The user can't enable a mode for one build and not another. With GN build
|
||||||
|
# args, the user can choose the exact configuration of multiple builds
|
||||||
|
# using one checkout. But implicitly basing flags on the state of the
|
||||||
|
# checkout, this functionality is broken.
|
||||||
|
#
|
||||||
|
# - It's easy to get stale files. If for example the user edits the gclient
|
||||||
|
# to stop checking out src-internal (or any other optional thing), it's
|
||||||
|
# easy to end up with stale files still mysteriously triggering build
|
||||||
|
# conditions that are no longer appropriate (yes, this happens in real
|
||||||
|
# life).
|
||||||
|
#
|
||||||
|
# - Do not use a script to iterate files in a directory (glob):
|
||||||
|
#
|
||||||
|
# - This has the same "stale file" problem as the above discussion. Various
|
||||||
|
# operations can leave untracked files in the source tree which can cause
|
||||||
|
# surprising effects.
|
||||||
|
#
|
||||||
|
# - It becomes impossible to use "git grep" to find where a certain file is
|
||||||
|
# referenced. This operation is very common and people really do get
|
||||||
|
# confused when things aren't listed.
|
||||||
|
#
|
||||||
|
# - It's easy to screw up. One common case is a build-time script that packs
|
||||||
|
# up a directory. The author notices that the script isn't re-run when the
|
||||||
|
# directory is updated, so adds a glob so all the files are listed as
|
||||||
|
# inputs. This seems to work great... until a file is deleted. When a
|
||||||
|
# file is deleted, all the inputs the glob lists will still be up to date
|
||||||
|
# and no command-lines will have been changed. The action will not be
|
||||||
|
# re-run and the build will be broken. It is possible to get this correct
|
||||||
|
# using glob, and it's possible to mess it up without glob, but globs make
|
||||||
|
# this situation much easier to create. if the build always lists the
|
||||||
|
# files and passes them to a script, it will always be correct.
|
||||||
|
|
||||||
|
exec_script_whitelist =
|
||||||
|
build_dotfile_settings.exec_script_whitelist +
|
||||||
|
angle_dotfile_settings.exec_script_whitelist +
|
||||||
|
[
|
||||||
|
# Whitelist entries for //build should go into
|
||||||
|
# //build/dotfile_settings.gni instead, so that they can be shared
|
||||||
|
# with other repos. The entries in this list should be only for files
|
||||||
|
# in the Chromium repo outside of //build.
|
||||||
|
"//build_overrides/build.gni",
|
||||||
|
|
||||||
|
# TODO(dgn): Layer violation but breaks the build otherwise, see
|
||||||
|
# https://crbug.com/474506.
|
||||||
|
"//clank/java/BUILD.gn",
|
||||||
|
"//clank/native/BUILD.gn",
|
||||||
|
|
||||||
|
"//remoting/host/installer/linux/BUILD.gn",
|
||||||
|
"//remoting/remoting_version.gni",
|
||||||
|
"//remoting/host/installer/win/generate_clsids.gni",
|
||||||
|
|
||||||
|
# TODO(dpranke): Get these from the appropriate repos instead.
|
||||||
|
"//third_party/catapult/tracing/BUILD.gn",
|
||||||
|
"//third_party/google_input_tools/inputview.gni",
|
||||||
|
|
||||||
|
"//tools/grit/grit_rule.gni",
|
||||||
|
|
||||||
|
# Not gypi-to-gn.
|
||||||
|
"//google_apis/BUILD.gn",
|
||||||
|
"//printing/BUILD.gn",
|
||||||
|
]
|
992
AUTHORS
Normal file
992
AUTHORS
Normal file
@ -0,0 +1,992 @@
|
|||||||
|
# Names should be added to this file with this pattern:
|
||||||
|
#
|
||||||
|
# For individuals:
|
||||||
|
# Name <email address>
|
||||||
|
#
|
||||||
|
# For organizations:
|
||||||
|
# Organization <fnmatch pattern>
|
||||||
|
#
|
||||||
|
# See python fnmatch module documentation for more information.
|
||||||
|
|
||||||
|
Aaron Boushley <boushley@gmail.com>
|
||||||
|
Aaron Jacobs <samusaaron3@gmail.com>
|
||||||
|
Aaron Leventhal <aaronlevbugs@gmail.com>
|
||||||
|
Aaron Randolph <aaron.randolph@gmail.com>
|
||||||
|
Aaryaman Vasishta <jem456.vasishta@gmail.com>
|
||||||
|
Abhijeet Kandalkar <abhijeet.k@samsung.com>
|
||||||
|
Abhishek Agarwal <abhishek.a21@samsung.com>
|
||||||
|
Abhishek Kanike <abhishek.ka@samsung.com>
|
||||||
|
Abhishek Singh <abhi.rathore@samsung.com>
|
||||||
|
Adam Bonner <abonner-chromium@solscope.com>
|
||||||
|
Adam Roben <adam@github.com>
|
||||||
|
Adam Treat <adam.treat@samsung.com>
|
||||||
|
Addanki Gandhi Kishor <kishor.ag@samsung.com>
|
||||||
|
Adenilson Cavalcanti <a.cavalcanti@samsung.com>
|
||||||
|
Aditya Bhargava <heuristicist@gmail.com>
|
||||||
|
Adrian Belgun <adrian.belgun@intel.com>
|
||||||
|
Ahmet Emir Ercin <ahmetemiremir@gmail.com>
|
||||||
|
Ajay Berwal <a.berwal@samsung.com>
|
||||||
|
Ajay Berwal <ajay.berwal@samsung.com>
|
||||||
|
Ajith Kumar V <ajith.v@samsung.com>
|
||||||
|
Aku Kotkavuo <a.kotkavuo@partner.samsung.com>
|
||||||
|
Aldo Culquicondor <alculquicondor@gmail.com>
|
||||||
|
Aleksandar Stojiljkovic <aleksandar.stojiljkovic@intel.com>
|
||||||
|
Alex Gabriel <minilogo@gmail.com>
|
||||||
|
Alex Gartrell <agartrell@cmu.edu>
|
||||||
|
Alex Henrie <alexhenrie24@gmail.com>
|
||||||
|
Alex Scheele <alexscheele@gmail.com>
|
||||||
|
Alexander Douglas <agdoug@amazon.com>
|
||||||
|
Alexander Shalamov <alexander.shalamov@intel.com>
|
||||||
|
Alexander Sulfrian <alexander@sulfrian.net>
|
||||||
|
Alexandre Abreu <wiss1976@gmail.com>
|
||||||
|
Alexandru Chiculita <achicu@adobe.com>
|
||||||
|
Alexey Korepanov <alexkorep@gmail.com>
|
||||||
|
Alexey Kuts <kruntuid@gmail.com>
|
||||||
|
Alexey Kuzmin <alex.s.kuzmin@gmail.com>
|
||||||
|
Alexis Brenon <brenon.alexis@gmail.com>
|
||||||
|
Alexis La Goutte <alexis.lagoutte@gmail.com>
|
||||||
|
Alexis Menard <alexis.menard@intel.com>
|
||||||
|
Alfredo Hernandez <ahernandez.miralles@gmail.com>
|
||||||
|
Ali Vathi <ali.akbar@gmail.com>
|
||||||
|
Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
||||||
|
Alper Çakan <alpercakan98@gmail.com>
|
||||||
|
Ambarish Rapte <ambarish.r@samsung.com>
|
||||||
|
Amey Jahagirdar <jahagird@amazon.com>
|
||||||
|
Amit Sarkar <amit.srkr@samsung.com>
|
||||||
|
Amogh Bihani <amogh.bihani@samsung.com>
|
||||||
|
Amos Lim <amoseui@gmail.com>
|
||||||
|
Amos Lim <eui-sang.lim@samsung.com>
|
||||||
|
Amruth Raj <amruthraj@motorola.com>
|
||||||
|
Amruth Raj <ckqr36@motorola.com>
|
||||||
|
Anand Ratn <anand.ratn@samsung.com>
|
||||||
|
Anastasios Cassiotis <tom.cassiotis@gmail.com>
|
||||||
|
anatoly techtonik <techtonik@gmail.com>
|
||||||
|
Ancil George <ancilgeorge@samsung.com>
|
||||||
|
Andra Paraschiv <andra.paraschiv@intel.com>
|
||||||
|
Andrei Borza <andrei.borza@gmail.com>
|
||||||
|
Andrei Parvu <andrei.prv@gmail.com>
|
||||||
|
Andrei Parvu <parvu@adobe.com>
|
||||||
|
Andrew Boyarshin <andrew.boyarshin@gmail.com>
|
||||||
|
Andrew Brampton <me@bramp.net>
|
||||||
|
Andrew Hung <andrhung@amazon.com>
|
||||||
|
Andrew MacPherson <andrew.macpherson@soundtrap.com>
|
||||||
|
Andrew Tulloch <andrew@tullo.ch>
|
||||||
|
Anish Patankar <anish.p@samsung.com>
|
||||||
|
Ankit Kumar <ankit2.kumar@samsung.com>
|
||||||
|
Ankur Verma <ankur1.verma@samsung.com>
|
||||||
|
Anna Henningsen <anna@addaleax.net>
|
||||||
|
Anne Kao <annekao94@gmail.com>
|
||||||
|
Anssi Hannula <anssi.hannula@iki.fi>
|
||||||
|
Anthony Halliday <anth.halliday12@gmail.com>
|
||||||
|
Anton Obzhirov <a.obzhirov@samsung.com>
|
||||||
|
Antonin Hildebrand <antonin.hildebrand@gmail.com>
|
||||||
|
Antonio Gomes <a1.gomes@sisa.samsung.com>
|
||||||
|
Anuj Kumar Sharma <anujk.sharma@samsung.com>
|
||||||
|
Arjun Karthik <arjunkar@amazon.com>
|
||||||
|
Arman Ghotb <armanghotb@gmail.com>
|
||||||
|
Armin Burgmeier <aburgmeier@bloomberg.net>
|
||||||
|
Arnaud Renevier <a.renevier@samsung.com>
|
||||||
|
Arpita Bahuguna <a.bah@samsung.com>
|
||||||
|
Arthur Lussos <developer0420@gmail.com>
|
||||||
|
Arun Kulkarni <kulkarni.a@samsung.com>
|
||||||
|
Arun Kumar <arun87.kumar@samsung.com>
|
||||||
|
Arun Mankuzhi <arun.m@samsung.com>
|
||||||
|
Arunoday Sarkar <a.sarkar.arun@gmail.com>
|
||||||
|
Arunprasad Rajkumar <ararunprasad@gmail.com>
|
||||||
|
Arunprasad Rajkumar <arurajku@cisco.com>
|
||||||
|
Ashish Kumar Gupta <guptaag@amazon.com>
|
||||||
|
Ashlin Joseph <ashlin.j@samsung.com>
|
||||||
|
Asish Singh <asish.singh@samsung.com>
|
||||||
|
Attila Dusnoki <dati91@gmail.com>
|
||||||
|
Avinaash Doreswamy <avi.nitk@samsung.com>
|
||||||
|
Ayush Khandelwal <k.ayush@samsung.com>
|
||||||
|
Balazs Kelemen <b.kelemen@samsung.com>
|
||||||
|
Baul Eun <baul.eun@samsung.com>
|
||||||
|
Behara Mani Shyam Patro <behara.ms@samsung.com>
|
||||||
|
Bem Jones-Bey <bemajaniman@gmail.com>
|
||||||
|
Bem Jones-Bey <bjonesbe@adobe.com>
|
||||||
|
Ben Fiola <benfiola@gmail.com>
|
||||||
|
Ben Karel <eschew@gmail.com>
|
||||||
|
Ben Noordhuis <ben@strongloop.com>
|
||||||
|
Benjamin Dupont <bedupont@cisco.com>
|
||||||
|
Benjamin Jemlich <pcgod99@gmail.com>
|
||||||
|
Bernard Cafarelli <voyageur@gentoo.org>
|
||||||
|
Bernhard M. Wiedemann <bwiedemann@suse.de>
|
||||||
|
Bhagirathi Satpathy <bhagirathi.s@samsung.com>
|
||||||
|
Bhanukrushana Rout <b.rout@samsung.com>
|
||||||
|
Biljith Jayan <billy.jayan@samsung.com>
|
||||||
|
Bobby Powers <bobbypowers@gmail.com>
|
||||||
|
Branden Archer <bma4@zips.uakron.edu>
|
||||||
|
Brendan Kirby <brendan.kirby@imgtec.com>
|
||||||
|
Brendan Long <self@brendanlong.com>
|
||||||
|
Brian G. Merrell <bgmerrell@gmail.com>
|
||||||
|
Brian Konzman, SJ <b.g.konzman@gmail.com>
|
||||||
|
Brian Luft <brian@electroly.com>
|
||||||
|
Brian Merrell, Novell Inc. <bgmerrell@gmail.com>
|
||||||
|
Brian Yip <itsbriany@gmail.com>
|
||||||
|
Bruno Calvignac <bruno@flock.com>
|
||||||
|
Bruno de Oliveira Abinader <brunoabinader@gmail.com>
|
||||||
|
Bruno Roy <brusi_roy@hotmail.com>
|
||||||
|
Bryan Donlan <bdonlan@gmail.com>
|
||||||
|
Bryce Thomas <bryct@amazon.com>
|
||||||
|
Byounghoon Yoon <bill.2714@kakaocorp.com>
|
||||||
|
Byoungkwon Ko <codeimpl@gmail.com>
|
||||||
|
Byungwoo Lee <bw80.lee@samsung.com>
|
||||||
|
Caesar Wang <wxt@rock-chips.com>
|
||||||
|
Caio Marcelo de Oliveira Filho <caio.de.oliveira.filho@intel.com>
|
||||||
|
Caitlin Potter <caitpotter88@gmail.com>
|
||||||
|
Calvin Mei <calvimei@amazon.com>
|
||||||
|
Cameron Gutman <aicommander@gmail.com>
|
||||||
|
Catalin Badea <badea@adobe.com>
|
||||||
|
Cathie Chen <cathiechen@tencent.com>
|
||||||
|
Cem Kocagil <cem.kocagil@gmail.com>
|
||||||
|
Chakshu Ahuja <chakshu.a@samsung.com>
|
||||||
|
Chamal De Silva <chamalsl@yahoo.com>
|
||||||
|
Chandan Padhi <c.padhi@samsung.com>
|
||||||
|
Chandra Shekar Vallala <brk376@motorola.com>
|
||||||
|
Chandramouli Sanchi <cm.sanchi@samsung.com>
|
||||||
|
Chang Shu <c.shu@samsung.com>
|
||||||
|
Changbin Shao <changbin.shao@intel.com>
|
||||||
|
Changjun Yang <changjun.yang@intel.com>
|
||||||
|
ChangSeok Oh <shivamidow@gmail.com>
|
||||||
|
Changwan Hong <cwhong893@gmail.com>
|
||||||
|
Changyeon Kim <cyzero.kim@samsung.com>
|
||||||
|
Chanho Park <parkch98@gmail.com>
|
||||||
|
Chansik Yun <chansik.yun@gmail.com>
|
||||||
|
Chaobin Zhang <zhchbin@gmail.com>
|
||||||
|
Charles Vaughn <cvaughn@gmail.com>
|
||||||
|
Choongwoo Han <cwhan.tunz@gmail.com>
|
||||||
|
Chris Greene <cwgreene@amazon.com>
|
||||||
|
Chris Harrelson <chrishtr@gmail.com>
|
||||||
|
Chris Nardi <hichris123@gmail.com>
|
||||||
|
Chris Szurgot <szurgotc@amazon.com>
|
||||||
|
Chris Tserng <tserng@amazon.com>
|
||||||
|
Chris Vasselli <clindsay@gmail.com>
|
||||||
|
Christophe Dumez <ch.dumez@samsung.com>
|
||||||
|
Christopher Dale <chrelad@gmail.com>
|
||||||
|
Claudio DeSouza <claudiomdsjr@gmail.com>
|
||||||
|
Clemens Fruhwirth <clemens@endorphin.org>
|
||||||
|
Clement Scheelfeldt Skau <clementskau@gmail.com>
|
||||||
|
Clinton Staley <clintstaley@gmail.com>
|
||||||
|
Connor Pearson <cjp822@gmail.com>
|
||||||
|
Craig Schlenter <craig.schlenter@gmail.com>
|
||||||
|
Csaba Osztrogonác <ossy.szeged@gmail.com>
|
||||||
|
Daegyu Lee <na7jun8gi@gmail.com>
|
||||||
|
Dai Chunyang <chunyang.dai@intel.com>
|
||||||
|
Daiwei Li <daiweili@suitabletech.com>
|
||||||
|
Damien Marié <damien@dam.io>
|
||||||
|
Dan McCombs <overridex@gmail.com>
|
||||||
|
Daniel Bevenius <daniel.bevenius@gmail.com>
|
||||||
|
Daniel Bomar <dbdaniel42@gmail.com>
|
||||||
|
Daniel Carvalho Liedke <dliedke@gmail.com>
|
||||||
|
Daniel Charles <daniel.charles@intel.com>
|
||||||
|
Daniel Imms <daniimms@amazon.com>
|
||||||
|
Daniel Johnson <danielj41@gmail.com>
|
||||||
|
Daniel Lockyer <thisisdaniellockyer@gmail.com>
|
||||||
|
Daniel Nishi <dhnishi@gmail.com>
|
||||||
|
Daniel Platz <daplatz@googlemail.com>
|
||||||
|
Daniel Shaulov <dshaulov@ptc.com>
|
||||||
|
Daniel Trebbien <dtrebbien@gmail.com>
|
||||||
|
Daniel Waxweiler <daniel.waxweiler@gmail.com>
|
||||||
|
Dániel Bátyai <dbatyai@inf.u-szeged.hu>
|
||||||
|
Dániel Vince <vinced@inf.u-szeged.hu>
|
||||||
|
Darshini KN <kn.darshini@samsung.com>
|
||||||
|
David Benjamin <davidben@mit.edu>
|
||||||
|
David Davidovic <david@davidovic.io>
|
||||||
|
David Erceg <erceg.david@gmail.com>
|
||||||
|
David Fox <david@davidjfox.com>
|
||||||
|
David Futcher <david.mike.futcher@gmail.com>
|
||||||
|
David Leen <davileen@amazon.com>
|
||||||
|
David McAllister <mcdavid@amazon.com>
|
||||||
|
David Michael Barr <david.barr@samsung.com>
|
||||||
|
David Spellman <dspell@amazon.com>
|
||||||
|
Dax Kelson <dkelson@gurulabs.com>
|
||||||
|
Debashish Samantaray <d.samantaray@samsung.com>
|
||||||
|
Debug Wang <debugwang@tencent.com>
|
||||||
|
Deepak Dilip Borade <deepak.db@samsung.com>
|
||||||
|
Deepak Mittal <deepak.m1@samsung.com>
|
||||||
|
Deepak Singla <deepak.s@samsung.com>
|
||||||
|
Deokjin Kim <deokjin81.kim@samsung.com>
|
||||||
|
Derek Halman <d.halman@gmail.com>
|
||||||
|
Devlin Cronin <rdevlin.cronin@gmail.com>
|
||||||
|
Diana Suvorova <diana.suvorova@gmail.com>
|
||||||
|
Diego Ferreiro Val <elfogris@gmail.com>
|
||||||
|
Dillon Sellars <dill.sellars@gmail.com>
|
||||||
|
Divya Bansal <divya.bansal@samsung.com>
|
||||||
|
Dominic Farolino <domfarolino@gmail.com>
|
||||||
|
Dominic Jodoin <dominic.jodoin@gmail.com>
|
||||||
|
Dominik Röttsches <dominik.rottsches@intel.com>
|
||||||
|
Don Woodward <woodward@adobe.com>
|
||||||
|
Donghee Na <corona10@gmail.com>
|
||||||
|
Dongie Agnir <dongie.agnir@gmail.com>
|
||||||
|
Dongjun Kim <djmix.kim@samsung.com>
|
||||||
|
Dongseong Hwang <dongseong.hwang@intel.com>
|
||||||
|
Dongwoo Joshua Im <dw.im@samsung.com>
|
||||||
|
Dongyu Lin <l2d4y3@gmail.com>
|
||||||
|
Donna Wu <donna.wu@intel.com>
|
||||||
|
Douglas F. Turner <doug.turner@gmail.com>
|
||||||
|
Dustin Doloff <doloffd@amazon.com>
|
||||||
|
Ebrahim Byagowi <ebrahim@gnu.org>
|
||||||
|
Ebrahim Byagowi <ebraminio@gmail.com>
|
||||||
|
Eden Wang <nedenwang@tencent.com>
|
||||||
|
Eduardo Lima (Etrunko) <eblima@gmail.com>
|
||||||
|
Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
|
||||||
|
Edward Baker <edward.baker@intel.com>
|
||||||
|
Edward Crossman <tedoc2000@gmail.com>
|
||||||
|
Eero Häkkinen <e.hakkinen@samsung.com>
|
||||||
|
Eero Häkkinen <eero.hakkinen@intel.com>
|
||||||
|
Egor Starkov <egor.starkov@samsung.com>
|
||||||
|
Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
||||||
|
Elan Ruusamäe <elan.ruusamae@gmail.com>
|
||||||
|
Eric Ahn <byungwook.ahn@gmail.com>
|
||||||
|
Eric Rescorla <ekr@rtfm.com>
|
||||||
|
Erik Hill <erikghill@gmail.com>
|
||||||
|
Erik Sjölund <erik.sjolund@gmail.com>
|
||||||
|
Eriq Augustine <eriq.augustine@gmail.com>
|
||||||
|
Ernesto Mudu <ernesto.mudu@gmail.com>
|
||||||
|
Etienne Laurin <etienne@atnnn.com>
|
||||||
|
Evan Peterson <evan.peterson.ep@gmail.com>
|
||||||
|
Evan Wallace <evan.exe@gmail.com>
|
||||||
|
Evangelos Foutras <evangelos@foutrelis.com>
|
||||||
|
Evgeniy Dushistov <dushistov@gmail.com>
|
||||||
|
Evgeny Agafonchikov <evgeny.agafonchikov@akvelon.com>
|
||||||
|
Fabien Tassin <fta@sofaraway.org>
|
||||||
|
Felix H. Dahlke <fhd@ubercode.de>
|
||||||
|
Fengrong Fang <fr.fang@samsung.com>
|
||||||
|
Fernando Jiménez Moreno <ferjmoreno@gmail.com>
|
||||||
|
Finbar Crago <finbar.crago@gmail.com>
|
||||||
|
François Beaufort <beaufort.francois@gmail.com>
|
||||||
|
Francois Kritzinger <francoisk777@gmail.com>
|
||||||
|
Francois Rauch <leopardb@gmail.com>
|
||||||
|
Frankie Dintino <fdintino@theatlantic.com>
|
||||||
|
Franklin Ta <fta2012@gmail.com>
|
||||||
|
Frédéric Jacob <frederic.jacob.78@gmail.com>
|
||||||
|
Frédéric Wang <fred.wang@free.fr>
|
||||||
|
Fu Junwei <junwei.fu@intel.com>
|
||||||
|
Gaetano Mendola <mendola@gmail.com>
|
||||||
|
Gajendra N <gajendra.n@samsung.com>
|
||||||
|
Gajendra Singh <wxjg68@motorola.com>
|
||||||
|
Ganesh Borle <ganesh.borle@samsung.com>
|
||||||
|
Gao Chun <chun.gao@intel.com>
|
||||||
|
Gao Chun <gaochun.dev@gmail.com>
|
||||||
|
Gautham Banasandra <gautham.bangalore@gmail.com>
|
||||||
|
George Adams <geoada@amazon.com>
|
||||||
|
George Joseph <kottackal.george@gmail.com>
|
||||||
|
George Liaskos <geo.liaskos@gmail.com>
|
||||||
|
Georgy Buranov <gburanov@gmail.com>
|
||||||
|
Gergely Nagy <ngg@ngg.hu>
|
||||||
|
Getulio Sánchez <valentin2507@gmail.com>
|
||||||
|
Gideon Pyzer <gjpyzer@gmail.com>
|
||||||
|
Girish Kumar M <mck.giri@samsung.com>
|
||||||
|
Gitanshu Mehndiratta <g.mehndiratt@samsung.com>
|
||||||
|
Giuseppe Iuculano <giuseppe@iuculano.it>
|
||||||
|
Gnanasekar Somanathan <gnanasekar.s@samsung.com>
|
||||||
|
Gordana Cmiljanovic <gordana.cmiljanovic@imgtec.com>
|
||||||
|
Goutham Jagannatha <wrm364@motorola.com>
|
||||||
|
Graham Yoakum <gyoakum@skobalt.com>
|
||||||
|
Greg Visser <gregvis@gmail.com>
|
||||||
|
Gregory Davis <gpdavis.chromium@gmail.com>
|
||||||
|
Grzegorz Czajkowski <g.czajkowski@samsung.com>
|
||||||
|
Guangzhen Li <guangzhen.li@intel.com>
|
||||||
|
Gurpreet Kaur <k.gurpreet@samsung.com>
|
||||||
|
Gustav Tiger <gustav.tiger@sonymobile.com>
|
||||||
|
Gyuyoung Kim <gyuyoung.kim@navercorp.com>
|
||||||
|
Gzob Qq <gzobqq@gmail.com>
|
||||||
|
Habib Virji <habib.virji@samsung.com>
|
||||||
|
Haeun Kim <haeungun@gmail.com>
|
||||||
|
Haitao Feng <haitao.feng@intel.com>
|
||||||
|
Halley Zhao <halley.zhao@intel.com>
|
||||||
|
Halton Huo <halton.huo@gmail.com>
|
||||||
|
Halton Huo <halton.huo@intel.com>
|
||||||
|
Hans Hillen <hans.hillen@gmail.com>
|
||||||
|
Haojian Wu <hokein.wu@gmail.com>
|
||||||
|
Hari Singh <hari.singh1@samsung.com>
|
||||||
|
Harpreet Singh Khurana <harpreet.sk@samsung.com>
|
||||||
|
Harshikesh Kumar <harshikeshnobug@gmail.com>
|
||||||
|
Hassan Salehe Matar <hassansalehe@gmail.com>
|
||||||
|
Hautio Kari <khautio@gmail.com>
|
||||||
|
Heejin R. Chung <heejin.r.chung@samsung.com>
|
||||||
|
Heeyoun Lee <heeyoun.lee@samsung.com>
|
||||||
|
Himanshu Joshi <h.joshi@samsung.com>
|
||||||
|
Holger Kraus <kraush@amazon.com>
|
||||||
|
Hong Zheng <hong.zheng@intel.com>
|
||||||
|
Hongbo Min <hongbo.min@intel.com>
|
||||||
|
Horia Olaru <horia.olaru@gmail.com>
|
||||||
|
Horia Olaru <olaru@adobe.com>
|
||||||
|
Hosung You <hosung.you@samsung.com>
|
||||||
|
Huapeng Li <huapengl@amazon.com>
|
||||||
|
Huayong Xu <huayong.xu@samsung.com>
|
||||||
|
Hugo Holgersson <hugo.holgersson@sonymobile.com>
|
||||||
|
Hui Wang <wanghui07050707@gmail.com>
|
||||||
|
Huiwon Jo <jhwon0415@gmail.com>
|
||||||
|
Huy Duong <huy.duongdinh@gmail.com>
|
||||||
|
Hwanseung Lee <hs1217.lee@gmail.com>
|
||||||
|
Hwanseung Lee <hs1217.lee@samsung.com>
|
||||||
|
Hyemi Shin <hyemi.sin@samsung.com>
|
||||||
|
Hyungchan Kim <inlinechan@gmail.com>
|
||||||
|
Hyungwook Lee <hyungwook.lee@navercorp.com>
|
||||||
|
Hyungwook Lee <withlhw@gmail.com>
|
||||||
|
Hyunjune Kim <hyunjune.kim@samsung.com>
|
||||||
|
Hyunki Baik <hyunki.baik@samsung.com>
|
||||||
|
Ian Cullinan <cullinan@amazon.com>
|
||||||
|
Ian Scott <ian.scott@arteris.com>
|
||||||
|
Ibrar Ahmed <ibrar.ahmad@gmail.com>
|
||||||
|
Ilia Demianenko <ilia.demianenko@gmail.com>
|
||||||
|
Ilia K <ki.stfu@gmail.com>
|
||||||
|
Ilya Konstantinov <ilya.konstantinov@gmail.com>
|
||||||
|
Ion Rosca <rosca@adobe.com>
|
||||||
|
Irmak Kavasoglu <irmakkavasoglu@gmail.com>
|
||||||
|
Isaac Murchie <murchieisaac@gmail.com>
|
||||||
|
Isaac Reilly <reillyi@amazon.com>
|
||||||
|
Ivan Naydonov <samogot@gmail.com>
|
||||||
|
Ivan Sham <ivansham@amazon.com>
|
||||||
|
Jack Bates <jack@nottheoilrig.com>
|
||||||
|
Jacob Clark <jacob.jh.clark@googlemail.com>
|
||||||
|
Jacob Mandelson <jacob@mandelson.org>
|
||||||
|
Jaehun Lim <ljaehun.lim@samsung.com>
|
||||||
|
Jaehyun Lee <j-hyun.lee@samsung.com>
|
||||||
|
Jaekyeom Kim <btapiz@gmail.com>
|
||||||
|
Jaemin Seo <jaemin86.seo@samsung.com>
|
||||||
|
Jaeseok Yoon <yjaeseok@gmail.com>
|
||||||
|
Jaime Soriano Pastor <jsorianopastor@gmail.com>
|
||||||
|
Jake Helfert <jake@helfert.us>
|
||||||
|
Jake Hendy <me@jakehendy.com>
|
||||||
|
Jakob Weigert <jakob.j.w@googlemail.com>
|
||||||
|
Jakub Machacek <xtreit@gmail.com>
|
||||||
|
James Burton <jb@0.me.uk>
|
||||||
|
James Choi <jchoi42@pha.jhu.edu>
|
||||||
|
James Stanley <james@apphaus.co.uk>
|
||||||
|
James Vega <vega.james@gmail.com>
|
||||||
|
James Wei <james.wei@intel.com>
|
||||||
|
James Willcox <jwillcox@litl.com>
|
||||||
|
Jan Rucka <ruckajan10@gmail.com>
|
||||||
|
Jan Sauer <jan@jansauer.de>
|
||||||
|
Janwar Dinata <j.dinata@gmail.com>
|
||||||
|
Jared Shumway <jaredshumway94@gmail.com>
|
||||||
|
Jared Sohn <jared.sohn@gmail.com>
|
||||||
|
Jared Wein <weinjared@gmail.com>
|
||||||
|
Jari Karppanen <jkarp@amazon.com>
|
||||||
|
Jay Oster <jay@kodewerx.org>
|
||||||
|
Jay Soffian <jaysoffian@gmail.com>
|
||||||
|
Jeado Ko <haibane84@gmail.com>
|
||||||
|
Jeffrey C <jeffreyca16@gmail.com>
|
||||||
|
Jeongeun Kim <je_julie.kim@samsung.com>
|
||||||
|
Jeongmin Kim <kimwjdalsl@gmail.com>
|
||||||
|
Jeongwoo Park <skeksk91@gmail.com>
|
||||||
|
Jeremy Noring <jnoring@hirevue.com>
|
||||||
|
Jeremy Spiegel <jeremysspiegel@gmail.com>
|
||||||
|
Jeroen Van den Berghe <vandenberghe.jeroen@gmail.com>
|
||||||
|
Jerry Lin <wahahab11@gmail.com>
|
||||||
|
Jesper Storm Bache <jsbache@gmail.com>
|
||||||
|
Jesse Miller <jesse@jmiller.biz>
|
||||||
|
Jesus Sanchez-Palencia <jesus.sanchez-palencia.fernandez.fil@intel.com>
|
||||||
|
Jiadong Zhu <jiadong.zhu@linaro.org>
|
||||||
|
Jiajia Qin <jiajia.qin@intel.com>
|
||||||
|
Jianjun Zhu <jianjun.zhu@intel.com>
|
||||||
|
Jianneng Zhong <muzuiget@gmail.com>
|
||||||
|
Jiawei Shao <jiawei.shao@intel.com>
|
||||||
|
Jie Chen <jie.a.chen@intel.com>
|
||||||
|
Jihoon Chung <j.c@navercorp.com>
|
||||||
|
Jihoon Chung <jihoon@gmail.com>
|
||||||
|
Jihun Brent Kim <devgrapher@gmail.com>
|
||||||
|
Jin Yang <jin.a.yang@intel.com>
|
||||||
|
Jincheol Jo <jincheol.jo@navercorp.com>
|
||||||
|
Jingwei Liu <kingweiliu@gmail.com>
|
||||||
|
Jingyi Wei <wjywbs@gmail.com>
|
||||||
|
Jinho Bang <jinho.bang@samsung.com>
|
||||||
|
Jinsong Fan <fanjinsong@sogou-inc.com>
|
||||||
|
Jinwoo Song <jinwoo7.song@samsung.com>
|
||||||
|
Jinyoung Hur <hurims@gmail.com>
|
||||||
|
Jitendra Kumar Sahoo <jitendra.ks@samsung.com>
|
||||||
|
Joachim Bauch <jbauch@webrtc.org>
|
||||||
|
Joachim Bauch <mail@joachim-bauch.de>
|
||||||
|
Joanmarie Diggs <joanmarie.diggs@gmail.com>
|
||||||
|
Joe Knoll <joe.knoll@workday.com>
|
||||||
|
Joe Thomas <mhx348@motorola.com>
|
||||||
|
Joel Stanley <joel@jms.id.au>
|
||||||
|
Johannes Rudolph <johannes.rudolph@googlemail.com>
|
||||||
|
John Yani <vanuan@gmail.com>
|
||||||
|
John Yoo <nearbyh13@gmail.com>
|
||||||
|
Johnson Lin <johnson.lin@intel.com>
|
||||||
|
Jonathan Frazer <listedegarde@gmail.com>
|
||||||
|
Jonathan Garbee <jonathan@garbee.me>
|
||||||
|
Jonathan Hacker <jhacker@arcanefour.com>
|
||||||
|
Jongdeok Kim <jongdeok.kim@navercorp.com>
|
||||||
|
JongKwon Lee <jongkwon.lee@navercorp.com>
|
||||||
|
Jongsoo Lee <leejongsoo@gmail.com>
|
||||||
|
Joone Hur <joone.hur@intel.com>
|
||||||
|
Jorge Villatoro <jorge@tomatocannon.com>
|
||||||
|
Joseph Gentle <josephg@gmail.com>
|
||||||
|
Joseph Lolak <joseph.lolak@samsung.com>
|
||||||
|
Josh Triplett <josh.triplett@intel.com>
|
||||||
|
Josh Triplett <josh@joshtriplett.org>
|
||||||
|
Joshua Lock <joshua.lock@intel.com>
|
||||||
|
Joshua Roesslein <jroesslein@gmail.com>
|
||||||
|
Josué Ratelle <jorat1346@gmail.com>
|
||||||
|
Josyula Venkat Narasimham <venkat.nj@samsung.com>
|
||||||
|
Juan Jose Lopez Jaimez <jj.lopezjaimez@gmail.com>
|
||||||
|
Juhui Lee <juhui24.lee@samsung.com>
|
||||||
|
Julien Brianceau <jbriance@cisco.com>
|
||||||
|
Julien Isorce <j.isorce@samsung.com>
|
||||||
|
Julien Racle <jracle@logitech.com>
|
||||||
|
Jun Fang <jun_fang@foxitsoftware.com>
|
||||||
|
Jun Jiang <jun.a.jiang@intel.com>
|
||||||
|
Junchao Han <junchao.han@intel.com>
|
||||||
|
JungJik Lee <jungjik.lee@samsung.com>
|
||||||
|
Jungkee Song <jungkee.song@samsung.com>
|
||||||
|
Junmin Zhu <junmin.zhu@intel.com>
|
||||||
|
Justin Okamoto <justmoto@amazon.com>
|
||||||
|
Justin Ribeiro <justin@justinribeiro.com>
|
||||||
|
Jüri Valdmann <juri.valdmann@qt.io>
|
||||||
|
Kai Jiang <jiangkai@gmail.com>
|
||||||
|
Kai Köhne <kai.koehne@qt.io>
|
||||||
|
Kai Uwe Broulik <kde@privat.broulik.de>
|
||||||
|
Kal Conley <kcconley@gmail.com>
|
||||||
|
Kalyan Kondapally <kalyan.kondapally@intel.com>
|
||||||
|
Kamil Jiwa <kamil.jiwa@gmail.com>
|
||||||
|
Kamil Rytarowski <krytarowski@gmail.com>
|
||||||
|
Kangil Han <kangil.han@samsung.com>
|
||||||
|
Kangyuan Shu <kangyuan.shu@intel.com>
|
||||||
|
Karan Thakkar <karanjthakkar@gmail.com>
|
||||||
|
Kartikey Bhatt <kartikey@amazon.com>
|
||||||
|
Kaspar Brand <googlecontrib@velox.ch>
|
||||||
|
Kaustubh Atrawalkar <kaustubh.a@samsung.com>
|
||||||
|
Kaustubh Atrawalkar <kaustubh.ra@gmail.com>
|
||||||
|
Ke He <ke.he@intel.com>
|
||||||
|
Keene Pan <keenepan@linpus.com>
|
||||||
|
Keith Chen <keitchen@amazon.com>
|
||||||
|
Kenneth Rohde Christiansen <kenneth.r.christiansen@intel.com>
|
||||||
|
Kenneth Strickland <ken.strickland@gmail.com>
|
||||||
|
Kenneth Zhou <knthzh@gmail.com>
|
||||||
|
Keonho Kim <keonho07.kim@samsung.com>
|
||||||
|
Ketan Goyal <ketan.goyal@samsung.com>
|
||||||
|
Kevin Gibbons <bakkot@gmail.com>
|
||||||
|
Kevin Lee Helpingstine <sig11@reprehensible.net>
|
||||||
|
Kevin M. McCormick <mckev@amazon.com>
|
||||||
|
Khasim Syed Mohammed <khasim.mohammed@linaro.org>
|
||||||
|
Kihong Kwon <kihong.kwon@samsung.com>
|
||||||
|
Kihoon Ko <rhrlgns777@gmail.com>
|
||||||
|
Kihwang Kim <pwangkk@gmail.com>
|
||||||
|
Kim Christensen <kimworking@gmail.com>
|
||||||
|
Kimberly Hunter <kimberhu@amazon.com>
|
||||||
|
Kingshuk Jana <kingshuk.j@samsung.com>
|
||||||
|
Kirill Bobyrev <kirillbobyrev@gmail.com>
|
||||||
|
Kirill Ovchinnikov <kirill.ovchinn@gmail.com>
|
||||||
|
Kirk Shoop <kirk.shoop@microsoft.com>
|
||||||
|
Klemen Forstnerič <klemen.forstneric@gmail.com>
|
||||||
|
Kodam Nagaraju <k2.nagaraju@samsung.com>
|
||||||
|
Konrad Dzwinel <kdzwinel@gmail.com>
|
||||||
|
Krishna Chaitanya <krish.botta@samsung.com>
|
||||||
|
Kristof Kosztyo <kkosztyo.u-szeged@partner.samsung.com>
|
||||||
|
Krzysztof Czech <k.czech@samsung.com>
|
||||||
|
Krzysztof Wolanski <k.wolanski@samsung.com>
|
||||||
|
Kunal Thakar <kunalt@gmail.com>
|
||||||
|
Kushal Pisavadia <kushi.p@gmail.com>
|
||||||
|
Kwangho Shin <k_h.shin@samsung.com>
|
||||||
|
Kyle Nahrgang <kpn24@drexel.edu>
|
||||||
|
Kyle Plumadore <kyle.plumadore@amd.com>
|
||||||
|
Kyounga Ra <kyounga.ra@gmail.com>
|
||||||
|
Kyoungdeok Kwon <kkd927@gmail.com>
|
||||||
|
Kyung Yeol Kim <chitacan@gmail.com>
|
||||||
|
Kyungtae Kim <ktf.kim@samsung.com>
|
||||||
|
Kyungyoung Heo <bbvch13531@gmail.com>
|
||||||
|
Laszlo Gombos <l.gombos@samsung.com>
|
||||||
|
Laszlo Radanyi <bekkra@gmail.com>
|
||||||
|
Lauren Yeun Kim <lauren.yeun.kim@gmail.com>
|
||||||
|
Lauri Oherd <lauri.oherd@gmail.com>
|
||||||
|
Lavar Askew <open.hyperion@gmail.com>
|
||||||
|
Legend Lee <guanxian.li@intel.com>
|
||||||
|
Leith Bade <leith@leithalweapon.geek.nz>
|
||||||
|
Lenny Khazan <lenny.khazan@gmail.com>
|
||||||
|
Leo Wolf <jclw@ymail.com>
|
||||||
|
Leon Han <leon.han@intel.com>
|
||||||
|
Leung Wing Chung <lwchkg@gmail.com>
|
||||||
|
Li Yin <li.yin@intel.com>
|
||||||
|
Lidwine Genevet <lgenevet@cisco.com>
|
||||||
|
Lingyun Cai <lingyun.cai@intel.com>
|
||||||
|
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
||||||
|
Lizhi Fan <lizhi.fan@samsung.com>
|
||||||
|
Loo Rong Jie <loorongjie@gmail.com>
|
||||||
|
Lorenzo Stoakes <lstoakes@gmail.com>
|
||||||
|
Lu Guanqun <guanqun.lu@gmail.com>
|
||||||
|
Lucie Brozkova <lucinka.brozkova@gmail.com>
|
||||||
|
Luiz Von Dentz <luiz.von.dentz@intel.com>
|
||||||
|
Luka Dojcilovic <l.dojcilovic@gmail.com>
|
||||||
|
Luke Inman-Semerau <luke.semerau@gmail.com>
|
||||||
|
Luke Zarko <lukezarko@gmail.com>
|
||||||
|
Luoxi Pan <l.panpax@gmail.com>
|
||||||
|
Maarten Lankhorst <m.b.lankhorst@gmail.com>
|
||||||
|
Magnus Danielsson <fuzzac@gmail.com>
|
||||||
|
Mahesh Kulkarni <mahesh.kk@samsung.com>
|
||||||
|
Mahesh Machavolu <mahesh.ma@samsung.com>
|
||||||
|
Maksim Kolesin <mkolesin@gmail.com>
|
||||||
|
Maksim Sisov <maksim.sisov@intel.com>
|
||||||
|
Malcolm Wang <malcolm.2.wang@gmail.com>
|
||||||
|
Mallikarjuna Rao V <vm.arjun@samsung.com>
|
||||||
|
Manish Chhajer <chhajer.m@samsung.com>
|
||||||
|
Manish Jethani <m.jethani@eyeo.com>
|
||||||
|
Manojkumar Bhosale <manojkumar.bhosale@imgtec.com>
|
||||||
|
Manuel Braun <thembrown@gmail.com>
|
||||||
|
Mao Yujie <maojie0924@gmail.com>
|
||||||
|
Mao Yujie <yujie.mao@intel.com>
|
||||||
|
Marc des Garets <marc.desgarets@googlemail.com>
|
||||||
|
Marcin Wiacek <marcin@mwiacek.com>
|
||||||
|
Marco Rodrigues <gothicx@gmail.com>
|
||||||
|
Mario Pistrich <m.pistrich@gmail.com>
|
||||||
|
Mario Sanchez Prada <mario.prada@samsung.com>
|
||||||
|
Mariusz Mlynski <marius.mlynski@gmail.com>
|
||||||
|
Mark Hahnenberg <mhahnenb@andrew.cmu.edu>
|
||||||
|
Mark Seaborn <mrs@mythic-beasts.com>
|
||||||
|
Martijn Croonen <martijn@martijnc.be>
|
||||||
|
Martin Bednorz <m.s.bednorz@gmail.com>
|
||||||
|
Martin Rogalla <martin@martinrogalla.com>
|
||||||
|
Martina Kollarova <martina.kollarova@intel.com>
|
||||||
|
Masahiro Yado <yado.masa@gmail.com>
|
||||||
|
Masaru Nishida <msr.i386@gmail.com>
|
||||||
|
Matej Knopp <matej.knopp@gmail.com>
|
||||||
|
Matheus Bratfisch <matheusbrat@gmail.com>
|
||||||
|
Mathias Bynens <mathias@qiwi.be>
|
||||||
|
Mathieu Meisser <mmeisser@logitech.com>
|
||||||
|
Matt Arpidone <mma.public@gmail.com>
|
||||||
|
Matt Strum <mstrum@amazon.com>
|
||||||
|
Matt Zeunert <matt@mostlystatic.com>
|
||||||
|
Matthew Bauer <mjbauer95@gmail.com>
|
||||||
|
Matthew Demarest <demarem@amazon.com>
|
||||||
|
Matthew Robertson <matthewrobertson03@gmail.com>
|
||||||
|
Matthew Turk <matthewturk@gmail.com>
|
||||||
|
Matthew Willis <appamatto@gmail.com>
|
||||||
|
Matthias Reitinger <reimarvin@gmail.com>
|
||||||
|
Matthieu Rigolot <matthieu.rigolot@gmail.com>
|
||||||
|
Max Perepelitsyn <pph34r@gmail.com>
|
||||||
|
Max Vujovic <mvujovic@adobe.com>
|
||||||
|
Mayank Gupta <mayank.g1@samsung.com>
|
||||||
|
Mayur Kankanwadi <mayurk.vk@samsung.com>
|
||||||
|
Md Sami Uddin <md.sami@samsung.com>
|
||||||
|
Michael Cirone <mikecirone@gmail.com>
|
||||||
|
Michael Gilbert <floppymaster@gmail.com>
|
||||||
|
Michael Lopez <lopes92290@gmail.com>
|
||||||
|
Michael Morrison <codebythepound@gmail.com>
|
||||||
|
Michael Müller <michael@fds-team.de>
|
||||||
|
Michael Schechter <mike.schechter@gmail.com>
|
||||||
|
Michaël Zasso <mic.besace@gmail.com>
|
||||||
|
Michael Zugelder <michael@zugelder.org>
|
||||||
|
Mihai Maerean <mmaerean@adobe.com>
|
||||||
|
Mihai Tica <mihai.o.tica@gmail.com>
|
||||||
|
Mihai Tica <mitica@adobe.com>
|
||||||
|
Mike Pennisi <mike@mikepennisi.com>
|
||||||
|
Mike Tilburg <mtilburg@adobe.com>
|
||||||
|
Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
|
||||||
|
Milko Leporis <milko.leporis@imgtec.com>
|
||||||
|
Milton Chiang <milton.chiang@mediatek.com>
|
||||||
|
Minggang Wang <minggang.wang@intel.com>
|
||||||
|
Mingmin Xie <melvinxie@gmail.com>
|
||||||
|
Minjeong Lee <apenr1234@gmail.com>
|
||||||
|
Minseok Koo <kei98301@gmail.com>
|
||||||
|
Minsoo Max Koo <msu.koo@samsung.com>
|
||||||
|
Miran Karic <miran.karic@imgtec.com>
|
||||||
|
Mirela Budaes <mbudaes@adobe.com>
|
||||||
|
Mirela Budaes <mbudaes@gmail.com>
|
||||||
|
Miyoung Shin <myid.shin@samsung.com>
|
||||||
|
Mohamed I. Hammad <ibraaaa@gmail.com>
|
||||||
|
Mohamed Mansour <m0.interactive@gmail.com>
|
||||||
|
Mohammad Azam <m.azam@samsung.com>
|
||||||
|
Mohammed Wajahat Ali Siddiqui <wajahat.s@samsung.com>
|
||||||
|
Mohan Reddy <mohan.reddy@samsung.com>
|
||||||
|
Mohit Bhalla <bhallam@amazon.com>
|
||||||
|
Mrunal Kapade <mrunal.kapade@intel.com>
|
||||||
|
Myeongjin Cho <myeongjin.cho@navercorp.com>
|
||||||
|
Myles C. Maxfield <mymax@amazon.com>
|
||||||
|
Myung-jong Kim <mjkim610@gmail.com>
|
||||||
|
Nagarajan Narayanan <nagarajan.n@samsung.com>
|
||||||
|
Nagarjuna Atluri <nagarjuna.a@samsung.com>
|
||||||
|
Naiem Shaik <naiem.shaik@gmail.com>
|
||||||
|
Naoki Takano <takano.naoki@gmail.com>
|
||||||
|
Naveen Bobbili <naveenbobbili@motorola.com>
|
||||||
|
Naveen Bobbili <qghc36@motorola.com>
|
||||||
|
Naveen Kumar Devaraj <devarajn@amazon.com>
|
||||||
|
Naveen Kumar S G <naveensg@samsung.com>
|
||||||
|
Nayan Kumar K <qtc746@motorola.com>
|
||||||
|
Neal Gompa <ngompa13@gmail.com>
|
||||||
|
Ned Williamson <nedwilliamson@gmail.com>
|
||||||
|
Nedeljko Babic <nedeljko.babic@imgtec.com>
|
||||||
|
Nikhil Bansal <n.bansal@samsung.com>
|
||||||
|
Nikhil Sahni <nikhil.sahni@samsung.com>
|
||||||
|
Nikita Ofitserov <himikof@gmail.com>
|
||||||
|
Niklas Hambüchen <mail@nh2.me>
|
||||||
|
Niklas Schulze <me@jns.io>
|
||||||
|
Nikola Kovacs <nikola.kovacs@gmail.com>
|
||||||
|
Nils Schneider <nils.schneider@gmail.com>
|
||||||
|
Nils Schneider <nils@nilsschneider.net>
|
||||||
|
Ningxin Hu <ningxin.hu@intel.com>
|
||||||
|
Nitish Mehrotra <nitish.m@samsung.com>
|
||||||
|
Noj Vek <nojvek@gmail.com>
|
||||||
|
Nolan Cao <nolan.robin.cao@gmail.com>
|
||||||
|
Oleksii Kadurin <ovkadurin@gmail.com>
|
||||||
|
Olli Raula (Old name Olli Syrjälä) <olli.raula@intel.com>
|
||||||
|
Omar Sandoval <osandov@osandov.com>
|
||||||
|
Pan Deng <pan.deng@intel.com>
|
||||||
|
Parag Radke <nrqv63@motorola.com>
|
||||||
|
Paritosh Kumar <paritosh.in@samsung.com>
|
||||||
|
Patrasciuc Sorin Cristian <cristian.patrasciuc@gmail.com>
|
||||||
|
Patrick Chan <chanpatorikku@gmail.com>
|
||||||
|
Patrick Kettner <patrickkettner@gmail.com>
|
||||||
|
Patrick Riordan <patrickriordan177@gmail.com>
|
||||||
|
Patrick Stein <patrickwonders@gmail.com>
|
||||||
|
Patrik Ackland <patrikackland@gmail.com>
|
||||||
|
Paul Adolph <padolph@netflix.com>
|
||||||
|
Paul Kehrer <paul.l.kehrer@gmail.com>
|
||||||
|
Paul Lind <paul.lind@imgtec.com>
|
||||||
|
Paul Nettleship <pnettleship@gmail.com>
|
||||||
|
Paul Robinson <paulrobinson85@googlemail.com>
|
||||||
|
Paul Roskell <blurrech@gmail.com>
|
||||||
|
Paul Sapunaru <paul.sapunaru@intel.com>
|
||||||
|
Paul Wicks <pwicks86@gmail.com>
|
||||||
|
Pavan Kumar Emani <pavan.e@samsung.com>
|
||||||
|
Pavel Ivanov <paivanof@gmail.com>
|
||||||
|
Pawel Forysiuk <p.forysiuk@samsung.com>
|
||||||
|
Paweł Hajdan jr <phajdan.jr@gmail.com>
|
||||||
|
Payal Pandey <payal.pandey@samsung.com>
|
||||||
|
Peng Hu <penghu@tencent.com>
|
||||||
|
Peng Jiang <leiyi.jp@gmail.com>
|
||||||
|
Peng Xinchao <pxinchao@gmail.com>
|
||||||
|
Peter Bright <drpizza@quiscalusmexicanus.org>
|
||||||
|
Peter Brophy <pbrophy@adobe.com>
|
||||||
|
Peter Collingbourne <peter@pcc.me.uk>
|
||||||
|
Peter Gal <pgal.u-szeged@partner.samsung.com>
|
||||||
|
Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
|
||||||
|
Peter Snyder <snyderp@gmail.com>
|
||||||
|
Philip Hanson <philip.hanson@intel.com>
|
||||||
|
Philipp Hancke <fippo@andyet.net>
|
||||||
|
Philipp Hancke <philipp.hancke@googlemail.com>
|
||||||
|
Philippe Beauchamp <philippe.beauchamp@gmail.com>
|
||||||
|
Philippe Beaudoin <philippe.beaudoin@gmail.com>
|
||||||
|
PhistucK <phistuck@gmail.com>
|
||||||
|
Pierre Neter <pierreneter@gmail.com>
|
||||||
|
Pierre-Antoine LaFayette <pierre.lafayette@gmail.com>
|
||||||
|
Po-Chun Chang <pochang0403@gmail.com>
|
||||||
|
Pramod Begur Srinath <pramod.bs@samsung.com>
|
||||||
|
Pranay Kumar <pranay.kumar@samsung.com>
|
||||||
|
Prashant Hiremath <prashhir@cisco.com>
|
||||||
|
Prashant Nevase <prashant.n@samsung.com>
|
||||||
|
Prashant Patil <prashant.patil@imgtec.com>
|
||||||
|
Praveen Akkiraju <praveen.anp@samsung.com>
|
||||||
|
Preeti Nayak <preeti.nayak@samsung.com>
|
||||||
|
Pritam Nikam <pritam.nikam@samsung.com>
|
||||||
|
Puttaraju R <puttaraju.r@samsung.com>
|
||||||
|
Qi Yang <qi1988.yang@samsung.com>
|
||||||
|
Qiankun Miao <qiankun.miao@intel.com>
|
||||||
|
Qing Zhang <qing.zhang@intel.com>
|
||||||
|
Radu Stavila <stavila@adobe.com>
|
||||||
|
Radu Velea <radu.velea@intel.com>
|
||||||
|
Rafael Antognolli <rafael.antognolli@intel.com>
|
||||||
|
Raghavendra Ghatage <r.ghatage@samsung.com>
|
||||||
|
Raghu Ram Nagaraj <r.nagaraj@samsung.com>
|
||||||
|
Rahul Gupta <rahul.g@samsung.com>
|
||||||
|
Rajneesh Rana <rajneesh.r@samsung.com>
|
||||||
|
Raman Tenneti <raman.tenneti@gmail.com>
|
||||||
|
Ramkumar Gokarnesan <ramkumar.gokarnesan@gmail.com>
|
||||||
|
Ramkumar Ramachandra <artagnon@gmail.com>
|
||||||
|
Ramya Vadlamudi <ramya.v@samsung.com>
|
||||||
|
Randy Posynick <randy.posynick@gmail.com>
|
||||||
|
Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||||
|
Raveendra Karu <r.karu@samsung.com>
|
||||||
|
Ravi Nanjundappa <nravi.n@samsung.com>
|
||||||
|
Ravi Phaneendra Kasibhatla <r.kasibhatla@samsung.com>
|
||||||
|
Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com>
|
||||||
|
Réda Housni Alaoui <alaoui.rda@gmail.com>
|
||||||
|
Refael Ackermann <refack@gmail.com>
|
||||||
|
Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
|
||||||
|
Rene Bolldorf <rb@radix.io>
|
||||||
|
Rene Ladan <r.c.ladan@gmail.com>
|
||||||
|
Richard Baranyi <lordprotector@gmail.com>
|
||||||
|
Richard Li <richard.li@intel.com>
|
||||||
|
Rijubrata Bhaumik <rijubrata.bhaumik@intel.com>
|
||||||
|
Riku Voipio <riku.voipio@linaro.org>
|
||||||
|
Rob Buis <rob.buis@samsung.com>
|
||||||
|
Rob Wu <rob@robwu.nl>
|
||||||
|
Robert Bear Travis <bear.travis@gmail.com>
|
||||||
|
Robert Bear Travis <betravis@adobe.com>
|
||||||
|
Robert Bradford <robert.bradford@intel.com>
|
||||||
|
Robert Goldberg <goldberg@adobe.com>
|
||||||
|
Robert Hogan <robhogan@gmail.com>
|
||||||
|
Robert Nagy <robert.nagy@gmail.com>
|
||||||
|
Robert Sesek <rsesek@bluestatic.org>
|
||||||
|
Roland Takacs <rtakacs.u-szeged@partner.samsung.com>
|
||||||
|
Romain Pokrzywka <romain.pokrzywka@gmail.com>
|
||||||
|
Rosen Dash <nqk836@motorola.com>
|
||||||
|
Rosen Dash <rosen.dash@gmail.com>
|
||||||
|
ruben <chromium@hybridsource.org>
|
||||||
|
Ruben Terrazas <rubentopo@gmail.com>
|
||||||
|
Rufus Hamade <rufus.hamade@imgtec.com>
|
||||||
|
Ruiyi Luo <luoruiyi2008@gmail.com>
|
||||||
|
Ryan Ackley <ryanackley@gmail.com>
|
||||||
|
Ryan Norton <rnorton10@gmail.com>
|
||||||
|
Ryan Sleevi <ryan-chromium-dev@sleevi.com>
|
||||||
|
Ryan Yoakum <ryoakum@skobalt.com>
|
||||||
|
Ryuan Choi <ryuan.choi@samsung.com>
|
||||||
|
Saikrishna Arcot <saiarcot895@gmail.com>
|
||||||
|
Salvatore Iovene <salvatore.iovene@intel.com>
|
||||||
|
Sam Larison <qufighter@gmail.com>
|
||||||
|
Sam McDonald <sam@sammcd.com>
|
||||||
|
Sanggi Hong <sanggi.hong11@gmail.com>
|
||||||
|
Sanghee Lee <sanghee.lee1992@gmail.com>
|
||||||
|
Sanghyun Park <sh919.park@samsung.com>
|
||||||
|
Sanghyup Lee <sh53.lee@samsung.com>
|
||||||
|
Sangjoon Je <htamop@gmail.com>
|
||||||
|
Sangwoo Ko <sangwoo108@gmail.com>
|
||||||
|
Sanjoy Pal <ncj674@motorola.com>
|
||||||
|
Sanjoy Pal <sanjoy.pal@samsung.com>
|
||||||
|
Sanne Wouda <sanne.wouda@gmail.com>
|
||||||
|
Santosh Mahto <samahto@cisco.com>
|
||||||
|
Sarath Singapati <s.singapati@gmail.com>
|
||||||
|
Sarath Singapati <s.singapati@samsung.com>
|
||||||
|
Sarath Singapati <sarath.singapati@huawei.com>
|
||||||
|
Saravanan KR <sramajay@cisco.com>
|
||||||
|
Sathish Kuppuswamy <sathish.kuppuswamy@intel.com>
|
||||||
|
Satoshi Matsuzaki <satoshi.matsuzaki@gmail.com>
|
||||||
|
Sayan Nayak <sayan.nayak@samsung.com>
|
||||||
|
Scott Blomquist <sblom@microsoft.com>
|
||||||
|
Scott D Phillips <scott.d.phillips@intel.com>
|
||||||
|
Sean Bryant <sean@cyberwang.net>
|
||||||
|
Sean DuBois <seaduboi@amazon.com>
|
||||||
|
Sebastian Amend <sebastian.amend@googlemail.com>
|
||||||
|
Seo Sanghyeon <sanxiyn@gmail.com>
|
||||||
|
Seokju Kwon <seokju.kwon@gmail.com>
|
||||||
|
SeongTae Jeong <ferendevelop.gl@gmail.com>
|
||||||
|
Sergey Kipet <sergey.kipet@gmail.com>
|
||||||
|
Sergey Putilin <p.sergey@samsung.com>
|
||||||
|
Sergey Shekyan <shekyan@gmail.com>
|
||||||
|
Sergio Carlos Morales Angeles <carloschilazo@gmail.com>
|
||||||
|
Sergiy Byelozyorov <rryk.ua@gmail.com>
|
||||||
|
Seshadri Mahalingam <seshadri.mahalingam@gmail.com>
|
||||||
|
Sevan Janiyan <venture37@geeklan.co.uk>
|
||||||
|
Shahriar Rostami <shahriar.rostami@gmail.com>
|
||||||
|
Shail Singhal <shail.s@samsung.com>
|
||||||
|
Shane Hansen <shanemhansen@gmail.com>
|
||||||
|
ShankarGanesh K <blr.bmlab@gmail.com>
|
||||||
|
Shanmuga Pandi M <shanmuga.m@samsung.com>
|
||||||
|
Shaobo Yan <shaobo.yan@intel.com>
|
||||||
|
Shashi Kumar <sk.kumar@samsung.com>
|
||||||
|
Sherry Mou <wenjinm@amazon.com>
|
||||||
|
Shez Baig <sbaig1@bloomberg.net>
|
||||||
|
Shigeki Ohtsu <shigeki.ohtsu@gmail.com>
|
||||||
|
Shiliu Wang <aofdwsl@gmail.com>
|
||||||
|
Shiliu Wang <shiliu.wang@intel.com>
|
||||||
|
Shilpa Shri <shilpa.shri@samsung.com>
|
||||||
|
Shirish S <shirish.s@amd.com>
|
||||||
|
Shiva Kumar <shiva.k1@samsung.com>
|
||||||
|
Shivakumar JM <shiva.jm@samsung.com>
|
||||||
|
Shouqun Liu <liushouqun@xiaomi.com>
|
||||||
|
Shouqun Liu <shouqun.liu@intel.com>
|
||||||
|
Shreeram Kushwaha <shreeram.k@samsung.com>
|
||||||
|
Shreyas Gopal <shreyas.g@samsung.com>
|
||||||
|
Shreyas VA <v.a.shreyas@gmail.com>
|
||||||
|
Shubham Agrawal <shubag@amazon.com>
|
||||||
|
Siba Samal <siba.samal@samsung.com>
|
||||||
|
Siddharth Bagai <b.siddharth@samsung.com>
|
||||||
|
Siddharth Shankar <funkysidd@gmail.com>
|
||||||
|
Simon Arlott <simon.arlott@gmail.com>
|
||||||
|
Simon La Macchia <smacchia@amazon.com>
|
||||||
|
Siva Kumar Gunturi <siva.gunturi@samsung.com>
|
||||||
|
Sohan Jyoti Ghosh <sohan.jyoti@huawei.com>
|
||||||
|
Sohan Jyoti Ghosh <sohan.jyoti@samsung.com>
|
||||||
|
Song YeWen <ffmpeg@gmail.com>
|
||||||
|
Sooho Park <sooho1000@gmail.com>
|
||||||
|
Soorya R <soorya.r@samsung.com>
|
||||||
|
Soren Dreijer <dreijerbit@gmail.com>
|
||||||
|
Srirama Chandra Sekhar Mogali <srirama.m@samsung.com>
|
||||||
|
Staphany Park <stapark008@gmail.com>
|
||||||
|
Stephen Searles <stephen.searles@gmail.com>
|
||||||
|
Steve Sanders <steve@zanderz.com>
|
||||||
|
Steven Pennington <spenn@engr.uvic.ca>
|
||||||
|
Steven Roussey <sroussey@gmail.com>
|
||||||
|
Subrahmanya Praveen Munukutla <sataya.m@samsung.com>
|
||||||
|
Suchit Agrawal <a.suchit@samsung.com>
|
||||||
|
Sudarsana Babu Nagineni <sudarsana.nagineni@intel.com>
|
||||||
|
Sudarshan Parthasarathy <sudarshan.p@samsung.com>
|
||||||
|
Sujae Jo <sujae33.jo@gmail.com>
|
||||||
|
Sujith S S <sujiths.s@samsung.com>
|
||||||
|
Sunchang Li <johnstonli@tencent.com>
|
||||||
|
Suneel Kota <suneel.kota@samsung.com>
|
||||||
|
Sungguk Lim <limasdf@gmail.com>
|
||||||
|
Sungmann Cho <sungmann.cho@gmail.com>
|
||||||
|
Sungmann Cho <sungmann.cho@navercorp.com>
|
||||||
|
Sunil Ratnu <sunil.ratnu@samsung.com>
|
||||||
|
Sunitha Srivatsa <srivats@amazon.com>
|
||||||
|
Suvanjan Mukherjee <suvanjanmukherjee@gmail.com>
|
||||||
|
Suyambulingam R M <suyambu.rm@samsung.com>
|
||||||
|
Suyash Sengar <suyash.s@samsung.com>
|
||||||
|
Swarali Raut <swarali.sr@samsung.com>
|
||||||
|
Swati Jaiswal <swa.jaiswal@samsung.com>
|
||||||
|
Sylvain Zimmer <sylvinus@gmail.com>
|
||||||
|
Sylvestre Ledru <sylvestre.ledru@gmail.com>
|
||||||
|
Szabolcs David <davidsz@inf.u-szeged.hu>
|
||||||
|
Szymon Piechowicz <szymonpiechowicz@o2.pl>
|
||||||
|
Taehoon Lee <taylor.hoon@gmail.com>
|
||||||
|
Takashi Fujita <tgfjt.mail@gmail.com>
|
||||||
|
Takeshi Kurosawa <taken.spc@gmail.com>
|
||||||
|
Tanay Chowdhury <tanay.c@samsung.com>
|
||||||
|
Tanvir Rizvi <tanvir.rizvi@samsung.com>
|
||||||
|
Tapu Kumar Ghose <ghose.tapu@gmail.com>
|
||||||
|
Taylor Price <trprice@gmail.com>
|
||||||
|
Ted Kim <neot0000@gmail.com>
|
||||||
|
Ted Vessenes <tedvessenes@gmail.com>
|
||||||
|
Teodora Novkovic <teodora.petrovic@gmail.com>
|
||||||
|
Thiago Farina <thiago.farina@gmail.com>
|
||||||
|
Thiago Marcos P. Santos <thiago.santos@intel.com>
|
||||||
|
Thomas Butter <tbutter@gmail.com>
|
||||||
|
Thomas Conti <tomc@amazon.com>
|
||||||
|
Tiago Vignatti <tiago.vignatti@intel.com>
|
||||||
|
Tibor Dusnoki <tibor.dusnoki.91@gmail.com>
|
||||||
|
Tim Ansell <mithro@mithis.com>
|
||||||
|
Tim Niederhausen <tim@rnc-ag.de>
|
||||||
|
Timo Gurr <timo.gurr@gmail.com>
|
||||||
|
Timo Reimann <ttr314@googlemail.com>
|
||||||
|
Timo Witte <timo.witte@gmail.com>
|
||||||
|
Tom Callaway <tcallawa@redhat.com>
|
||||||
|
Tom Harwood <tfh@skip.org>
|
||||||
|
Tomas Popela <tomas.popela@gmail.com>
|
||||||
|
Torsten Kurbad <google@tk-webart.de>
|
||||||
|
Trent Willis <trentmwillis@gmail.com>
|
||||||
|
Trevor Perrin <unsafe@trevp.net>
|
||||||
|
Tripta Gupta <tripta.g@samsung.com>
|
||||||
|
U. Artie Eoff <ullysses.a.eoff@intel.com>
|
||||||
|
Umar Hansa <umar.hansa@gmail.com>
|
||||||
|
Upendra Gowda <upendrag.gowda@gmail.com>
|
||||||
|
Uzair Jaleel <uzair.jaleel@samsung.com>
|
||||||
|
Vaibhav Agrawal <vaibhav1.a@samsung.com>
|
||||||
|
Valentin Ilie <valentin.ilie@intel.com>
|
||||||
|
Vamshikrishna Yellenki <vamshi@motorola.com>
|
||||||
|
Vani Hegde <vani.hegde@samsung.com>
|
||||||
|
Varun Chowdhary Paturi <v.paturi@samsung.com>
|
||||||
|
Vartul Katiyar <vartul.k@samsung.com>
|
||||||
|
Vedran Šajatović <vedran.sajatovic@gmail.com>
|
||||||
|
Vernon Tang <vt@foilhead.net>
|
||||||
|
Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
|
||||||
|
Victor Costan <costan@gmail.com>
|
||||||
|
Viet-Trung Luu <viettrungluu@gmail.com>
|
||||||
|
Vinay Anantharaman <vinaya@adobe.com>
|
||||||
|
Vipul Bhasin <vipul.bhasin@gmail.com>
|
||||||
|
Visa Putkinen <v.putkinen@partner.samsung.com>
|
||||||
|
Vishal Bhatnagar <vishal.b@samsung.com>
|
||||||
|
Vivek Galatage <vivek.vg@samsung.com>
|
||||||
|
Volker Sorge <volker.sorge@gmail.com>
|
||||||
|
Waihung Fu <fufranci@amazon.com>
|
||||||
|
WenSheng He <wensheng.he@samsung.com>
|
||||||
|
Wesley Lancel <wesleylancel@gmail.com>
|
||||||
|
Wesley Wigham <t-weswig@microsoft.com>
|
||||||
|
Wesley Wigham <wwigham@gmail.com>
|
||||||
|
Will Hirsch <chromium@willhirsch.co.uk>
|
||||||
|
Will Shackleton <w.shackleton@gmail.com>
|
||||||
|
William Xie <william.xie@intel.com>
|
||||||
|
Xiang Long <xiang.long@intel.com>
|
||||||
|
Xiangze Zhang <xiangze.zhang@intel.com>
|
||||||
|
Xiaofeng Zhang <xiaofeng.zhang@intel.com>
|
||||||
|
Xiaolei Yu <dreifachstein@gmail.com>
|
||||||
|
Xiaoshu Zhang <xiaoshu@amazon.com>
|
||||||
|
Xiaoyin Liu <xiaoyin.l@outlook.com>
|
||||||
|
Xinchao He <hexinchao@gmail.com>
|
||||||
|
Xing Zhang <xzhang@adobe.com>
|
||||||
|
Xinghua Cao <xinghua.cao@intel.com>
|
||||||
|
Xu Samuel <samuel.xu@intel.com>
|
||||||
|
Xu Xing <xing.xu@intel.com>
|
||||||
|
Xuefei Ren <xrenishere@gmail.com>
|
||||||
|
Xueqing Huang <huangxueqing@xiaomi.com>
|
||||||
|
Xun Sun <xun.sun@intel.com>
|
||||||
|
Xunran Ding <xunran.ding@samsung.com>
|
||||||
|
Xunran Ding <dingxunran@gmail.com>
|
||||||
|
Yael Aharon <yael.aharon@intel.com>
|
||||||
|
Yan Wang <yan0422.wang@samsung.com>
|
||||||
|
Yang Gu <yang.gu@intel.com>
|
||||||
|
Yannic Bonenberger <contact@yannic-bonenberger.com>
|
||||||
|
Yarin Kaul <yarin.kaul@gmail.com>
|
||||||
|
Yash Vempati <vempatiy@amazon.com>
|
||||||
|
Ye Liu <cbakgly@gmail.com>
|
||||||
|
Yeol Park <peary2@gmail.com>
|
||||||
|
Yi Shen <yi.shen@samsung.com>
|
||||||
|
Yi Sun <ratsunny@gmail.com>
|
||||||
|
Yichen Jiang <jiangyichen123@gmail.com>
|
||||||
|
Yifei Yu <yuyifei@xiaomi.com>
|
||||||
|
Yizhou Jiang <yizhou.jiang@intel.com>
|
||||||
|
Yoav Weiss <yoav@yoav.ws>
|
||||||
|
Yoav Zilberberg <yoav.zilberberg@gmail.com>
|
||||||
|
Yong Shin <sy3620@gmail.com>
|
||||||
|
Yong Wang <ccyongwang@tencent.com>
|
||||||
|
Yongha Lee <yongha78.lee@samsung.com>
|
||||||
|
Yongsheng Zhu <yongsheng.zhu@intel.com>
|
||||||
|
Yoonjae Cho <yoonjae.cho92@gmail.com>
|
||||||
|
Yoshinori Sano <yoshinori.sano@gmail.com>
|
||||||
|
Youngho Seo <hazivoo@gmail.com>
|
||||||
|
Youngjin Choi <cyjin9.yc@gmail.com>
|
||||||
|
YoungKi Hong <simon.hong81@gmail.com>
|
||||||
|
Youngmin Yoo <youngmin.yoo@samsung.com>
|
||||||
|
Youngsoo Choi <kenshin.choi@samsung.com>
|
||||||
|
Youngsun Suh <zard17@gmail.com>
|
||||||
|
Yuhong Sha <yuhong.sha@samsung.com>
|
||||||
|
Yumikiyo Osanai <yumios.art@gmail.com>
|
||||||
|
Yunchao He <yunchao.he@intel.com>
|
||||||
|
Yupei Wang <perryuwang@tencent.com>
|
||||||
|
Yura Yaroshevich <yura.yaroshevich@gmail.com>
|
||||||
|
Yuri Gorobets <yuri.gorobets@gmail.com>
|
||||||
|
Yuriy Taraday <yorik.sar@gmail.com>
|
||||||
|
Yuvanesh Natarajan <yuvanesh.n1@samsung.com>
|
||||||
|
Zeno Albisser <zeno.albisser@digia.com>
|
||||||
|
Zeqin Chen <talonchen@tencent.com>
|
||||||
|
Zhaoze Zhou <zhaoze.zhou@partner.samsung.com>
|
||||||
|
Zheda Chen <zheda.chen@intel.com>
|
||||||
|
Zheng Chuang <zhengchuangscu@gmail.com>
|
||||||
|
Zhenyu Liang <zhenyu.liang@intel.com>
|
||||||
|
Zhenyu Shan <zhenyu.shan@intel.com>
|
||||||
|
Zhifei Fang <facetothefate@gmail.com>
|
||||||
|
Zhuoyu Qian <zhuoyu.qian@samsung.com>
|
||||||
|
Ziran Sun <ziran.sun@samsung.com>
|
||||||
|
Zoltan Herczeg <zherczeg.u-szeged@partner.samsung.com>
|
||||||
|
Zoltan Kuscsik <zoltan.kuscsik@linaro.org>
|
||||||
|
Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
|
||||||
|
方觉 (Fang Jue) <fangjue23303@gmail.com>
|
||||||
|
Rajesh Mahindra <rmahindra@uber.com>
|
||||||
|
Yuan-Pin Yu <yjames@uber.com>
|
||||||
|
Vinoth Chandar <vinoth@uber.com>
|
||||||
|
|
||||||
|
ACCESS CO., LTD. <*@access-company.com>
|
||||||
|
Akamai Inc. <*@akamai.com>
|
||||||
|
ARM Holdings <*@arm.com>
|
||||||
|
BlackBerry Limited <*@blackberry.com>
|
||||||
|
Canonical Limited <*@canonical.com>
|
||||||
|
Cloudflare, Inc. <*@cloudflare.com>
|
||||||
|
Code Aurora Forum <*@codeaurora.org>
|
||||||
|
Collabora Limited <*@collabora.com>
|
||||||
|
Comodo CA Limited
|
||||||
|
Cosium <*@cosium.com>
|
||||||
|
Endless Mobile, Inc. <*@endlessm.com>
|
||||||
|
Estimote, Inc. <*@estimote.com>
|
||||||
|
Facebook, Inc. <*@fb.com>
|
||||||
|
Facebook, Inc. <*@oculus.com>
|
||||||
|
Google Inc. <*@google.com>
|
||||||
|
Hewlett-Packard Development Company, L.P. <*@hp.com>
|
||||||
|
IBM Inc. <*@*.ibm.com>
|
||||||
|
IBM Inc. <*@ibm.com>
|
||||||
|
Igalia S.L. <*@igalia.com>
|
||||||
|
Impossible Dreams Network <*@impossibledreams.net>
|
||||||
|
LG Electronics, Inc. <*@lge.com>
|
||||||
|
Loongson Technology Corporation Limited. <*@loongson.cn>
|
||||||
|
Macadamian <*@macadamian.com>
|
||||||
|
MIPS Technologies, Inc. <*@mips.com>
|
||||||
|
Mozilla Corporation <*@mozilla.com>
|
||||||
|
Neverware Inc. <*@neverware.com>
|
||||||
|
NIKE, Inc. <*@nike.com>
|
||||||
|
NVIDIA Corporation <*@nvidia.com>
|
||||||
|
Opera Software ASA <*@opera.com>
|
||||||
|
Optical Tone Ltd <*@opticaltone.com>
|
||||||
|
Seznam.cz, a.s. <*@firma.seznam.cz>
|
||||||
|
Spotify AB <*@spotify.com>
|
||||||
|
Tableau Software <*@tableau.com>
|
||||||
|
TeamSpeak Systems GmbH <*@teamspeak.com>
|
||||||
|
The Chromium Authors <*@chromium.org>
|
||||||
|
The MathWorks, Inc. <binod.pant@mathworks.com>
|
||||||
|
Torchmobile Inc.
|
||||||
|
Upwork <*@cloud.upwork.com>
|
||||||
|
Venture 3 Systems LLC <*@venture3systems.com>
|
||||||
|
Vewd Software AS <*@vewd.com>
|
||||||
|
Vivaldi Technologies AS <*@vivaldi.com>
|
||||||
|
Yandex LLC <*@yandex-team.ru>
|
27
LICENSE
Normal file
27
LICENSE
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Copyright 2015 The Chromium Authors. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
LICENSE.chromium_os
Normal file
27
LICENSE.chromium_os
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Copyright (c) 2006-2009 The Chromium OS Authors. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1089
android_webview/BUILD.gn
Normal file
1089
android_webview/BUILD.gn
Normal file
File diff suppressed because it is too large
Load Diff
15
android_webview/apk/BUILD.gn
Normal file
15
android_webview/apk/BUILD.gn
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
# Since Monochrome has its own content provider, these two files are put
|
||||||
|
# in two different targets.
|
||||||
|
android_library("webview_license_provider_java") {
|
||||||
|
java_files = [ "//android_webview/apk/java/src/com/android/webview/chromium/LicenseContentProvider.java" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_library("webview_license_activity_java") {
|
||||||
|
java_files = [ "//android_webview/apk/java/src/com/android/webview/chromium/LicenseActivity.java" ]
|
||||||
|
}
|
69
android_webview/glue/BUILD.gn
Normal file
69
android_webview/glue/BUILD.gn
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//android_webview/system_webview_apk_tmpl.gni")
|
||||||
|
import("//android_webview/variables.gni")
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
import("generate_resource_rewriter.gni")
|
||||||
|
import("glue.gni")
|
||||||
|
|
||||||
|
generate_resource_rewriter("glue_resource_rewriter") {
|
||||||
|
# Change deps? please modify glue_library_deps variable.
|
||||||
|
deps = glue_library_deps
|
||||||
|
package_name = "com.android.webview.chromium"
|
||||||
|
}
|
||||||
|
|
||||||
|
android_library("glue") {
|
||||||
|
# Change deps? please modify glue_library_deps variable.
|
||||||
|
deps = glue_library_deps
|
||||||
|
srcjar_deps = [ ":glue_resource_rewriter" ]
|
||||||
|
|
||||||
|
alternative_android_sdk_dep =
|
||||||
|
"//third_party/android_system_sdk:public_framework_system_java"
|
||||||
|
|
||||||
|
java_files = [
|
||||||
|
"java/src/com/android/webview/chromium/ApiHelperForM.java",
|
||||||
|
"java/src/com/android/webview/chromium/ApiHelperForN.java",
|
||||||
|
"java/src/com/android/webview/chromium/ApiHelperForO.java",
|
||||||
|
"java/src/com/android/webview/chromium/ApiHelperForOMR1.java",
|
||||||
|
"java/src/com/android/webview/chromium/ApiHelperForP.java",
|
||||||
|
"java/src/com/android/webview/chromium/SharedStatics.java",
|
||||||
|
"java/src/com/android/webview/chromium/CallbackConverter.java",
|
||||||
|
"java/src/com/android/webview/chromium/ContentSettingsAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/CookieManagerAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/DrawGLFunctor.java",
|
||||||
|
"java/src/com/android/webview/chromium/FontPreloadingWorkaround.java",
|
||||||
|
"java/src/com/android/webview/chromium/GeolocationPermissionsAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/GraphicsUtils.java",
|
||||||
|
"java/src/com/android/webview/chromium/MonochromeLibraryPreloader.java",
|
||||||
|
"java/src/com/android/webview/chromium/SafeBrowsingResponseAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/ServiceWorkerClientAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/ServiceWorkerControllerAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/ServiceWorkerSettingsAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/TokenBindingManagerAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/TracingControllerAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebBackForwardListChromium.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebHistoryItemChromium.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebIconDatabaseAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebMessagePortAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebResourceErrorAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebResourceRequestAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebStorageAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewApplication.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromiumAwInit.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromium.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForO.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForOMR1.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForP.java",
|
||||||
|
"java/src/com/android/webview/chromium/SharedWebViewChromium.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewDatabaseAdapter.java",
|
||||||
|
"java/src/com/android/webview/chromium/WebViewDelegateFactory.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
android_manifest_for_lint = system_webview_android_manifest
|
||||||
|
}
|
55
android_webview/glue/generate_resource_rewriter.gni
Normal file
55
android_webview/glue/generate_resource_rewriter.gni
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
# Generate ResourceRewriter.java from Android Libraries according the dep
|
||||||
|
# graph.
|
||||||
|
# Argument:
|
||||||
|
# deps
|
||||||
|
# The same deps of target that uses the generated ResourceRewriter.
|
||||||
|
# package_name
|
||||||
|
# The package name of ResourceRewriter.java.
|
||||||
|
#
|
||||||
|
# This target generates a single srcjar containing generated
|
||||||
|
# ResourceRewrite.java which will list the R classes generated by all the
|
||||||
|
# Android libraries reachabled from the target specified in deps. Add this
|
||||||
|
# target to srcjar_deps of android_library will call ResourceRewriter.
|
||||||
|
#
|
||||||
|
template("generate_resource_rewriter") {
|
||||||
|
set_sources_assignment_filter([])
|
||||||
|
assert(defined(invoker.package_name))
|
||||||
|
|
||||||
|
_final_target_name = target_name
|
||||||
|
_build_config = "$target_gen_dir/${target_name}.build_config"
|
||||||
|
_build_config_target_name = "${target_name}__build_config"
|
||||||
|
_srcjar = "$target_gen_dir/${target_name}.srcjar"
|
||||||
|
write_build_config(_build_config_target_name) {
|
||||||
|
possible_config_deps = invoker.deps
|
||||||
|
type = "resource_rewriter"
|
||||||
|
build_config = _build_config
|
||||||
|
}
|
||||||
|
|
||||||
|
action(_final_target_name) {
|
||||||
|
forward_variables_from(invoker, [ "visibility" ])
|
||||||
|
inputs = [
|
||||||
|
_build_config,
|
||||||
|
]
|
||||||
|
deps = invoker.deps + [ ":${_build_config_target_name}" ]
|
||||||
|
script = "//build/android/gyp/generate_resource_rewriter.py"
|
||||||
|
|
||||||
|
_rebased_build_config = rebase_path(_build_config)
|
||||||
|
args = [
|
||||||
|
"--package-name",
|
||||||
|
invoker.package_name,
|
||||||
|
"--dep-packages",
|
||||||
|
"@FileArg($_rebased_build_config:resources:extra_package_names)",
|
||||||
|
"--srcjar",
|
||||||
|
rebase_path(_srcjar),
|
||||||
|
]
|
||||||
|
outputs = [
|
||||||
|
_srcjar,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
20
android_webview/glue/glue.gni
Normal file
20
android_webview/glue/glue.gni
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
# This variable shared between 'glue' and 'glue_resource_rewriter' because
|
||||||
|
# ResourceRewrite.java need to be generated according 'glue' deps.
|
||||||
|
glue_library_deps = [
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//android_webview:android_webview_commandline_java",
|
||||||
|
"//android_webview:android_webview_platform_services_java",
|
||||||
|
"//android_webview:system_webview_manifest",
|
||||||
|
"//android_webview/support_library/boundary_interfaces:boundary_interface_java",
|
||||||
|
"//android_webview/support_library/callback:callback_java",
|
||||||
|
"//base:base_java",
|
||||||
|
"//components/autofill/android:autofill_java",
|
||||||
|
"//components/autofill/android:provider_java",
|
||||||
|
"//content/public/android:content_java",
|
||||||
|
"//net/android:net_java",
|
||||||
|
"//ui/android:ui_java",
|
||||||
|
]
|
10
android_webview/proto/BUILD.gn
Normal file
10
android_webview/proto/BUILD.gn
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
proto_java_library("aw_variations_seed_proto_java") {
|
||||||
|
proto_path = "."
|
||||||
|
sources = [ "aw_variations_seed.proto" ]
|
||||||
|
}
|
30
android_webview/support_library/BUILD.gn
Normal file
30
android_webview/support_library/BUILD.gn
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
android_library("support_lib_glue_java") {
|
||||||
|
java_files = [
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibReflectionUtil.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibServiceWorkerClientAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibServiceWorkerControllerAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibServiceWorkerSettingsAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebMessageCallbackAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebMessagePortAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebResourceRequest.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebSettingsAdapter.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebViewChromium.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java",
|
||||||
|
"java/src/org/chromium/support_lib_glue/SupportLibWebkitToCompatConverterAdapter.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//android_webview:android_webview_commandline_java",
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//android_webview/glue:glue",
|
||||||
|
"//android_webview/support_library/boundary_interfaces:boundary_interface_java",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
}
|
40
android_webview/support_library/boundary_interfaces/BUILD.gn
Normal file
40
android_webview/support_library/boundary_interfaces/BUILD.gn
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
android_library("boundary_interface_java") {
|
||||||
|
java_files = [
|
||||||
|
"src/org/chromium/support_lib_boundary/FeatureFlagHolderBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/SafeBrowsingResponseBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/ServiceWorkerClientBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/ServiceWorkerControllerBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/ServiceWorkerWebSettingsBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/StaticsBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/VisualStateCallbackBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebMessageBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebMessageCallbackBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebMessagePortBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebResourceErrorBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebResourceRequestBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebViewClientBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/WebkitToCompatConverterBoundaryInterface.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/util/BoundaryInterfaceReflectionUtil.java",
|
||||||
|
"src/org/chromium/support_lib_boundary/util/Features.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
proguard_configs = [ "proguard.flags" ]
|
||||||
|
|
||||||
|
# We can't use ANY deps here, the support library should be able to build
|
||||||
|
# these interfaces without any other chromium dependencies.
|
||||||
|
deps = []
|
||||||
|
|
||||||
|
# This is to verify the boundary interfaces compile and lint correctly against
|
||||||
|
# the minSdkVersion of the webkit support library module.
|
||||||
|
android_manifest_for_lint = "AndroidManifest.xml"
|
||||||
|
}
|
21
android_webview/support_library/callback/BUILD.gn
Normal file
21
android_webview/support_library/callback/BUILD.gn
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
android_library("callback_java") {
|
||||||
|
java_files = [
|
||||||
|
"java/src/org/chromium/support_lib_callback_glue/SupportLibSafeBrowsingResponse.java",
|
||||||
|
"java/src/org/chromium/support_lib_callback_glue/SupportLibWebResourceError.java",
|
||||||
|
"java/src/org/chromium/support_lib_callback_glue/SupportLibWebViewContentsClientAdapter.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//android_webview:android_webview_commandline_java",
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//android_webview/support_library/boundary_interfaces:boundary_interface_java",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
}
|
69
android_webview/system_webview_apk_tmpl.gni
Normal file
69
android_webview/system_webview_apk_tmpl.gni
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//base/android/proguard/proguard.gni")
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
import("//build/config/locales.gni")
|
||||||
|
|
||||||
|
template("system_webview_apk_tmpl") {
|
||||||
|
android_apk(target_name) {
|
||||||
|
forward_variables_from(invoker, "*")
|
||||||
|
|
||||||
|
deps += [
|
||||||
|
"//android_webview:assets",
|
||||||
|
"//android_webview/apk:webview_license_activity_java",
|
||||||
|
"//android_webview/apk:webview_license_provider_java",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
|
||||||
|
if (!defined(alternative_android_sdk_dep)) {
|
||||||
|
alternative_android_sdk_dep = webview_framework_dep
|
||||||
|
}
|
||||||
|
|
||||||
|
shared_resources = true
|
||||||
|
shared_libraries = [ "//android_webview:libwebviewchromium" ]
|
||||||
|
native_lib_version_rule = "//build/util:chrome_version_json"
|
||||||
|
_native_lib_file =
|
||||||
|
rebase_path("$root_gen_dir/CHROME_VERSION.json", root_out_dir)
|
||||||
|
native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)"
|
||||||
|
if (build_apk_secondary_abi && android_64bit_target_cpu) {
|
||||||
|
secondary_abi_shared_libraries = [ "//android_webview:libwebviewchromium($android_secondary_abi_toolchain)" ]
|
||||||
|
}
|
||||||
|
aapt_locale_whitelist = locales
|
||||||
|
|
||||||
|
# Whitelist rationale in https://crbug.com/691733.
|
||||||
|
exclude_xxxhdpi = true
|
||||||
|
xxxhdpi_whitelist = [
|
||||||
|
"*shadow*", # Combination of gradient & transparency cause pixelation.
|
||||||
|
"*.9.*", # Most nine-patches contain shadows.
|
||||||
|
]
|
||||||
|
|
||||||
|
# Used as an additional apk in test scripts.
|
||||||
|
never_incremental = true
|
||||||
|
|
||||||
|
if (is_java_debug) {
|
||||||
|
enable_multidex = true
|
||||||
|
} else {
|
||||||
|
proguard_enabled = true
|
||||||
|
if (!defined(proguard_configs)) {
|
||||||
|
proguard_configs = []
|
||||||
|
}
|
||||||
|
proguard_configs += [
|
||||||
|
"//android_webview/apk/java/proguard.flags",
|
||||||
|
"//base/android/proguard/chromium_apk.flags",
|
||||||
|
"//base/android/proguard/chromium_code.flags",
|
||||||
|
]
|
||||||
|
if (enable_proguard_obfuscation) {
|
||||||
|
proguard_configs +=
|
||||||
|
[ "//base/android/proguard/enable_obfuscation.flags" ]
|
||||||
|
} else {
|
||||||
|
proguard_configs +=
|
||||||
|
[ "//base/android/proguard/disable_all_obfuscation.flags" ]
|
||||||
|
}
|
||||||
|
png_to_webp = true
|
||||||
|
}
|
||||||
|
command_line_flags_file = "webview-command-line"
|
||||||
|
}
|
||||||
|
}
|
360
android_webview/test/BUILD.gn
Normal file
360
android_webview/test/BUILD.gn
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
import("//device/vr/buildflags/buildflags.gni")
|
||||||
|
import("//testing/test.gni")
|
||||||
|
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||||||
|
|
||||||
|
# Mark all targets as test only.
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
group("test") {
|
||||||
|
deps = [
|
||||||
|
":android_webview_unittests",
|
||||||
|
":webview_instrumentation_test_apk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_apk("webview_instrumentation_apk") {
|
||||||
|
deps = [
|
||||||
|
":android_webview_apk_assets",
|
||||||
|
":android_webview_apk_resources",
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//android_webview:locale_pak_assets",
|
||||||
|
"//android_webview:platform_service_bridge_upstream_implementation_java",
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//components/heap_profiling:heap_profiling_java_test_support",
|
||||||
|
"//components/policy/android:policy_java_test_support",
|
||||||
|
"//content/public/android:content_java",
|
||||||
|
"//third_party/android_support_test_runner:runner_java",
|
||||||
|
"//third_party/junit",
|
||||||
|
"//ui/android:ui_java",
|
||||||
|
]
|
||||||
|
|
||||||
|
apk_name = "WebViewInstrumentation"
|
||||||
|
android_manifest = "shell/AndroidManifest.xml"
|
||||||
|
java_files = [
|
||||||
|
"shell/src/org/chromium/android_webview/shell/AwShellActivity.java",
|
||||||
|
"shell/src/org/chromium/android_webview/shell/AwShellApplication.java",
|
||||||
|
"shell/src/org/chromium/android_webview/shell/AwShellResourceProvider.java",
|
||||||
|
"shell/src/org/chromium/android_webview/shell/AwShellSwitches.java",
|
||||||
|
"shell/src/org/chromium/android_webview/shell/DrawGL.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/AwTestContainerView.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/AwTestRunnerActivity.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/AwJUnit4ClassRunner.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/NullContentsClient.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/SecondBrowserProcess.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/SkipSingleProcessTests.java",
|
||||||
|
"shell/src/org/chromium/android_webview/test/TestContentProvider.java",
|
||||||
|
]
|
||||||
|
|
||||||
|
shared_libraries = [
|
||||||
|
":libdrawgl",
|
||||||
|
":libstandalonelibwebviewchromium",
|
||||||
|
]
|
||||||
|
|
||||||
|
native_lib_version_rule = "//build/util:chrome_version_json"
|
||||||
|
_native_lib_file =
|
||||||
|
rebase_path("$root_gen_dir/CHROME_VERSION.json", root_build_dir)
|
||||||
|
native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)"
|
||||||
|
|
||||||
|
enable_multidex = true
|
||||||
|
|
||||||
|
command_line_flags_file = "android-webview-command-line"
|
||||||
|
}
|
||||||
|
|
||||||
|
android_resources("android_webview_apk_resources") {
|
||||||
|
resource_dirs = [ "shell/res" ]
|
||||||
|
custom_package = "org.chromium.android_webview.shell"
|
||||||
|
}
|
||||||
|
|
||||||
|
android_assets("android_webview_apk_assets") {
|
||||||
|
deps = [
|
||||||
|
"//android_webview:pak_file_assets",
|
||||||
|
"//third_party/icu:icu_assets",
|
||||||
|
]
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"shell/assets/asset_file.html",
|
||||||
|
"shell/assets/asset_icon.png",
|
||||||
|
"shell/assets/autofill.html",
|
||||||
|
"shell/assets/cookie_test.html",
|
||||||
|
"shell/assets/full_screen_video.js",
|
||||||
|
"shell/assets/full_screen_video_inside_div_test.html",
|
||||||
|
"shell/assets/full_screen_video_test.html",
|
||||||
|
"shell/assets/full_screen_video_test_not_preloaded.html",
|
||||||
|
"shell/assets/key-system-test.html",
|
||||||
|
"shell/assets/platform-media-codec-test.html",
|
||||||
|
"shell/assets/star.svg",
|
||||||
|
"shell/assets/star.svgz",
|
||||||
|
"shell/assets/video.3gp",
|
||||||
|
"shell/assets/video.webm",
|
||||||
|
"shell/assets/visual_state_during_fullscreen_test.html",
|
||||||
|
"shell/assets/visual_state_on_page_commit_visible_test.html",
|
||||||
|
"shell/assets/visual_state_waits_for_js_detached_test.html",
|
||||||
|
"shell/assets/visual_state_waits_for_js_test.html",
|
||||||
|
"shell/assets/webvr_not_functional_test.html",
|
||||||
|
]
|
||||||
|
|
||||||
|
if (use_v8_context_snapshot) {
|
||||||
|
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||||
|
} else {
|
||||||
|
deps += [ "//v8:v8_external_startup_data_assets" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
shared_library("libstandalonelibwebviewchromium") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"../lib/webview_entry_point.cc",
|
||||||
|
]
|
||||||
|
ldflags = [ "-Wl,-shared,-Bsymbolic" ]
|
||||||
|
deps = [
|
||||||
|
"//android_webview:common",
|
||||||
|
"//components/heap_profiling:test_support",
|
||||||
|
"//components/minidump_uploader",
|
||||||
|
]
|
||||||
|
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
|
||||||
|
configs += [ "//build/config/android:hide_all_but_jni" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
instrumentation_test_apk("webview_instrumentation_test_apk") {
|
||||||
|
apk_name = "WebViewInstrumentationTest"
|
||||||
|
apk_under_test = ":webview_instrumentation_apk"
|
||||||
|
android_manifest = "../javatests/AndroidManifest.xml"
|
||||||
|
deps = [
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//android_webview:android_webview_platform_services_java",
|
||||||
|
"//android_webview:android_webview_services_java",
|
||||||
|
"//android_webview:aw_variations_seed_server_aidl",
|
||||||
|
"//android_webview/test/embedded_test_server:aw_net_java_test_support",
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//components/autofill/android:provider_java",
|
||||||
|
"//components/embedder_support/android:web_contents_delegate_java",
|
||||||
|
"//components/minidump_uploader:minidump_uploader_java",
|
||||||
|
"//components/minidump_uploader:minidump_uploader_javatests",
|
||||||
|
"//components/policy/android:policy_java",
|
||||||
|
"//components/policy/android:policy_java_test_support",
|
||||||
|
"//components/safe_browsing/android:safe_browsing_java",
|
||||||
|
"//content/public/android:content_java",
|
||||||
|
"//content/public/test/android:content_java_test_support",
|
||||||
|
"//mojo/public/java:bindings_java",
|
||||||
|
"//net/android:net_java",
|
||||||
|
"//net/android:net_java_test_support",
|
||||||
|
"//services/device/public/java:geolocation_java",
|
||||||
|
"//services/device/public/java:geolocation_java_test_support",
|
||||||
|
"//third_party/android_support_test_runner:rules_java",
|
||||||
|
"//third_party/android_support_test_runner:runner_java",
|
||||||
|
"//third_party/junit",
|
||||||
|
"//ui/android:ui_java",
|
||||||
|
]
|
||||||
|
java_files = [
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AcceptLanguageTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AndroidProtocolHandlerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AndroidScrollIntegrationTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AndroidViewIntegrationTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ArchiveTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwActivityTestRule.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwAutofillTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsAnchorViewTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientAutoLoginTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientCallbackHelperTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientFaviconTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientFullScreenTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientGetDefaultVideoPosterTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientOnFormResubmissionTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientOnScaleChangedTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientOnUnhandledKeyEventTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsClientVisitedHistoryTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsContainerViewTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsGarbageCollectionTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsLifecycleNotifierTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsStaticsTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwContentsTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwDebugTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwFormDatabaseTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwImeTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwLegacyQuirksTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwPermissionManagerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwQuotaManagerBridgeTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwSecondBrowserProcessTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwSettingsTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwStrictModeTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwVariationsSeedFetcherTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwWebContentsObserverTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwZoomTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/CleanupReferenceTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClearHistoryTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientAddMessageToConsoleTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientOnPageStartedTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientOnReceivedError2Test.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientOnReceivedErrorTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ClientOnReceivedHttpErrorTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ConsoleMessagesForBlockedLoadsTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/ContentViewMiscTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/CookieManagerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/DisableHardwareAccelerationForTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/FindAddressTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/FullScreenVideoTestAwContentsClient.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/GeolocationTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/GetTitleTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/HeapProfilingTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/HttpAuthDatabaseTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/HttpCacheTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/KeySystemTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/LoadUrlTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/MediaAccessPermissionRequestTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/NavigationHistoryTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/PlatformMediaCodecTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/PopupWindowTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/PostMessageTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/RenderProcessGoneHelper.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/SaveRestoreStateTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/SafeBrowsingTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/AwUncaughtExceptionTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/StandaloneAwQuotaManagerBridgeTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/TestAwContents.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/TestAwContentsClient.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/TestAwServiceWorkerClient.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/UserAgentTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/VariationsSeedHolderTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/VariationsSeedLoaderTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/VariationsUtilsTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/VisualStateTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/WebKitHitTestTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/WebViewAsynchronousFindApisTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/WebViewFindApisTestRule.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/WebViewWebVrTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/services/MinidumpUploaderTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/services/MockVariationsSeedServer.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/services/VariationsSeedServerTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/services/VisualStateCallbackTest.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/AwQuotaManagerBridgeTestUtil.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/AwTestTouchUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/CommonResources.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/CookieUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/GraphicsTestUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/JSUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/JavascriptEventObserver.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/VariationsTestUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/VideoSurfaceViewUtils.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/VideoTestUtil.java",
|
||||||
|
"../javatests/src/org/chromium/android_webview/test/util/VideoTestWebServer.java",
|
||||||
|
]
|
||||||
|
data = [
|
||||||
|
"data/",
|
||||||
|
]
|
||||||
|
|
||||||
|
# We only want to bother including these on bots set up for VR testing
|
||||||
|
if (include_vr_data) {
|
||||||
|
data += [
|
||||||
|
"//chrome/android/shared_preference_files/test/",
|
||||||
|
"//third_party/gvr-android-sdk/test-apks/vr_services/vr_services_current.apk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
additional_apks = [
|
||||||
|
"//android_webview/test/embedded_test_server:aw_net_test_support_apk",
|
||||||
|
"//net/android:net_test_support_apk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
test("android_webview_unittests") {
|
||||||
|
# Dependencies (e.g. Play services) make the binary reach the dex limit.
|
||||||
|
enable_multidex = true
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":android_webview_unittests_assets",
|
||||||
|
":android_webview_unittests_java",
|
||||||
|
":android_webview_unittests_jni",
|
||||||
|
"//android_webview:common",
|
||||||
|
"//base/test:test_support",
|
||||||
|
"//components/prefs:prefs",
|
||||||
|
"//components/prefs:test_support",
|
||||||
|
"//content:content",
|
||||||
|
"//content/test:test_support",
|
||||||
|
"//net:net",
|
||||||
|
"//net:test_support",
|
||||||
|
"//ui/base:ui_base_jni_headers",
|
||||||
|
"//ui/gl",
|
||||||
|
"//ui/gl:test_support",
|
||||||
|
]
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"../browser/aw_content_browser_client_unittest.cc",
|
||||||
|
"../browser/aw_contents_client_bridge_unittest.cc",
|
||||||
|
"../browser/aw_form_database_service_unittest.cc",
|
||||||
|
"../browser/aw_media_url_interceptor_unittest.cc",
|
||||||
|
"../browser/aw_permission_manager_unittest.cc",
|
||||||
|
"../browser/aw_safe_browsing_whitelist_manager_unittest.cc",
|
||||||
|
"../browser/aw_static_cookie_policy_unittest.cc",
|
||||||
|
"../browser/browser_view_renderer_unittest.cc",
|
||||||
|
"../browser/command_line_helper_unittest.cc",
|
||||||
|
"../browser/input_stream_unittest.cc",
|
||||||
|
"../browser/net/android_stream_reader_url_request_job_unittest.cc",
|
||||||
|
"../browser/net/aw_cookie_store_wrapper_unittest.cc",
|
||||||
|
"../browser/net/aw_url_request_context_getter_unittest.cc",
|
||||||
|
"../browser/net/input_stream_reader_unittest.cc",
|
||||||
|
"../browser/permission/media_access_permission_request_unittest.cc",
|
||||||
|
"../browser/permission/permission_request_handler_unittest.cc",
|
||||||
|
"../browser/renderer_host/auto_login_parser_unittest.cc",
|
||||||
|
"../browser/state_serializer_unittest.cc",
|
||||||
|
"../browser/test/fake_window.cc",
|
||||||
|
"../browser/test/fake_window.h",
|
||||||
|
"../browser/test/rendering_test.cc",
|
||||||
|
"../browser/test/rendering_test.h",
|
||||||
|
"../lib/webview_tests.cc",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_assets("android_webview_unittests_assets") {
|
||||||
|
sources = [
|
||||||
|
"unittest/assets/asset_file.ogg",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_library("android_webview_unittests_java") {
|
||||||
|
testonly = true
|
||||||
|
deps = [
|
||||||
|
"//android_webview:android_webview_java",
|
||||||
|
"//base:base_java",
|
||||||
|
"//content/public/test/android:content_java_test_support",
|
||||||
|
]
|
||||||
|
java_files = [
|
||||||
|
"../unittestjava/src/org/chromium/android_webview/unittest/InputStreamUnittest.java",
|
||||||
|
"../unittestjava/src/org/chromium/android_webview/unittest/MockAwContentsClientBridge.java",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
generate_jni("android_webview_unittests_jni") {
|
||||||
|
jni_package = "android_webview_unittests"
|
||||||
|
sources = [
|
||||||
|
"../unittestjava/src/org/chromium/android_webview/unittest/InputStreamUnittest.java",
|
||||||
|
"../unittestjava/src/org/chromium/android_webview/unittest/MockAwContentsClientBridge.java",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
shared_library("libdrawgl") {
|
||||||
|
sources = [
|
||||||
|
"shell/src/draw_gl/draw_gl.cc",
|
||||||
|
]
|
||||||
|
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
|
||||||
|
}
|
71
android_webview/test/embedded_test_server/BUILD.gn
Normal file
71
android_webview/test/embedded_test_server/BUILD.gn
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
|
||||||
|
android_library("aw_net_java_test_support") {
|
||||||
|
testonly = true
|
||||||
|
java_files = [
|
||||||
|
"java/src/org/chromium/android_webview/test/AwEmbeddedTestServer.java",
|
||||||
|
"java/src/org/chromium/android_webview/test/AwEmbeddedTestServerImpl.java",
|
||||||
|
"java/src/org/chromium/android_webview/test/AwEmbeddedTestServerService.java",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//net/android:embedded_test_server_aidl_java",
|
||||||
|
"//net/android:net_java",
|
||||||
|
"//net/android:net_java_test_support",
|
||||||
|
"//net/android:net_java_test_support_provider",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
generate_jni("aw_net_jni_headers") {
|
||||||
|
sources = [
|
||||||
|
"java/src/org/chromium/android_webview/test/AwEmbeddedTestServerImpl.java",
|
||||||
|
]
|
||||||
|
jni_package = "android_webview/test"
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("aw_java_test_native_support") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"../../../net/test/embedded_test_server/android/embedded_test_server_android.cc",
|
||||||
|
"../../../net/test/embedded_test_server/android/embedded_test_server_android.h",
|
||||||
|
"aw_embedded_test_server.cc",
|
||||||
|
"aw_test_entry_point.cc",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//net:test_support",
|
||||||
|
]
|
||||||
|
public_deps = [
|
||||||
|
":aw_net_jni_headers",
|
||||||
|
"//net:net_test_jni_headers",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
shared_library("aw_net_java_test_native_support") {
|
||||||
|
testonly = true
|
||||||
|
deps = [
|
||||||
|
":aw_java_test_native_support",
|
||||||
|
"//net:test_support",
|
||||||
|
]
|
||||||
|
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
|
||||||
|
configs += [ "//build/config/android:hide_all_but_jni" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_apk("aw_net_test_support_apk") {
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
# Used as an additional_apk in test scripts.
|
||||||
|
never_incremental = true
|
||||||
|
deps = [
|
||||||
|
":aw_net_java_test_support",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
android_manifest = "java/AndroidManifest.xml"
|
||||||
|
apk_name = "ChromiumNetTestAwSupport"
|
||||||
|
shared_libraries = [ ":aw_net_java_test_native_support" ]
|
||||||
|
}
|
72
android_webview/tools/automated_ui_tests/BUILD.gn
Normal file
72
android_webview/tools/automated_ui_tests/BUILD.gn
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
import("//testing/test.gni")
|
||||||
|
|
||||||
|
group("webview_ui_test_app") {
|
||||||
|
testonly = true
|
||||||
|
deps = [
|
||||||
|
":webview_ui_test_app_apk",
|
||||||
|
":webview_ui_test_app_test_apk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_apk("webview_ui_test_app_apk") {
|
||||||
|
apk_name = "WebViewUiTestApp"
|
||||||
|
android_manifest = "java/AndroidManifest.xml"
|
||||||
|
deps = [
|
||||||
|
":webview_ui_test_app_apk_resources",
|
||||||
|
":webview_ui_test_app_java",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_library("webview_ui_test_app_java") {
|
||||||
|
java_files =
|
||||||
|
[ "java/src/org/chromium/webview_ui_test/WebViewUiTestActivity.java" ]
|
||||||
|
deps = [
|
||||||
|
":webview_ui_test_app_apk_resources",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
|
||||||
|
android_manifest_for_lint = "java/AndroidManifest.xml"
|
||||||
|
}
|
||||||
|
|
||||||
|
android_resources("webview_ui_test_app_apk_resources") {
|
||||||
|
resource_dirs = [ "java/res" ]
|
||||||
|
custom_package = "org.chromium.webview_ui_test"
|
||||||
|
}
|
||||||
|
|
||||||
|
instrumentation_test_apk("webview_ui_test_app_test_apk") {
|
||||||
|
apk_name = "WebViewUiTestAppTest"
|
||||||
|
apk_under_test = ":webview_ui_test_app_apk"
|
||||||
|
android_manifest = "javatests/AndroidManifest.xml"
|
||||||
|
java_files = [
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/DropDownListTest.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/WebViewJSTest.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/util/Actions.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/util/Atoms.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/util/UseLayout.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/util/WebViewUiTestRule.java",
|
||||||
|
"javatests/src/org/chromium/webview_ui_test/test/util/WebViewSyncWrapper.java",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":webview_ui_test_app_apk_resources",
|
||||||
|
":webview_ui_test_app_java",
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//third_party/android_support_test_runner:rules_java",
|
||||||
|
"//third_party/android_support_test_runner:runner_java",
|
||||||
|
"//third_party/android_tools:android_support_annotations_java",
|
||||||
|
"//third_party/android_tools:android_test_base_java",
|
||||||
|
"//third_party/espresso:espresso_all_java",
|
||||||
|
"//third_party/hamcrest:hamcrest_java",
|
||||||
|
"//third_party/junit",
|
||||||
|
"//third_party/ub-uiautomator:ub_uiautomator_java",
|
||||||
|
]
|
||||||
|
data = [
|
||||||
|
"test/data/",
|
||||||
|
]
|
||||||
|
}
|
90
android_webview/tools/system_webview_shell/BUILD.gn
Normal file
90
android_webview/tools/system_webview_shell/BUILD.gn
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//build/config/android/rules.gni")
|
||||||
|
import("//testing/test.gni")
|
||||||
|
|
||||||
|
# Mark all targets as test only.
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
group("system_webview_shell") {
|
||||||
|
deps = [
|
||||||
|
":system_webview_shell_apk",
|
||||||
|
":system_webview_shell_layout_test_apk",
|
||||||
|
":system_webview_shell_page_cycler_apk",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_apk("system_webview_shell_apk") {
|
||||||
|
apk_name = "SystemWebViewShell"
|
||||||
|
java_files = [
|
||||||
|
"apk/src/org/chromium/webview_shell/JankActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/PageCyclerTestActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/StartupTimeActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/TelemetryActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/TelemetryMemoryPressureActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/WebViewCreateDestroyActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/WebViewLayoutTestActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/WebViewThreadTestActivity.java",
|
||||||
|
"apk/src/org/chromium/webview_shell/WebViewTracingActivity.java",
|
||||||
|
]
|
||||||
|
android_manifest = "apk/AndroidManifest.xml"
|
||||||
|
deps = [
|
||||||
|
":system_webview_shell_apk_resources",
|
||||||
|
"//base:base_java",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
android_resources("system_webview_shell_apk_resources") {
|
||||||
|
resource_dirs = [ "apk/res" ]
|
||||||
|
custom_package = "org.chromium.webview_shell"
|
||||||
|
}
|
||||||
|
|
||||||
|
instrumentation_test_apk("system_webview_shell_page_cycler_apk") {
|
||||||
|
apk_name = "SystemWebViewShellPageCycler"
|
||||||
|
apk_under_test = ":system_webview_shell_apk"
|
||||||
|
android_manifest = "page_cycler/AndroidManifest.xml"
|
||||||
|
java_files = [ "page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java" ]
|
||||||
|
deps = [
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//content/public/android:content_java",
|
||||||
|
"//content/public/test/android:content_java_test_support",
|
||||||
|
"//testing/android/reporter:reporter_java",
|
||||||
|
"//third_party/android_support_test_runner:rules_java",
|
||||||
|
"//third_party/android_support_test_runner:runner_java",
|
||||||
|
"//third_party/junit",
|
||||||
|
]
|
||||||
|
enable_multidex = true
|
||||||
|
}
|
||||||
|
|
||||||
|
instrumentation_test_apk("system_webview_shell_layout_test_apk") {
|
||||||
|
apk_name = "SystemWebViewShellLayoutTest"
|
||||||
|
apk_under_test = ":system_webview_shell_apk"
|
||||||
|
android_manifest = "layout_tests/AndroidManifest.xml"
|
||||||
|
java_files = [
|
||||||
|
"layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java",
|
||||||
|
"layout_tests/src/org/chromium/webview_shell/test/WebViewThreadTest.java",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//base:base_java",
|
||||||
|
"//base:base_java_test_support",
|
||||||
|
"//testing/android/reporter:reporter_java",
|
||||||
|
"//third_party/android_support_test_runner:rules_java",
|
||||||
|
"//third_party/android_support_test_runner:runner_java",
|
||||||
|
"//third_party/junit",
|
||||||
|
]
|
||||||
|
data = [
|
||||||
|
"test/data/",
|
||||||
|
"//third_party/WebKit/LayoutTests/platform/linux/virtual/stable/webexposed/",
|
||||||
|
"//third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/",
|
||||||
|
"//third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/",
|
||||||
|
"//third_party/WebKit/LayoutTests/resources/global-interface-listing.js",
|
||||||
|
"//third_party/WebKit/LayoutTests/virtual/stable/webexposed/",
|
||||||
|
"//third_party/WebKit/LayoutTests/webexposed/global-interface-listing.html",
|
||||||
|
"//third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt",
|
||||||
|
]
|
||||||
|
additional_apks = [ system_webview_apk_target ]
|
||||||
|
}
|
6
android_webview/variables.gni
Normal file
6
android_webview/variables.gni
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
system_webview_android_manifest =
|
||||||
|
"$root_gen_dir/android_webview/system_webview_apk/AndroidManifest.xml"
|
35
android_webview/webview_repack_locales.gni
Normal file
35
android_webview/webview_repack_locales.gni
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//tools/grit/repack.gni")
|
||||||
|
import("webview_repack_locales_list.gni")
|
||||||
|
|
||||||
|
# Wraps repack_locales(), setting the source_patterns and deps required for
|
||||||
|
# Chrome.
|
||||||
|
template("webview_repack_locales") {
|
||||||
|
repack_locales(target_name) {
|
||||||
|
forward_variables_from(invoker, "*")
|
||||||
|
if (!defined(deps)) {
|
||||||
|
deps = []
|
||||||
|
}
|
||||||
|
|
||||||
|
# Adding webview specific pak file? You should add it to
|
||||||
|
# webview_repack_locales_source_patterns, so it is also included in
|
||||||
|
# Monochrome.
|
||||||
|
|
||||||
|
source_patterns = [
|
||||||
|
"${root_gen_dir}/android_webview/components_strings_",
|
||||||
|
"${root_gen_dir}/content/app/strings/content_strings_",
|
||||||
|
"${root_gen_dir}/ui/strings/app_locale_settings_",
|
||||||
|
]
|
||||||
|
deps += [
|
||||||
|
"//android_webview:generate_components_strings",
|
||||||
|
"//content/app/strings",
|
||||||
|
"//ui/strings:app_locale_settings",
|
||||||
|
]
|
||||||
|
source_patterns += webview_repack_locales_source_patterns
|
||||||
|
deps += webview_repack_locales_deps
|
||||||
|
output_dir = "$root_out_dir/android_webview/locales"
|
||||||
|
}
|
||||||
|
}
|
10
android_webview/webview_repack_locales_list.gni
Normal file
10
android_webview/webview_repack_locales_list.gni
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
# For how to add pattern, see additional_source_patterns argument of
|
||||||
|
# _repack_one_locale in chrome/chrome_repack_locales.gni.
|
||||||
|
webview_repack_locales_source_patterns =
|
||||||
|
[ "${root_gen_dir}/android_webview/aw_strings_" ]
|
||||||
|
|
||||||
|
webview_repack_locales_deps = [ "//android_webview:generate_aw_strings" ]
|
66
apps/BUILD.gn
Normal file
66
apps/BUILD.gn
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
import("//build/config/features.gni")
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//extensions/buildflags/buildflags.gni")
|
||||||
|
|
||||||
|
assert(!is_android && !is_ios)
|
||||||
|
assert(enable_extensions,
|
||||||
|
"Cannot depend on extensions because enable_extensions=false.")
|
||||||
|
|
||||||
|
static_library("apps") {
|
||||||
|
sources = []
|
||||||
|
|
||||||
|
sources += [
|
||||||
|
"app_lifetime_monitor.cc",
|
||||||
|
"app_lifetime_monitor.h",
|
||||||
|
"app_lifetime_monitor_factory.cc",
|
||||||
|
"app_lifetime_monitor_factory.h",
|
||||||
|
"app_restore_service.cc",
|
||||||
|
"app_restore_service.h",
|
||||||
|
"app_restore_service_factory.cc",
|
||||||
|
"app_restore_service_factory.h",
|
||||||
|
"browser_context_keyed_service_factories.cc",
|
||||||
|
"browser_context_keyed_service_factories.h",
|
||||||
|
"launcher.cc",
|
||||||
|
"launcher.h",
|
||||||
|
"saved_files_service.cc",
|
||||||
|
"saved_files_service.h",
|
||||||
|
"saved_files_service_factory.cc",
|
||||||
|
"saved_files_service_factory.h",
|
||||||
|
"switches.cc",
|
||||||
|
"switches.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//components/keyed_service/content",
|
||||||
|
"//content/public/browser",
|
||||||
|
"//content/public/common",
|
||||||
|
"//extensions/browser",
|
||||||
|
"//extensions/common",
|
||||||
|
"//extensions/common/api",
|
||||||
|
]
|
||||||
|
|
||||||
|
if (is_chromeos) {
|
||||||
|
deps += [ "//components/user_manager" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
|
||||||
|
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
static_library("test_support") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"test/app_window_waiter.cc",
|
||||||
|
"test/app_window_waiter.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//content/public/browser",
|
||||||
|
]
|
||||||
|
}
|
26
apps/ui/views/BUILD.gn
Normal file
26
apps/ui/views/BUILD.gn
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//extensions/buildflags/buildflags.gni")
|
||||||
|
|
||||||
|
assert(enable_extensions)
|
||||||
|
|
||||||
|
source_set("views") {
|
||||||
|
sources = [
|
||||||
|
"app_window_frame_view.cc",
|
||||||
|
"app_window_frame_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//cc/paint",
|
||||||
|
"//chrome/app/theme:theme_resources",
|
||||||
|
"//extensions/browser",
|
||||||
|
"//extensions/common",
|
||||||
|
"//skia",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/strings",
|
||||||
|
"//ui/views",
|
||||||
|
]
|
||||||
|
}
|
2469
ash/BUILD.gn
Normal file
2469
ash/BUILD.gn
Normal file
File diff suppressed because it is too large
Load Diff
235
ash/app_list/BUILD.gn
Normal file
235
ash/app_list/BUILD.gn
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//testing/test.gni")
|
||||||
|
|
||||||
|
assert(is_chromeos)
|
||||||
|
|
||||||
|
component("app_list") {
|
||||||
|
sources = [
|
||||||
|
"app_list_export.h",
|
||||||
|
"app_list_metrics.cc",
|
||||||
|
"app_list_metrics.h",
|
||||||
|
"app_list_util.cc",
|
||||||
|
"app_list_util.h",
|
||||||
|
"app_list_view_delegate.h",
|
||||||
|
"paged_view_structure.cc",
|
||||||
|
"paged_view_structure.h",
|
||||||
|
"pagination_controller.cc",
|
||||||
|
"pagination_controller.h",
|
||||||
|
"pagination_model.cc",
|
||||||
|
"pagination_model.h",
|
||||||
|
"pagination_model_observer.h",
|
||||||
|
"views/app_list_drag_and_drop_host.h",
|
||||||
|
"views/app_list_folder_view.cc",
|
||||||
|
"views/app_list_folder_view.h",
|
||||||
|
"views/app_list_item_view.cc",
|
||||||
|
"views/app_list_item_view.h",
|
||||||
|
"views/app_list_main_view.cc",
|
||||||
|
"views/app_list_main_view.h",
|
||||||
|
"views/app_list_menu_model_adapter.cc",
|
||||||
|
"views/app_list_menu_model_adapter.h",
|
||||||
|
"views/app_list_page.cc",
|
||||||
|
"views/app_list_page.h",
|
||||||
|
"views/app_list_view.cc",
|
||||||
|
"views/app_list_view.h",
|
||||||
|
"views/apps_container_view.cc",
|
||||||
|
"views/apps_container_view.h",
|
||||||
|
"views/apps_grid_view.cc",
|
||||||
|
"views/apps_grid_view.h",
|
||||||
|
"views/apps_grid_view_folder_delegate.h",
|
||||||
|
"views/contents_view.cc",
|
||||||
|
"views/contents_view.h",
|
||||||
|
"views/expand_arrow_view.cc",
|
||||||
|
"views/expand_arrow_view.h",
|
||||||
|
"views/folder_background_view.cc",
|
||||||
|
"views/folder_background_view.h",
|
||||||
|
"views/folder_header_view.cc",
|
||||||
|
"views/folder_header_view.h",
|
||||||
|
"views/folder_header_view_delegate.h",
|
||||||
|
"views/horizontal_page.cc",
|
||||||
|
"views/horizontal_page.h",
|
||||||
|
"views/horizontal_page_container.cc",
|
||||||
|
"views/horizontal_page_container.h",
|
||||||
|
"views/image_shadow_animator.cc",
|
||||||
|
"views/image_shadow_animator.h",
|
||||||
|
"views/indicator_chip_view.cc",
|
||||||
|
"views/indicator_chip_view.h",
|
||||||
|
"views/page_switcher.cc",
|
||||||
|
"views/page_switcher.h",
|
||||||
|
"views/pulsing_block_view.cc",
|
||||||
|
"views/pulsing_block_view.h",
|
||||||
|
"views/search_box_view.cc",
|
||||||
|
"views/search_box_view.h",
|
||||||
|
"views/search_result_actions_view.cc",
|
||||||
|
"views/search_result_actions_view.h",
|
||||||
|
"views/search_result_actions_view_delegate.h",
|
||||||
|
"views/search_result_answer_card_view.cc",
|
||||||
|
"views/search_result_answer_card_view.h",
|
||||||
|
"views/search_result_base_view.cc",
|
||||||
|
"views/search_result_base_view.h",
|
||||||
|
"views/search_result_container_view.cc",
|
||||||
|
"views/search_result_container_view.h",
|
||||||
|
"views/search_result_list_view.cc",
|
||||||
|
"views/search_result_list_view.h",
|
||||||
|
"views/search_result_page_view.cc",
|
||||||
|
"views/search_result_page_view.h",
|
||||||
|
"views/search_result_suggestion_chip_view.cc",
|
||||||
|
"views/search_result_suggestion_chip_view.h",
|
||||||
|
"views/search_result_tile_item_list_view.cc",
|
||||||
|
"views/search_result_tile_item_list_view.h",
|
||||||
|
"views/search_result_tile_item_view.cc",
|
||||||
|
"views/search_result_tile_item_view.h",
|
||||||
|
"views/search_result_view.cc",
|
||||||
|
"views/search_result_view.h",
|
||||||
|
"views/suggestion_chip_container_view.cc",
|
||||||
|
"views/suggestion_chip_container_view.h",
|
||||||
|
"views/suggestion_chip_view.cc",
|
||||||
|
"views/suggestion_chip_view.h",
|
||||||
|
"views/suggestions_container_view.cc",
|
||||||
|
"views/suggestions_container_view.h",
|
||||||
|
"views/top_icon_animation_view.cc",
|
||||||
|
"views/top_icon_animation_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "APP_LIST_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/app_list/resources",
|
||||||
|
"//ash/app_menu",
|
||||||
|
"//ash/assistant/ui:constants",
|
||||||
|
"//ash/public/cpp/app_list/vector_icons",
|
||||||
|
"//base",
|
||||||
|
"//base:i18n",
|
||||||
|
"//base/third_party/dynamic_annotations",
|
||||||
|
"//cc/paint",
|
||||||
|
"//chromeos:chromeos",
|
||||||
|
"//components/keyed_service/core",
|
||||||
|
"//components/sync",
|
||||||
|
"//mojo/public/cpp/bindings",
|
||||||
|
"//services/ui/public/cpp",
|
||||||
|
"//services/ui/public/interfaces",
|
||||||
|
"//skia",
|
||||||
|
"//third_party/icu",
|
||||||
|
"//ui/accessibility",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/base/ime",
|
||||||
|
"//ui/chromeos/search_box",
|
||||||
|
"//ui/compositor",
|
||||||
|
"//ui/display",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/keyboard/",
|
||||||
|
"//ui/resources",
|
||||||
|
"//ui/strings",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus/remote_view:remote_view_host",
|
||||||
|
"//ui/wm",
|
||||||
|
]
|
||||||
|
|
||||||
|
# TODO(hejq): Remove this once app_list is migrated. http://crbug.com/733662
|
||||||
|
public_deps = [
|
||||||
|
"//ash/app_list/model:app_list_model",
|
||||||
|
"//ash/app_list/model:search_model",
|
||||||
|
"//ash/public/cpp:cpp",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
static_library("test_support") {
|
||||||
|
sources = [
|
||||||
|
"test/app_list_test_model.cc",
|
||||||
|
"test/app_list_test_model.h",
|
||||||
|
"test/app_list_test_view_delegate.cc",
|
||||||
|
"test/app_list_test_view_delegate.h",
|
||||||
|
"test/test_search_result.cc",
|
||||||
|
"test/test_search_result.h",
|
||||||
|
"views/test/apps_grid_view_test_api.cc",
|
||||||
|
"views/test/apps_grid_view_test_api.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":app_list",
|
||||||
|
"//base",
|
||||||
|
"//ui/base:base",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("app_list_demo") {
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"demo/app_list_demo_views.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":app_list",
|
||||||
|
":test_support",
|
||||||
|
"//base",
|
||||||
|
"//build/win:default_exe_manifest",
|
||||||
|
"//content",
|
||||||
|
"//content/public/browser",
|
||||||
|
"//skia",
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/resources",
|
||||||
|
"//ui/resources:ui_test_pak",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views_content_client",
|
||||||
|
"//url",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
test("app_list_unittests") {
|
||||||
|
sources = [
|
||||||
|
"folder_image_unittest.cc",
|
||||||
|
"pagination_model_unittest.cc",
|
||||||
|
"test/run_all_unittests.cc",
|
||||||
|
"views/app_list_main_view_unittest.cc",
|
||||||
|
"views/app_list_menu_model_adapter_unittest.cc",
|
||||||
|
"views/app_list_view_unittest.cc",
|
||||||
|
"views/apps_grid_view_unittest.cc",
|
||||||
|
"views/folder_header_view_unittest.cc",
|
||||||
|
"views/image_shadow_animator_unittest.cc",
|
||||||
|
"views/search_box_view_unittest.cc",
|
||||||
|
"views/search_result_answer_card_view_unittest.cc",
|
||||||
|
"views/search_result_list_view_unittest.cc",
|
||||||
|
"views/search_result_page_view_unittest.cc",
|
||||||
|
"views/search_result_tile_item_list_view_unittest.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":app_list",
|
||||||
|
":test_support",
|
||||||
|
"//ash/public/cpp/app_list/vector_icons",
|
||||||
|
"//base",
|
||||||
|
"//base/test:test_support",
|
||||||
|
"//mojo/core/embedder",
|
||||||
|
"//skia",
|
||||||
|
"//testing/gtest",
|
||||||
|
"//ui/accessibility",
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/chromeos/search_box",
|
||||||
|
"//ui/compositor",
|
||||||
|
"//ui/events:test_support",
|
||||||
|
"//ui/gfx:test_support",
|
||||||
|
"//ui/gl:test_support",
|
||||||
|
"//ui/keyboard",
|
||||||
|
"//ui/resources",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views:test_support",
|
||||||
|
]
|
||||||
|
|
||||||
|
data_deps = [
|
||||||
|
"//third_party/mesa:osmesa",
|
||||||
|
"//ui/resources:ui_test_pak_data",
|
||||||
|
]
|
||||||
|
}
|
57
ash/app_list/model/BUILD.gn
Normal file
57
ash/app_list/model/BUILD.gn
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
component("app_list_model") {
|
||||||
|
sources = [
|
||||||
|
"app_list_folder_item.cc",
|
||||||
|
"app_list_folder_item.h",
|
||||||
|
"app_list_item.cc",
|
||||||
|
"app_list_item.h",
|
||||||
|
"app_list_item_list.cc",
|
||||||
|
"app_list_item_list.h",
|
||||||
|
"app_list_item_list_observer.h",
|
||||||
|
"app_list_item_observer.h",
|
||||||
|
"app_list_model.cc",
|
||||||
|
"app_list_model.h",
|
||||||
|
"app_list_model_observer.h",
|
||||||
|
"app_list_view_state.h",
|
||||||
|
"folder_image.cc",
|
||||||
|
"folder_image.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "APP_LIST_MODEL_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/public/cpp:cpp",
|
||||||
|
"//base:i18n",
|
||||||
|
"//cc/paint",
|
||||||
|
"//components/sync",
|
||||||
|
"//skia",
|
||||||
|
"//third_party/icu",
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/gfx",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
component("search_model") {
|
||||||
|
sources = [
|
||||||
|
"search/search_box_model.cc",
|
||||||
|
"search/search_box_model.h",
|
||||||
|
"search/search_box_model_observer.h",
|
||||||
|
"search/search_model.cc",
|
||||||
|
"search/search_model.h",
|
||||||
|
"search/search_result.cc",
|
||||||
|
"search/search_result.h",
|
||||||
|
"search/search_result_observer.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "APP_LIST_MODEL_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/public/cpp:cpp",
|
||||||
|
"//base:i18n",
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/gfx",
|
||||||
|
]
|
||||||
|
}
|
34
ash/app_list/presenter/BUILD.gn
Normal file
34
ash/app_list/presenter/BUILD.gn
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//testing/test.gni")
|
||||||
|
|
||||||
|
assert(use_aura)
|
||||||
|
|
||||||
|
component("presenter") {
|
||||||
|
sources = [
|
||||||
|
"app_list_presenter_delegate.cc",
|
||||||
|
"app_list_presenter_delegate.h",
|
||||||
|
"app_list_presenter_export.h",
|
||||||
|
"app_list_presenter_impl.cc",
|
||||||
|
"app_list_presenter_impl.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "APP_LIST_PRESENTER_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//ash/app_list",
|
||||||
|
"//base",
|
||||||
|
"//mojo/public/cpp/bindings",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/compositor",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/views",
|
||||||
|
|
||||||
|
# Temporary dependency to fix compile flake in http://crbug.com/611898.
|
||||||
|
# TODO(tapted): Remove once http://crbug.com/612382 is fixed.
|
||||||
|
"//ui/accessibility:ax_enums_mojo",
|
||||||
|
]
|
||||||
|
}
|
24
ash/app_list/resources/BUILD.gn
Normal file
24
ash/app_list/resources/BUILD.gn
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//tools/grit/grit_rule.gni")
|
||||||
|
import("//tools/grit/repack.gni")
|
||||||
|
|
||||||
|
group("resources") {
|
||||||
|
public_deps = [
|
||||||
|
":resources_grd",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
grit("resources_grd") {
|
||||||
|
source = "app_list_resources.grd"
|
||||||
|
outputs = [
|
||||||
|
"grit/app_list_resources.h",
|
||||||
|
"grit/app_list_resources_map.cc",
|
||||||
|
"grit/app_list_resources_map.h",
|
||||||
|
"app_list_resources_100_percent.pak",
|
||||||
|
"app_list_resources_200_percent.pak",
|
||||||
|
"app_list_resources_300_percent.pak",
|
||||||
|
]
|
||||||
|
}
|
36
ash/app_menu/BUILD.gn
Normal file
36
ash/app_menu/BUILD.gn
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
|
||||||
|
assert(is_chromeos)
|
||||||
|
|
||||||
|
component("app_menu") {
|
||||||
|
sources = [
|
||||||
|
"app_menu_model_adapter.cc",
|
||||||
|
"app_menu_model_adapter.h",
|
||||||
|
"notification_item_view.cc",
|
||||||
|
"notification_item_view.h",
|
||||||
|
"notification_menu_controller.cc",
|
||||||
|
"notification_menu_controller.h",
|
||||||
|
"notification_menu_header_view.cc",
|
||||||
|
"notification_menu_header_view.h",
|
||||||
|
"notification_menu_view.cc",
|
||||||
|
"notification_menu_view.h",
|
||||||
|
"notification_overflow_view.cc",
|
||||||
|
"notification_overflow_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "APP_MENU_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/public/cpp",
|
||||||
|
"//base",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/message_center",
|
||||||
|
"//ui/strings:ui_strings_grit",
|
||||||
|
"//ui/views",
|
||||||
|
]
|
||||||
|
}
|
20
ash/assistant/ui/BUILD.gn
Normal file
20
ash/assistant/ui/BUILD.gn
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
|
||||||
|
assert(is_chromeos)
|
||||||
|
|
||||||
|
source_set("constants") {
|
||||||
|
sources = [
|
||||||
|
"assistant_ui_constants.cc",
|
||||||
|
"assistant_ui_constants.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//base",
|
||||||
|
"//skia",
|
||||||
|
"//ui/gfx",
|
||||||
|
]
|
||||||
|
}
|
29
ash/autoclick/common/BUILD.gn
Normal file
29
ash/autoclick/common/BUILD.gn
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
|
||||||
|
source_set("autoclick") {
|
||||||
|
sources = [
|
||||||
|
"autoclick_controller_common.cc",
|
||||||
|
"autoclick_controller_common.h",
|
||||||
|
"autoclick_controller_common_delegate.h",
|
||||||
|
"autoclick_ring_handler.cc",
|
||||||
|
"autoclick_ring_handler.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//base",
|
||||||
|
"//cc/paint",
|
||||||
|
"//skia",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/compositor",
|
||||||
|
"//ui/display",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/wm",
|
||||||
|
]
|
||||||
|
}
|
51
ash/components/autoclick/BUILD.gn
Normal file
51
ash/components/autoclick/BUILD.gn
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//services/service_manager/public/cpp/service.gni")
|
||||||
|
import("//services/service_manager/public/service_manifest.gni")
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
source_set("lib") {
|
||||||
|
sources = [
|
||||||
|
"autoclick_application.cc",
|
||||||
|
"autoclick_application.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/autoclick/common:autoclick",
|
||||||
|
"//ash/components/autoclick/public/mojom",
|
||||||
|
"//ash/public/cpp",
|
||||||
|
"//base",
|
||||||
|
"//mash/public/mojom",
|
||||||
|
"//mojo/public/cpp/bindings",
|
||||||
|
"//services/service_manager/public/cpp",
|
||||||
|
"//services/ui/public/cpp",
|
||||||
|
"//services/ui/public/interfaces",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus:for_mojo_application",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service("autoclick_app") {
|
||||||
|
sources = [
|
||||||
|
"main.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":lib",
|
||||||
|
"//base",
|
||||||
|
"//mojo/public/cpp/bindings",
|
||||||
|
"//services/service_manager/public/cpp",
|
||||||
|
"//ui/views/mus:for_mojo_application",
|
||||||
|
]
|
||||||
|
|
||||||
|
resources = [ "$root_out_dir/views_mus_resources.pak" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
service_manifest("manifest") {
|
||||||
|
name = "autoclick_app"
|
||||||
|
source = "manifest.json"
|
||||||
|
}
|
11
ash/components/autoclick/public/mojom/BUILD.gn
Normal file
11
ash/components/autoclick/public/mojom/BUILD.gn
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
mojom("mojom") {
|
||||||
|
sources = [
|
||||||
|
"autoclick.mojom",
|
||||||
|
]
|
||||||
|
}
|
11
ash/components/autoclick/public/mojom/autoclick.mojom
Normal file
11
ash/components/autoclick/public/mojom/autoclick.mojom
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module autoclick.mojom;
|
||||||
|
|
||||||
|
// Used by Chrome to set the time to wait in milliseconds from when the mouse
|
||||||
|
// stops moving to when the autoclick event is sent in autoclick_app.
|
||||||
|
interface AutoclickController {
|
||||||
|
SetAutoclickDelay(uint32 delay_in_milliseconds);
|
||||||
|
};
|
23
ash/components/cursor/BUILD.gn
Normal file
23
ash/components/cursor/BUILD.gn
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
source_set("cursor") {
|
||||||
|
sources = [
|
||||||
|
"cursor_view.cc",
|
||||||
|
"cursor_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/components/fast_ink",
|
||||||
|
"//base",
|
||||||
|
"//cc",
|
||||||
|
"//components/viz/common",
|
||||||
|
"//skia",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/events/ozone:events_ozone",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/views:views",
|
||||||
|
]
|
||||||
|
}
|
42
ash/components/fast_ink/BUILD.gn
Normal file
42
ash/components/fast_ink/BUILD.gn
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
source_set("fast_ink") {
|
||||||
|
sources = [
|
||||||
|
"fast_ink_pointer_controller.cc",
|
||||||
|
"fast_ink_pointer_controller.h",
|
||||||
|
"fast_ink_points.cc",
|
||||||
|
"fast_ink_points.h",
|
||||||
|
"fast_ink_view.cc",
|
||||||
|
"fast_ink_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//base",
|
||||||
|
"//cc",
|
||||||
|
"//components/viz/service",
|
||||||
|
"//gpu",
|
||||||
|
"//gpu/command_buffer/client:gles2_interface",
|
||||||
|
"//services/ui/public/interfaces",
|
||||||
|
"//skia",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/gl",
|
||||||
|
"//ui/views:views",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("unit_tests") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"fast_ink_points_unittest.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":fast_ink",
|
||||||
|
"//testing/gtest",
|
||||||
|
"//ui/events:test_support",
|
||||||
|
]
|
||||||
|
}
|
49
ash/components/quick_launch/BUILD.gn
Normal file
49
ash/components/quick_launch/BUILD.gn
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
import("//services/service_manager/public/cpp/service.gni")
|
||||||
|
import("//services/service_manager/public/service_manifest.gni")
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
import("//tools/grit/repack.gni")
|
||||||
|
|
||||||
|
source_set("lib") {
|
||||||
|
sources = [
|
||||||
|
"quick_launch_application.cc",
|
||||||
|
"quick_launch_application.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//base",
|
||||||
|
"//mash/public/mojom",
|
||||||
|
"//mojo/public/cpp/bindings",
|
||||||
|
"//services/catalog/public/mojom",
|
||||||
|
"//services/service_manager/public/cpp",
|
||||||
|
"//services/service_manager/public/mojom",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus:for_mojo_application",
|
||||||
|
"//url",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service("quick_launch_app") {
|
||||||
|
sources = [
|
||||||
|
"main.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":lib",
|
||||||
|
"//services/service_manager/public/cpp",
|
||||||
|
"//ui/views/mus:for_mojo_application",
|
||||||
|
]
|
||||||
|
|
||||||
|
data_deps = [
|
||||||
|
"//ui/views/mus:resources",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service_manifest("manifest") {
|
||||||
|
name = "quick_launch_app"
|
||||||
|
source = "manifest.json"
|
||||||
|
}
|
17
ash/components/quick_launch/public/mojom/BUILD.gn
Normal file
17
ash/components/quick_launch/public/mojom/BUILD.gn
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
group("mojom") {
|
||||||
|
public_deps = [
|
||||||
|
":constants",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
mojom("constants") {
|
||||||
|
sources = [
|
||||||
|
"constants.mojom",
|
||||||
|
]
|
||||||
|
}
|
7
ash/components/quick_launch/public/mojom/constants.mojom
Normal file
7
ash/components/quick_launch/public/mojom/constants.mojom
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module quick_launch.mojom;
|
||||||
|
|
||||||
|
const string kServiceName = "quick_launch_app";
|
16
ash/components/resources/BUILD.gn
Normal file
16
ash/components/resources/BUILD.gn
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//tools/grit/grit_rule.gni")
|
||||||
|
|
||||||
|
grit("resources") {
|
||||||
|
source = "ash_components_resources.grd"
|
||||||
|
outputs = [
|
||||||
|
"grit/ash_components_resources.h",
|
||||||
|
"grit/ash_components_resources_map.cc",
|
||||||
|
"grit/ash_components_resources_map.h",
|
||||||
|
"ash_components_resources_100_percent.pak",
|
||||||
|
"ash_components_resources_200_percent.pak",
|
||||||
|
]
|
||||||
|
}
|
73
ash/components/shortcut_viewer/BUILD.gn
Normal file
73
ash/components/shortcut_viewer/BUILD.gn
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//services/service_manager/public/service_manifest.gni")
|
||||||
|
|
||||||
|
# KSV: Keyboard Shortcut Viewer
|
||||||
|
source_set("lib") {
|
||||||
|
sources = [
|
||||||
|
"keyboard_shortcut_item.cc",
|
||||||
|
"keyboard_shortcut_item.h",
|
||||||
|
"keyboard_shortcut_viewer_metadata.cc",
|
||||||
|
"keyboard_shortcut_viewer_metadata.h",
|
||||||
|
"ksv_export.h",
|
||||||
|
"last_window_closed_observer.cc",
|
||||||
|
"last_window_closed_observer.h",
|
||||||
|
"shortcut_viewer_application.cc",
|
||||||
|
"shortcut_viewer_application.h",
|
||||||
|
"views/bubble_view.cc",
|
||||||
|
"views/bubble_view.h",
|
||||||
|
"views/keyboard_shortcut_item_list_view.cc",
|
||||||
|
"views/keyboard_shortcut_item_list_view.h",
|
||||||
|
"views/keyboard_shortcut_item_view.cc",
|
||||||
|
"views/keyboard_shortcut_item_view.h",
|
||||||
|
"views/keyboard_shortcut_view.cc",
|
||||||
|
"views/keyboard_shortcut_view.h",
|
||||||
|
"views/ksv_search_box_view.cc",
|
||||||
|
"views/ksv_search_box_view.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "KSV_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/components/shortcut_viewer/public/mojom",
|
||||||
|
"//ash/components/shortcut_viewer/vector_icons",
|
||||||
|
"//ash/components/strings",
|
||||||
|
"//ash/public/cpp",
|
||||||
|
"//ash/public/cpp/resources:ash_public_unscaled_resources",
|
||||||
|
"//cc/paint",
|
||||||
|
"//services/service_manager/public/cpp/",
|
||||||
|
"//ui/accessibility",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/chromeos/events",
|
||||||
|
"//ui/chromeos/search_box",
|
||||||
|
"//ui/events:events_base",
|
||||||
|
"//ui/events/devices",
|
||||||
|
"//ui/events/ozone:events_ozone_layout",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus",
|
||||||
|
"//ui/views/mus:resources",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service_manifest("manifest") {
|
||||||
|
name = "shortcut_viewer_app"
|
||||||
|
source = "manifest.json"
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("unit_tests") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"views/keyboard_shortcut_view_unittest.cc",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":lib",
|
||||||
|
"//ash:test_support_without_content",
|
||||||
|
"//base/test:test_support",
|
||||||
|
"//services/ui/public/cpp/input_devices:test_support",
|
||||||
|
"//testing/gtest",
|
||||||
|
"//ui/events:test_support",
|
||||||
|
"//ui/views",
|
||||||
|
]
|
||||||
|
}
|
15
ash/components/shortcut_viewer/public/mojom/BUILD.gn
Normal file
15
ash/components/shortcut_viewer/public/mojom/BUILD.gn
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
mojom("mojom") {
|
||||||
|
sources = [
|
||||||
|
"shortcut_viewer.mojom",
|
||||||
|
]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//mojo/public/mojom/base",
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module shortcut_viewer.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/time.mojom";
|
||||||
|
|
||||||
|
const string kServiceName = "shortcut_viewer_app";
|
||||||
|
|
||||||
|
// Used to toggle the Keyboard Shortcut Viewer window.
|
||||||
|
interface ShortcutViewer {
|
||||||
|
// |user_gesture_time| is the time of the user gesture that caused the window
|
||||||
|
// to show. Used for metrics.
|
||||||
|
Toggle(mojo_base.mojom.TimeTicks user_gesture_time);
|
||||||
|
};
|
||||||
|
|
40
ash/components/shortcut_viewer/vector_icons/BUILD.gn
Normal file
40
ash/components/shortcut_viewer/vector_icons/BUILD.gn
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//components/vector_icons/vector_icons.gni")
|
||||||
|
|
||||||
|
aggregate_vector_icons("ksv_vector_icons") {
|
||||||
|
icon_directory = "."
|
||||||
|
|
||||||
|
icons = [
|
||||||
|
"ksv_search_back.icon",
|
||||||
|
"ksv_search_bar.icon",
|
||||||
|
"ksv_search_close.icon",
|
||||||
|
"ksv_search_no_result.icon",
|
||||||
|
"ksv_separator_plus.icon",
|
||||||
|
"ksv_arrow_down.icon",
|
||||||
|
"ksv_arrow_left.icon",
|
||||||
|
"ksv_arrow_right.icon",
|
||||||
|
"ksv_arrow_up.icon",
|
||||||
|
"ksv_brightness_down.icon",
|
||||||
|
"ksv_brightness_up.icon",
|
||||||
|
"ksv_browser_back.icon",
|
||||||
|
"ksv_browser_forward.icon",
|
||||||
|
"ksv_fullscreen.icon",
|
||||||
|
"ksv_mute.icon",
|
||||||
|
"ksv_overview.icon",
|
||||||
|
"ksv_reload.icon",
|
||||||
|
"ksv_volume_down.icon",
|
||||||
|
"ksv_volume_up.icon",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("vector_icons") {
|
||||||
|
sources = get_target_outputs(":ksv_vector_icons")
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":ksv_vector_icons",
|
||||||
|
"//skia",
|
||||||
|
]
|
||||||
|
}
|
66
ash/components/strings/BUILD.gn
Normal file
66
ash/components/strings/BUILD.gn
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//tools/grit/grit_rule.gni")
|
||||||
|
|
||||||
|
grit("strings") {
|
||||||
|
source = "../ash_components_strings.grd"
|
||||||
|
outputs = [
|
||||||
|
"grit/ash_components_strings.h",
|
||||||
|
"ash_components_strings_am.pak",
|
||||||
|
"ash_components_strings_ar.pak",
|
||||||
|
"ash_components_strings_bg.pak",
|
||||||
|
"ash_components_strings_bn.pak",
|
||||||
|
"ash_components_strings_ca.pak",
|
||||||
|
"ash_components_strings_cs.pak",
|
||||||
|
"ash_components_strings_da.pak",
|
||||||
|
"ash_components_strings_de.pak",
|
||||||
|
"ash_components_strings_el.pak",
|
||||||
|
"ash_components_strings_en-GB.pak",
|
||||||
|
"ash_components_strings_en-US.pak",
|
||||||
|
"ash_components_strings_es-419.pak",
|
||||||
|
"ash_components_strings_es.pak",
|
||||||
|
"ash_components_strings_et.pak",
|
||||||
|
"ash_components_strings_fake-bidi.pak",
|
||||||
|
"ash_components_strings_fa.pak",
|
||||||
|
"ash_components_strings_fil.pak",
|
||||||
|
"ash_components_strings_fi.pak",
|
||||||
|
"ash_components_strings_fr.pak",
|
||||||
|
"ash_components_strings_gu.pak",
|
||||||
|
"ash_components_strings_he.pak",
|
||||||
|
"ash_components_strings_hi.pak",
|
||||||
|
"ash_components_strings_hr.pak",
|
||||||
|
"ash_components_strings_hu.pak",
|
||||||
|
"ash_components_strings_id.pak",
|
||||||
|
"ash_components_strings_it.pak",
|
||||||
|
"ash_components_strings_ja.pak",
|
||||||
|
"ash_components_strings_kn.pak",
|
||||||
|
"ash_components_strings_ko.pak",
|
||||||
|
"ash_components_strings_lt.pak",
|
||||||
|
"ash_components_strings_lv.pak",
|
||||||
|
"ash_components_strings_ml.pak",
|
||||||
|
"ash_components_strings_mr.pak",
|
||||||
|
"ash_components_strings_ms.pak",
|
||||||
|
"ash_components_strings_nb.pak",
|
||||||
|
"ash_components_strings_nl.pak",
|
||||||
|
"ash_components_strings_pl.pak",
|
||||||
|
"ash_components_strings_pt-BR.pak",
|
||||||
|
"ash_components_strings_pt-PT.pak",
|
||||||
|
"ash_components_strings_ro.pak",
|
||||||
|
"ash_components_strings_ru.pak",
|
||||||
|
"ash_components_strings_sk.pak",
|
||||||
|
"ash_components_strings_sl.pak",
|
||||||
|
"ash_components_strings_sr.pak",
|
||||||
|
"ash_components_strings_sv.pak",
|
||||||
|
"ash_components_strings_sw.pak",
|
||||||
|
"ash_components_strings_ta.pak",
|
||||||
|
"ash_components_strings_te.pak",
|
||||||
|
"ash_components_strings_th.pak",
|
||||||
|
"ash_components_strings_tr.pak",
|
||||||
|
"ash_components_strings_uk.pak",
|
||||||
|
"ash_components_strings_vi.pak",
|
||||||
|
"ash_components_strings_zh-CN.pak",
|
||||||
|
"ash_components_strings_zh-TW.pak",
|
||||||
|
]
|
||||||
|
}
|
51
ash/components/tap_visualizer/BUILD.gn
Normal file
51
ash/components/tap_visualizer/BUILD.gn
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//services/service_manager/public/service_manifest.gni")
|
||||||
|
|
||||||
|
source_set("lib") {
|
||||||
|
sources = [
|
||||||
|
"tap_renderer.cc",
|
||||||
|
"tap_renderer.h",
|
||||||
|
"tap_visualizer_app.cc",
|
||||||
|
"tap_visualizer_app.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/public/cpp",
|
||||||
|
"//base",
|
||||||
|
"//cc/paint",
|
||||||
|
"//services/service_manager/public/cpp",
|
||||||
|
"//services/ui/public/cpp",
|
||||||
|
"//services/ui/public/interfaces",
|
||||||
|
"//skia",
|
||||||
|
"//ui/compositor",
|
||||||
|
"//ui/events",
|
||||||
|
"//ui/gfx",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus:for_mojo_application",
|
||||||
|
"//ui/views/mus:resources",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
service_manifest("manifest") {
|
||||||
|
name = "tap_visualizer_app"
|
||||||
|
source = "manifest.json"
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("unit_tests") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"tap_visualizer_app_unittest.cc",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":lib",
|
||||||
|
"//testing/gtest",
|
||||||
|
"//ui/aura:test_support",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views:test_support",
|
||||||
|
"//ui/views/mus",
|
||||||
|
]
|
||||||
|
}
|
17
ash/components/tap_visualizer/public/mojom/BUILD.gn
Normal file
17
ash/components/tap_visualizer/public/mojom/BUILD.gn
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
group("mojom") {
|
||||||
|
public_deps = [
|
||||||
|
":constants",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
mojom("constants") {
|
||||||
|
sources = [
|
||||||
|
"constants.mojom",
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module tap_visualizer.mojom;
|
||||||
|
|
||||||
|
const string kServiceName = "tap_visualizer_app";
|
22
ash/keyboard/arc/BUILD.gn
Normal file
22
ash/keyboard/arc/BUILD.gn
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//build/config/ui.gni")
|
||||||
|
|
||||||
|
static_library("arc") {
|
||||||
|
sources = [
|
||||||
|
"arc_input_method_surface_manager.cc",
|
||||||
|
"arc_input_method_surface_manager.h",
|
||||||
|
"arc_virtual_keyboard_container_layout_manager.cc",
|
||||||
|
"arc_virtual_keyboard_container_layout_manager.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//ash/public/cpp",
|
||||||
|
"//base",
|
||||||
|
"//components/exo",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/gfx/geometry",
|
||||||
|
]
|
||||||
|
}
|
17
ash/login/resources/BUILD.gn
Normal file
17
ash/login/resources/BUILD.gn
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//tools/grit/grit_rule.gni")
|
||||||
|
|
||||||
|
grit("resources") {
|
||||||
|
source = "login_resources.grd"
|
||||||
|
outputs = [
|
||||||
|
"grit/login_resources.h",
|
||||||
|
"grit/login_resources_map.cc",
|
||||||
|
"grit/login_resources_map.h",
|
||||||
|
"login_resources_100_percent.pak",
|
||||||
|
"login_resources_200_percent.pak",
|
||||||
|
"login_resources_300_percent.pak",
|
||||||
|
]
|
||||||
|
}
|
160
ash/public/cpp/BUILD.gn
Normal file
160
ash/public/cpp/BUILD.gn
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
# C++ headers and sources that can be used outside ash.
|
||||||
|
component("cpp") {
|
||||||
|
sources = [
|
||||||
|
"accelerators.cc",
|
||||||
|
"accelerators.h",
|
||||||
|
"app_list/answer_card_contents_registry.cc",
|
||||||
|
"app_list/answer_card_contents_registry.h",
|
||||||
|
"app_list/app_list_config.cc",
|
||||||
|
"app_list/app_list_config.h",
|
||||||
|
"app_list/app_list_constants.cc",
|
||||||
|
"app_list/app_list_constants.h",
|
||||||
|
"app_list/app_list_features.cc",
|
||||||
|
"app_list/app_list_features.h",
|
||||||
|
"app_list/app_list_switches.cc",
|
||||||
|
"app_list/app_list_switches.h",
|
||||||
|
"app_list/app_list_types.cc",
|
||||||
|
"app_list/app_list_types.h",
|
||||||
|
"app_list/internal_app_id_constants.h",
|
||||||
|
"app_list/term_break_iterator.cc",
|
||||||
|
"app_list/term_break_iterator.h",
|
||||||
|
"app_list/tokenized_string.cc",
|
||||||
|
"app_list/tokenized_string.h",
|
||||||
|
"app_list/tokenized_string_char_iterator.cc",
|
||||||
|
"app_list/tokenized_string_char_iterator.h",
|
||||||
|
"app_list/tokenized_string_match.cc",
|
||||||
|
"app_list/tokenized_string_match.h",
|
||||||
|
"app_menu_constants.h",
|
||||||
|
"app_types.h",
|
||||||
|
"ash_constants.h",
|
||||||
|
"ash_features.cc",
|
||||||
|
"ash_features.h",
|
||||||
|
"ash_layout_constants.cc",
|
||||||
|
"ash_layout_constants.h",
|
||||||
|
"ash_pref_names.cc",
|
||||||
|
"ash_pref_names.h",
|
||||||
|
"ash_public_export.h",
|
||||||
|
"ash_switches.cc",
|
||||||
|
"ash_switches.h",
|
||||||
|
"ash_typography.cc",
|
||||||
|
"ash_typography.h",
|
||||||
|
"ash_view_ids.h",
|
||||||
|
"config.h",
|
||||||
|
"frame_border_hit_test.cc",
|
||||||
|
"frame_border_hit_test.h",
|
||||||
|
"immersive/immersive_context.cc",
|
||||||
|
"immersive/immersive_context.h",
|
||||||
|
"immersive/immersive_focus_watcher.h",
|
||||||
|
"immersive/immersive_fullscreen_controller.cc",
|
||||||
|
"immersive/immersive_fullscreen_controller.h",
|
||||||
|
"immersive/immersive_fullscreen_controller_delegate.h",
|
||||||
|
"immersive/immersive_gesture_handler.h",
|
||||||
|
"immersive/immersive_handler_factory.cc",
|
||||||
|
"immersive/immersive_handler_factory.h",
|
||||||
|
"immersive/immersive_revealed_lock.cc",
|
||||||
|
"immersive/immersive_revealed_lock.h",
|
||||||
|
"login_constants.h",
|
||||||
|
"menu_utils.cc",
|
||||||
|
"menu_utils.h",
|
||||||
|
"mus_property_mirror_ash.cc",
|
||||||
|
"mus_property_mirror_ash.h",
|
||||||
|
"network_icon_image_source.cc",
|
||||||
|
"network_icon_image_source.h",
|
||||||
|
"power_utils.cc",
|
||||||
|
"power_utils.h",
|
||||||
|
"remote_shelf_item_delegate.cc",
|
||||||
|
"remote_shelf_item_delegate.h",
|
||||||
|
"scale_utility.cc",
|
||||||
|
"scale_utility.h",
|
||||||
|
"session_types.h",
|
||||||
|
"shelf_item.cc",
|
||||||
|
"shelf_item.h",
|
||||||
|
"shelf_item_delegate.cc",
|
||||||
|
"shelf_item_delegate.h",
|
||||||
|
"shelf_model.cc",
|
||||||
|
"shelf_model.h",
|
||||||
|
"shelf_model_observer.h",
|
||||||
|
"shelf_prefs.cc",
|
||||||
|
"shelf_prefs.h",
|
||||||
|
"shelf_types.cc",
|
||||||
|
"shelf_types.h",
|
||||||
|
"shell_window_ids.cc",
|
||||||
|
"shell_window_ids.h",
|
||||||
|
"stylus_utils.cc",
|
||||||
|
"stylus_utils.h",
|
||||||
|
"wallpaper_types.h",
|
||||||
|
"window_pin_type.cc",
|
||||||
|
"window_pin_type.h",
|
||||||
|
"window_properties.cc",
|
||||||
|
"window_properties.h",
|
||||||
|
"window_state_type.cc",
|
||||||
|
"window_state_type.h",
|
||||||
|
"window_style.cc",
|
||||||
|
"window_style.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = [ "ASH_PUBLIC_IMPLEMENTATION" ]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//chromeos:power_manager_proto",
|
||||||
|
"//components/prefs",
|
||||||
|
"//services/ui/public/interfaces",
|
||||||
|
"//skia/public/interfaces",
|
||||||
|
"//ui/aura",
|
||||||
|
"//ui/chromeos/strings",
|
||||||
|
"//ui/display",
|
||||||
|
"//ui/events/devices",
|
||||||
|
"//ui/views",
|
||||||
|
"//ui/views/mus",
|
||||||
|
"//ui/wm",
|
||||||
|
]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//ash/public/interfaces:interfaces_internal",
|
||||||
|
"//base",
|
||||||
|
"//ui/gfx",
|
||||||
|
]
|
||||||
|
|
||||||
|
allow_circular_includes_from =
|
||||||
|
[ "//ash/public/interfaces:interfaces_internal" ]
|
||||||
|
|
||||||
|
output_name = "ash_public_cpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Using a test service because the traits need to pass handles around. Revisit
|
||||||
|
# this after Deserialize(Serialize()) API works with handles.
|
||||||
|
mojom("test_interfaces") {
|
||||||
|
visibility = [ ":unit_tests" ]
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"shelf_struct_traits_test_service.mojom",
|
||||||
|
]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//ash/public/interfaces:interfaces_internal",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("unit_tests") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"menu_utils_unittest.cc",
|
||||||
|
"power_utils_unittest.cc",
|
||||||
|
"shelf_model_unittest.cc",
|
||||||
|
"shelf_struct_mojom_traits_unittest.cc",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":cpp",
|
||||||
|
":test_interfaces",
|
||||||
|
"//base",
|
||||||
|
"//testing/gtest",
|
||||||
|
"//ui/gfx:test_support",
|
||||||
|
]
|
||||||
|
}
|
34
ash/public/cpp/app_list/vector_icons/BUILD.gn
Normal file
34
ash/public/cpp/app_list/vector_icons/BUILD.gn
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import("//components/vector_icons/vector_icons.gni")
|
||||||
|
|
||||||
|
aggregate_vector_icons("app_list_vector_icons") {
|
||||||
|
icon_directory = "."
|
||||||
|
|
||||||
|
icons = [
|
||||||
|
"ic_arrow_up.icon",
|
||||||
|
"ic_badge_instant.icon",
|
||||||
|
"ic_badge_play.icon",
|
||||||
|
"ic_badge_rating.icon",
|
||||||
|
"ic_bookmark.icon",
|
||||||
|
"ic_domain.icon",
|
||||||
|
"ic_equal.icon",
|
||||||
|
"ic_google_black.icon",
|
||||||
|
"ic_google_color.icon",
|
||||||
|
"ic_history.icon",
|
||||||
|
"ic_mic_black.icon",
|
||||||
|
"ic_search.icon",
|
||||||
|
"ic_search_engine_not_google.icon",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("vector_icons") {
|
||||||
|
sources = get_target_outputs(":app_list_vector_icons")
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":app_list_vector_icons",
|
||||||
|
"//skia",
|
||||||
|
]
|
||||||
|
}
|
13
ash/public/cpp/resources/BUILD.gn
Normal file
13
ash/public/cpp/resources/BUILD.gn
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//tools/grit/grit_rule.gni")
|
||||||
|
|
||||||
|
grit("ash_public_unscaled_resources") {
|
||||||
|
source = "ash_public_unscaled_resources.grd"
|
||||||
|
outputs = [
|
||||||
|
"grit/ash_public_unscaled_resources.h",
|
||||||
|
"ash_public_unscaled_resources.pak",
|
||||||
|
]
|
||||||
|
}
|
13
ash/public/cpp/shelf_struct_traits_test_service.mojom
Normal file
13
ash/public/cpp/shelf_struct_traits_test_service.mojom
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/shelf.mojom";
|
||||||
|
|
||||||
|
// A test echo interface for traits.
|
||||||
|
interface ShelfStructTraitsTestService {
|
||||||
|
[Sync]
|
||||||
|
EchoShelfItem(ShelfItem in) => (ShelfItem out);
|
||||||
|
};
|
53
ash/public/cpp/vector_icons/BUILD.gn
Normal file
53
ash/public/cpp/vector_icons/BUILD.gn
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
import("//components/vector_icons/vector_icons.gni")
|
||||||
|
|
||||||
|
# The icons in this target, unlike those in //ash/resources/vector_icons, are ok to use from outside of ash/.
|
||||||
|
aggregate_vector_icons("ash_public_vector_icons") {
|
||||||
|
icon_directory = "."
|
||||||
|
|
||||||
|
icons = [
|
||||||
|
"notification_assistant.icon",
|
||||||
|
"notification_captive_portal.icon",
|
||||||
|
"notification_cellular_alert.icon",
|
||||||
|
"notification_download.icon",
|
||||||
|
"notification_end_of_support.icon",
|
||||||
|
"notification_family_link.icon",
|
||||||
|
"notification_google.icon",
|
||||||
|
"notification_image.icon",
|
||||||
|
"notification_installed.icon",
|
||||||
|
"notification_linux.icon",
|
||||||
|
"notification_mobile_data.icon",
|
||||||
|
"notification_mobile_data_off.icon",
|
||||||
|
"notification_multi_device_setup.icon",
|
||||||
|
"notification_play_prism.icon",
|
||||||
|
"notification_printing.icon",
|
||||||
|
"notification_printing_done.icon",
|
||||||
|
"notification_printing_warning.icon",
|
||||||
|
"notification_settings.icon",
|
||||||
|
"notification_storage_full.icon",
|
||||||
|
"notification_supervised_user.icon",
|
||||||
|
"notification_vpn.icon",
|
||||||
|
"notification_warning.icon",
|
||||||
|
"notification_wifi_off.icon",
|
||||||
|
"window_control_close.icon",
|
||||||
|
"window_control_left_snapped.icon",
|
||||||
|
"window_control_maximize.icon",
|
||||||
|
"window_control_minimize.icon",
|
||||||
|
"window_control_restore.icon",
|
||||||
|
"window_control_right_snapped.icon",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("vector_icons") {
|
||||||
|
sources = get_target_outputs(":ash_public_vector_icons")
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
":ash_public_vector_icons",
|
||||||
|
"//base",
|
||||||
|
"//skia",
|
||||||
|
"//ui/gfx",
|
||||||
|
]
|
||||||
|
}
|
107
ash/public/interfaces/BUILD.gn
Normal file
107
ash/public/interfaces/BUILD.gn
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||||||
|
|
||||||
|
# Depend upon //ash/public/cpp, which has a public_dep on this. The two targets
|
||||||
|
# must be bundled together as the typemaps depend upon //ash/public/cpp,
|
||||||
|
# and //ash/public/cpp needs to depend on this for generated code (such as
|
||||||
|
# enums and constants).
|
||||||
|
mojom("interfaces_internal") {
|
||||||
|
visibility = [ "//ash/public/cpp:*" ]
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"accelerator_controller.mojom",
|
||||||
|
"accessibility_controller.mojom",
|
||||||
|
"accessibility_focus_ring_controller.mojom",
|
||||||
|
"app_list.mojom",
|
||||||
|
"ash_display_controller.mojom",
|
||||||
|
"ash_message_center_controller.mojom",
|
||||||
|
"assistant_controller.mojom",
|
||||||
|
"assistant_image_downloader.mojom",
|
||||||
|
"assistant_setup.mojom",
|
||||||
|
"assistant_volume_control.mojom",
|
||||||
|
"cast_config.mojom",
|
||||||
|
"client_image_registry.mojom",
|
||||||
|
"constants.mojom",
|
||||||
|
"cros_display_config.mojom",
|
||||||
|
"docked_magnifier_controller.mojom",
|
||||||
|
"event_properties.mojom",
|
||||||
|
"event_rewriter_controller.mojom",
|
||||||
|
"first_run_helper.mojom",
|
||||||
|
"highlighter_controller.mojom",
|
||||||
|
"ime_controller.mojom",
|
||||||
|
"ime_info.mojom",
|
||||||
|
"kiosk_app_info.mojom",
|
||||||
|
"locale.mojom",
|
||||||
|
"login_screen.mojom",
|
||||||
|
"login_user_info.mojom",
|
||||||
|
"media.mojom",
|
||||||
|
"menu.mojom",
|
||||||
|
"new_window.mojom",
|
||||||
|
"night_light_controller.mojom",
|
||||||
|
"note_taking_controller.mojom",
|
||||||
|
"pref_connector.mojom",
|
||||||
|
"process_creation_time_recorder.mojom",
|
||||||
|
"session_controller.mojom",
|
||||||
|
"shelf.mojom",
|
||||||
|
"shutdown.mojom",
|
||||||
|
"split_view.mojom",
|
||||||
|
"system_tray.mojom",
|
||||||
|
"tablet_mode.mojom",
|
||||||
|
"tray_action.mojom",
|
||||||
|
"update.mojom",
|
||||||
|
"user_info.mojom",
|
||||||
|
"voice_interaction_controller.mojom",
|
||||||
|
"volume.mojom",
|
||||||
|
"vpn_list.mojom",
|
||||||
|
"wallpaper.mojom",
|
||||||
|
"web_contents_manager.mojom",
|
||||||
|
"window_actions.mojom",
|
||||||
|
"window_pin_type.mojom",
|
||||||
|
"window_properties.mojom",
|
||||||
|
"window_state_type.mojom",
|
||||||
|
"window_style.mojom",
|
||||||
|
]
|
||||||
|
|
||||||
|
public_deps = [
|
||||||
|
"//chromeos/components/proximity_auth/public/interfaces",
|
||||||
|
"//chromeos/services/assistant/public/mojom",
|
||||||
|
"//components/account_id/interfaces",
|
||||||
|
"//components/arc/common:notifications",
|
||||||
|
"//components/sync/mojo:interfaces",
|
||||||
|
"//mojo/public/mojom/base",
|
||||||
|
"//services/preferences/public/mojom",
|
||||||
|
"//skia/public/interfaces",
|
||||||
|
"//ui/accessibility:ax_enums_mojo",
|
||||||
|
"//ui/base/ime/chromeos/public/interfaces",
|
||||||
|
"//ui/display/mojo:interfaces",
|
||||||
|
"//ui/events/mojo:interfaces",
|
||||||
|
"//ui/gfx/geometry/mojo",
|
||||||
|
"//ui/gfx/image/mojo:interfaces",
|
||||||
|
"//ui/gfx/range/mojo",
|
||||||
|
"//ui/message_center/public/mojo:mojo",
|
||||||
|
"//url/mojom:url_mojom_gurl",
|
||||||
|
]
|
||||||
|
|
||||||
|
component_output_prefix = "ash_public_interfaces_internal"
|
||||||
|
export_class_attribute = "ASH_PUBLIC_EXPORT"
|
||||||
|
export_define = "ASH_PUBLIC_IMPLEMENTATION=1"
|
||||||
|
export_header = "ash/public/cpp/ash_public_export.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
mojom("test_interfaces") {
|
||||||
|
testonly = true
|
||||||
|
sources = [
|
||||||
|
"shelf_test_api.mojom",
|
||||||
|
"shell_test_api.mojom",
|
||||||
|
"status_area_widget_test_api.mojom",
|
||||||
|
"system_tray_test_api.mojom",
|
||||||
|
"time_to_first_present_recorder_test_api.mojom",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//mojo/public/mojom/base",
|
||||||
|
"//ui/gfx/geometry/mojo",
|
||||||
|
]
|
||||||
|
}
|
16
ash/public/interfaces/accelerator_controller.mojom
Normal file
16
ash/public/interfaces/accelerator_controller.mojom
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/volume.mojom";
|
||||||
|
|
||||||
|
// Implemented by ash to delegate parts of keyboard accelerator handling back
|
||||||
|
// to chrome.
|
||||||
|
interface AcceleratorController {
|
||||||
|
// Sets the volume controller interface. This lives in chrome because chrome
|
||||||
|
// owns the D-Bus CrasAudioHandler implementation. Also the accessibility
|
||||||
|
// manager in chrome needs to know about volume changes.
|
||||||
|
SetVolumeController(VolumeController controller);
|
||||||
|
};
|
130
ash/public/interfaces/accessibility_controller.mojom
Normal file
130
ash/public/interfaces/accessibility_controller.mojom
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/time.mojom";
|
||||||
|
import "ui/accessibility/ax_enums.mojom";
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
// Alert sent to the accessibility api.
|
||||||
|
enum AccessibilityAlert {
|
||||||
|
// Default value, indicates no accessibility alert.
|
||||||
|
NONE,
|
||||||
|
|
||||||
|
// When caps lock is turned on.
|
||||||
|
CAPS_ON,
|
||||||
|
|
||||||
|
// When caps lock is turned off.
|
||||||
|
CAPS_OFF,
|
||||||
|
|
||||||
|
// When screen is turned on by tablet power button.
|
||||||
|
SCREEN_ON,
|
||||||
|
|
||||||
|
// When screen is turned off by tablet power button.
|
||||||
|
SCREEN_OFF,
|
||||||
|
|
||||||
|
// When window moved to another display by accelerators.
|
||||||
|
WINDOW_MOVED_TO_ANOTHER_DISPLAY,
|
||||||
|
|
||||||
|
// When the user attempts a keyboard command that requires a window to work,
|
||||||
|
// and none is available.
|
||||||
|
WINDOW_NEEDED,
|
||||||
|
|
||||||
|
// When the user enters window overview mode.
|
||||||
|
WINDOW_OVERVIEW_MODE_ENTERED
|
||||||
|
};
|
||||||
|
|
||||||
|
enum SelectToSpeakState {
|
||||||
|
// Select to Speak is not actively selecting text or speaking.
|
||||||
|
kSelectToSpeakStateInactive,
|
||||||
|
|
||||||
|
// Select to Speak is being used to actively select a new region. Note that
|
||||||
|
// it might also be speaking, but the selecting state takes precedence.
|
||||||
|
kSelectToSpeakStateSelecting,
|
||||||
|
|
||||||
|
// Select to Speak is currently speaking.
|
||||||
|
kSelectToSpeakStateSpeaking,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to control and query accessibility
|
||||||
|
// features.
|
||||||
|
interface AccessibilityController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(AccessibilityControllerClient client);
|
||||||
|
|
||||||
|
// Starts or stops darkening the screen (e.g. to allow chrome a11y extensions
|
||||||
|
// to darken the screen).
|
||||||
|
SetDarkenScreen(bool darken);
|
||||||
|
|
||||||
|
// Called when braille display state is changed.
|
||||||
|
BrailleDisplayStateChanged(bool connected);
|
||||||
|
|
||||||
|
// Sets the focus highlight rect using |bounds_in_screen|. Called when focus
|
||||||
|
// changed in page and a11y focus highlight feature is enabled.
|
||||||
|
SetFocusHighlightRect(gfx.mojom.Rect bounds_in_screen);
|
||||||
|
|
||||||
|
// Sets the text input caret bounds used to draw the caret highlight effect.
|
||||||
|
// For effciency, only sent when the caret highlight feature is enabled.
|
||||||
|
// Setting off-screen or empty bounds suppresses the highlight.
|
||||||
|
SetCaretBounds(gfx.mojom.Rect bounds_in_screen);
|
||||||
|
|
||||||
|
// Sets whether the accessibility panel is filling the entire screen (e.g. to
|
||||||
|
// show the expanded UI for the ChromeVox spoken feedback extension).
|
||||||
|
SetAccessibilityPanelFullscreen(bool fullscreen);
|
||||||
|
|
||||||
|
// Sets the current Select-to-Speak state. This should be used by the Select-
|
||||||
|
// to-Speak extension to inform ash of its updated state.
|
||||||
|
SetSelectToSpeakState(SelectToSpeakState state);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to request accessibility service from its client (e.g.
|
||||||
|
// Chrome).
|
||||||
|
interface AccessibilityControllerClient {
|
||||||
|
// Triggers an accessibility alert to give the user feedback.
|
||||||
|
TriggerAccessibilityAlert(AccessibilityAlert alert);
|
||||||
|
|
||||||
|
// Plays an earcon. Earcons are brief and distinctive sounds that indicate
|
||||||
|
// that their mapped event has occurred. The |sound_key| enums can be found in
|
||||||
|
// chromeos/audio/chromeos_sounds.h. This method exists because the browser
|
||||||
|
// owns all media playback.
|
||||||
|
PlayEarcon(int32 sound_key);
|
||||||
|
|
||||||
|
// Initiates play of shutdown sound and returns sound duration. This method
|
||||||
|
// exists because the browser owns all media playback.
|
||||||
|
PlayShutdownSound() => (mojo_base.mojom.TimeDelta sound_duration);
|
||||||
|
|
||||||
|
// Forwards an accessibility gesture from the touch exploration controller to
|
||||||
|
// ChromeVox.
|
||||||
|
HandleAccessibilityGesture(ax.mojom.Gesture gesture);
|
||||||
|
|
||||||
|
// Starts or stops dictation (type what you speak).
|
||||||
|
// Returns the new dictation state after the toggle.
|
||||||
|
ToggleDictation() => (bool dictation_on);
|
||||||
|
|
||||||
|
// Cancels all current and queued speech immediately.
|
||||||
|
SilenceSpokenFeedback();
|
||||||
|
|
||||||
|
// Called when we first detect two fingers are held down, which can be used to
|
||||||
|
// toggle spoken feedback on some touch-only devices.
|
||||||
|
OnTwoFingerTouchStart();
|
||||||
|
|
||||||
|
// Called when the user is no longer holding down two fingers (including
|
||||||
|
// releasing one, holding down three, or moving them).
|
||||||
|
OnTwoFingerTouchStop();
|
||||||
|
|
||||||
|
// Whether or not to enable toggling spoken feedback via holding down two
|
||||||
|
// fingers on the screen.
|
||||||
|
ShouldToggleSpokenFeedbackViaTouch() => (bool should_toggle);
|
||||||
|
|
||||||
|
// Plays tick sound indicating spoken feedback will be toggled after
|
||||||
|
// countdown.
|
||||||
|
PlaySpokenFeedbackToggleCountdown(int32 tick_count);
|
||||||
|
|
||||||
|
// Requests the Select-to-Speak extension to change its state. This lets users
|
||||||
|
// do the same things in tablet mode as with a keyboard. Specifically, if
|
||||||
|
// Select-to-Speak is not speaking, move to capturing state; if
|
||||||
|
// Select-to-Speak is speaking, cancel speaking and move to inactive state.
|
||||||
|
RequestSelectToSpeakStateChange();
|
||||||
|
};
|
@ -0,0 +1,41 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
enum FocusRingBehavior { FADE_OUT_FOCUS_RING, PERSIST_FOCUS_RING };
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to control and query accessibility
|
||||||
|
// focus ring features.
|
||||||
|
interface AccessibilityFocusRingController {
|
||||||
|
// Sets the focus ring color for the given caller.
|
||||||
|
SetFocusRingColor(uint32 skcolor, string caller_id);
|
||||||
|
|
||||||
|
// Resets the focus ring color back to the default for the given caller.
|
||||||
|
ResetFocusRingColor(string caller_id);
|
||||||
|
|
||||||
|
// Draws a focus ring around the given set of rects in screen coordinates. Use
|
||||||
|
// |focus_ring_behavior| to specify whether the focus ring should persist or
|
||||||
|
// fade out for the given caller.
|
||||||
|
SetFocusRing(array<gfx.mojom.Rect> rects_in_screen,
|
||||||
|
FocusRingBehavior focus_ring_behavior,
|
||||||
|
string caller_id);
|
||||||
|
|
||||||
|
// Hides focus ring on screen for the given caller.
|
||||||
|
HideFocusRing(string caller_id);
|
||||||
|
|
||||||
|
// Draws a highlight at the given rects in screen coordinates. Rects may be
|
||||||
|
// overlapping and will be merged into one layer. This looks similar to
|
||||||
|
// selecting a region with the cursor, except it is drawn in the foreground
|
||||||
|
// rather than behind a text layer.
|
||||||
|
// TODO(katie): Add |caller_id| to highlights as well if other Accessibility
|
||||||
|
// tools or extensions want to use this API.
|
||||||
|
SetHighlights(array<gfx.mojom.Rect> rects_in_screen, uint32 skcolor);
|
||||||
|
|
||||||
|
// Hides highlight on screen.
|
||||||
|
// TODO(katie): Add |caller_id| to highlights as well.
|
||||||
|
HideHighlights();
|
||||||
|
};
|
369
ash/public/interfaces/app_list.mojom
Normal file
369
ash/public/interfaces/app_list.mojom
Normal file
@ -0,0 +1,369 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/menu.mojom";
|
||||||
|
import "components/sync/mojo/syncer.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "mojo/public/mojom/base/unguessable_token.mojom";
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
import "ui/gfx/range/mojo/range.mojom";
|
||||||
|
|
||||||
|
// A structure holding the common information which is sent between ash and,
|
||||||
|
// chrome representing an app list item.
|
||||||
|
// This structure should be kept as small as possible so that minimum data
|
||||||
|
// is sent via mojo calls when an item is moved or reparented.
|
||||||
|
struct AppListItemMetadata {
|
||||||
|
string id; // The id of the app list item.
|
||||||
|
string name; // The corresponding app or folder's name of the item.
|
||||||
|
string short_name; // The corresponding app's short name of the item. It's
|
||||||
|
// empty if the app doesn't have one or it's a folder.
|
||||||
|
string folder_id; // The id of the item's folder.
|
||||||
|
syncer.mojom.StringOrdinal position; // The position of the item.
|
||||||
|
bool is_folder; // Whether this item is a folder.
|
||||||
|
gfx.mojom.ImageSkia? icon; // The icon of this item.
|
||||||
|
bool is_page_break; // Whether this item is a "page break" item.
|
||||||
|
};
|
||||||
|
|
||||||
|
// A structure holding the common information which is sent from chrome to ash,
|
||||||
|
// representing a search result.
|
||||||
|
// This structure should be kept as small as possible so that ash can get and
|
||||||
|
// render search results as early as possible.
|
||||||
|
struct SearchResultMetadata {
|
||||||
|
string id; // The id of the result.
|
||||||
|
mojo_base.mojom.String16 title; // The title of the result, e.g. an app's
|
||||||
|
// name, an autocomplete query, etc.
|
||||||
|
mojo_base.mojom.String16 details; // A detail string of this result.
|
||||||
|
array<SearchResultTag> title_tags; // How the title matches the query. See
|
||||||
|
// the SearchResultTag section for
|
||||||
|
// more details.
|
||||||
|
array<SearchResultTag> details_tags; // How the details match the query. See
|
||||||
|
// the SearchResultTag section for
|
||||||
|
// more details.
|
||||||
|
array<SearchResultAction> actions; // Actions that can be performed on this
|
||||||
|
// result. See the SearchResultAction
|
||||||
|
// section for more details.
|
||||||
|
float rating = -1.0; // The average rating score of the app
|
||||||
|
// corresponding to this result, ranged from 0 to
|
||||||
|
// 5. It's negative if there's no rating for the
|
||||||
|
// result.
|
||||||
|
mojo_base.mojom.String16 formatted_price; // A formatted price string, e.g.
|
||||||
|
// "$7.09", "HK$3.94", etc.
|
||||||
|
SearchResultType result_type; // The type of this result.
|
||||||
|
SearchResultDisplayType display_type = kList;
|
||||||
|
// How this result is displayed.
|
||||||
|
double display_score; // A score to determine the result display order.
|
||||||
|
bool is_omnibox_search; // Whether this result is searched from Omnibox.
|
||||||
|
bool is_installing; // Whether this result is installing.
|
||||||
|
mojo_base.mojom.UnguessableToken? answer_card_contents_token;
|
||||||
|
// A token used to render answer card, which is
|
||||||
|
// empty before initialized. It's illegal to pass
|
||||||
|
// an empty UnguessableToken across processes. So
|
||||||
|
// we use a null value when it's empty here.
|
||||||
|
gfx.mojom.Size? answer_card_size; // Preferred size of answer card. It is
|
||||||
|
// unset for non-answer-card results. For
|
||||||
|
// answer card results, it is set when
|
||||||
|
// the answer card WebContents finishes
|
||||||
|
// loading and its renderer notifies it
|
||||||
|
// about a new contents size.
|
||||||
|
gfx.mojom.ImageSkia? icon; // The icon of this result.
|
||||||
|
gfx.mojom.ImageSkia? badge_icon; // The badge icon of this result that
|
||||||
|
// indicates its type, e.g. installable from
|
||||||
|
// PlayStore, installable from WebStore,
|
||||||
|
// etc.
|
||||||
|
};
|
||||||
|
|
||||||
|
// All possible states of the app list.
|
||||||
|
enum AppListState {
|
||||||
|
kStateApps = 0,
|
||||||
|
kStateSearchResults,
|
||||||
|
kStateStart,
|
||||||
|
};
|
||||||
|
|
||||||
|
// The status of the app list model.
|
||||||
|
enum AppListModelStatus {
|
||||||
|
kStatusNormal,
|
||||||
|
kStatusSyncing, // Syncing apps or installing synced apps.
|
||||||
|
};
|
||||||
|
|
||||||
|
// How the result should be displayed. Do not change the order of these as
|
||||||
|
// they are used for metrics.
|
||||||
|
enum SearchResultDisplayType {
|
||||||
|
kNone = 0,
|
||||||
|
kList,
|
||||||
|
kTile,
|
||||||
|
kRecommendation,
|
||||||
|
kCard,
|
||||||
|
// Add new values here.
|
||||||
|
};
|
||||||
|
|
||||||
|
// Type of the search result, which is set in Chrome.
|
||||||
|
enum SearchResultType {
|
||||||
|
kInstalledApp, // Installed apps.
|
||||||
|
kPlayStoreApp, // Installable apps from PlayStore.
|
||||||
|
kInstantApp, // Instant apps.
|
||||||
|
kInternalApp, // Chrome OS apps.
|
||||||
|
kWebStoreApp, // Installable apps from WebStore.
|
||||||
|
kWebStoreSearch, // A search query in WebStore.
|
||||||
|
kOmnibox, // Results from Omninbox.
|
||||||
|
kLauncher, // Results from launcher search (currently only from Files).
|
||||||
|
kAnswerCard, // WebContents based answer card.
|
||||||
|
// Add new values here.
|
||||||
|
};
|
||||||
|
|
||||||
|
// A tagged range in search result text.
|
||||||
|
struct SearchResultTag {
|
||||||
|
// Similar to ACMatchClassification::Style, the style values are not
|
||||||
|
// mutually exclusive.
|
||||||
|
int16 styles;
|
||||||
|
gfx.mojom.Range range;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data representing an action that can be performed on a search result.
|
||||||
|
// An action could be represented as an icon set or as a blue button with
|
||||||
|
// a label. Icon set is chosen if label text is empty. Otherwise, a blue
|
||||||
|
// button with the label text will be used.
|
||||||
|
struct SearchResultActionImageLabel {
|
||||||
|
gfx.mojom.ImageSkia base_image;
|
||||||
|
gfx.mojom.ImageSkia hover_image;
|
||||||
|
gfx.mojom.ImageSkia pressed_image;
|
||||||
|
};
|
||||||
|
union SearchResultActionLabel {
|
||||||
|
SearchResultActionImageLabel image_label;
|
||||||
|
mojo_base.mojom.String16 text_label;
|
||||||
|
};
|
||||||
|
struct SearchResultAction {
|
||||||
|
mojo_base.mojom.String16 tooltip_text;
|
||||||
|
SearchResultActionLabel label;
|
||||||
|
};
|
||||||
|
|
||||||
|
// The Chrome app list (aka Launcher), is the place where user can find and
|
||||||
|
// organize all installed apps, or search for various types of information.
|
||||||
|
//
|
||||||
|
// For apps:
|
||||||
|
// The app list displays apps synced across devices based on a user account, in
|
||||||
|
// an order that can be modified by the user. It supports up-to-3-layer app
|
||||||
|
// organization, the root app list, folders, and apps:
|
||||||
|
// - Each app can stay in the root app list or a folder.
|
||||||
|
// - Each folder holds more than one apps, which means it'll automatically get
|
||||||
|
// removed when there's only one app left in it.
|
||||||
|
// - The OEM folder is a special folder where we cannot move items to/from it.
|
||||||
|
// And we cannot rename it.
|
||||||
|
// - Other folders are renamable.
|
||||||
|
// - Folders cannot hold folders.
|
||||||
|
// - Different items/folders never have a same GUID.
|
||||||
|
// - Every item/folder has a same GUID on different devices.
|
||||||
|
//
|
||||||
|
// For searching:
|
||||||
|
// The app list supports various kinds of searching (e.g. apps, onmibox, etc).
|
||||||
|
// And search results can be displayed in different formats (e.g. tiles, cards).
|
||||||
|
// - Result ids are url like string, e.g.
|
||||||
|
// "chrome-extension://mgndgikekgjfcpckkfioiadnlibdjbkf/",
|
||||||
|
// "play://hhbckbkcbnemggclionhhgaceohjfdkl", etc.
|
||||||
|
// - Different search results never have a same id.
|
||||||
|
// - Every search result has a same id on different devices.
|
||||||
|
// - Every search result can have a list of actions (e.g. install), see
|
||||||
|
// app_list::SearchResult::Action.
|
||||||
|
//
|
||||||
|
// Users can long press on any app list item or search result to show a context
|
||||||
|
// menu. A context menu has a list of commands (e.g. open, uninstall, etc.).
|
||||||
|
// - Different items/results may have different command lists.
|
||||||
|
// - Each item/result usually has a same command list, but not always. Consider
|
||||||
|
// when we pin an app to the shelf and when we unpin it, the context menu
|
||||||
|
// looks different.
|
||||||
|
// - Inside each command list, each command has its own unique command id.
|
||||||
|
// - A same command in different command lists has a unique command id, see
|
||||||
|
// app_list::AppContextMenu::CommandId.
|
||||||
|
|
||||||
|
// The Chrome app list has its UI running in Ash, and everything else running in
|
||||||
|
// Chrome (e.g. syncing, user profile, etc). This controller is implemented in
|
||||||
|
// Ash to handle calls from Chrome. These include:
|
||||||
|
// - When app list data changes in Chrome, it should notifies the UI models and
|
||||||
|
// views in Ash to get updated. This can happen while syncing, searching, etc.
|
||||||
|
// - When Chrome needs real-time UI information from Ash. This can happen while
|
||||||
|
// calculating recommended search results based on the app list item order.
|
||||||
|
// - When app list states in Chrome change that require UI's response. This can
|
||||||
|
// happen while installing/uninstalling apps and the app list gets toggled.
|
||||||
|
interface AppListController {
|
||||||
|
// Sets a client to handle calls from Ash.
|
||||||
|
SetClient(AppListClient client);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces that come from AppListModelUpdater:
|
||||||
|
// The following interfaces are called to update the app list model in Ash,
|
||||||
|
// including both the app list item model, search result model and search box
|
||||||
|
// model.
|
||||||
|
// Adds an item to AppListModel.
|
||||||
|
AddItem(AppListItemMetadata app_item);
|
||||||
|
// Adds an item into a certain folder in AppListModel.
|
||||||
|
AddItemToFolder(AppListItemMetadata app_item, string folder_id);
|
||||||
|
// Removes an item by its id from AppListModel.
|
||||||
|
RemoveItem(string id);
|
||||||
|
// Removes an item by its id, and also cleans up if its parent folder has a
|
||||||
|
// single child left.
|
||||||
|
RemoveUninstalledItem(string id);
|
||||||
|
// Moves the item with |id| to the folder with |folder_id|.
|
||||||
|
MoveItemToFolder(string id, string folder_id);
|
||||||
|
// Tells Ash what the current status of AppListModel should be,
|
||||||
|
// e.g. the model is under synchronization or in normal status.
|
||||||
|
SetStatus(AppListModelStatus status);
|
||||||
|
// Tells Ash what the current state of the app list should be,
|
||||||
|
// e.g. the user is searching for something, or showing apps, etc.
|
||||||
|
SetState(AppListState state);
|
||||||
|
// Highlights the given item in the app list. If not present and it is later
|
||||||
|
// added, the item will be highlighted after being added.
|
||||||
|
HighlightItemInstalledFromUI(string id);
|
||||||
|
// Sets whether the search engine is Google or not.
|
||||||
|
SetSearchEngineIsGoogle(bool is_google);
|
||||||
|
// Sets the text for screen readers on the search box, and updates the
|
||||||
|
// accessible names.
|
||||||
|
SetSearchTabletAndClamshellAccessibleName(
|
||||||
|
mojo_base.mojom.String16 tablet_accessible_name,
|
||||||
|
mojo_base.mojom.String16 clamshell_accessible_name);
|
||||||
|
// Sets the hint text to display when there is in input.
|
||||||
|
SetSearchHintText(mojo_base.mojom.String16 hint_text);
|
||||||
|
// Sets the text for the search box's Textfield and the voice search flag.
|
||||||
|
UpdateSearchBox(mojo_base.mojom.String16 text, bool initiated_by_user);
|
||||||
|
// Publishes search results to Ash to render them.
|
||||||
|
PublishSearchResults(array<SearchResultMetadata> results);
|
||||||
|
// Update the whole model, usually when profile changes happen in Chrome.
|
||||||
|
SetModelData(array<AppListItemMetadata> apps,
|
||||||
|
bool is_search_engine_google);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces only used by ChromeAppListItem:
|
||||||
|
// These interfaces are called when an item's data is updated in Chrome.
|
||||||
|
// Updates an item's metadata (e.g. name, position, etc).
|
||||||
|
SetItemMetadata(string id, AppListItemMetadata metadata);
|
||||||
|
// Updates an item's icon.
|
||||||
|
SetItemIcon(string id, gfx.mojom.ImageSkia? icon);
|
||||||
|
// Updates whether an item is installing.
|
||||||
|
SetItemIsInstalling(string id, bool is_installing);
|
||||||
|
// Updates the downloaded percentage of an item.
|
||||||
|
SetItemPercentDownloaded(string id, int32 percent_downloaded);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces for item querying:
|
||||||
|
// Returns a map from each item's id to its shown index in the app list.
|
||||||
|
GetIdToAppListIndexMap() => (map<string, uint16> indices);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces for AppListSyncableService:
|
||||||
|
// These interfaces are called while dealing with the OEM folder in the
|
||||||
|
// AppListSyncableService in Chrome.
|
||||||
|
// Finds the OEM folder or creates one if it doesn't exist.
|
||||||
|
// |oem_folder_name|: the expected name of the OEM folder while creating.
|
||||||
|
// |preferred_oem_position|: the preferred position of the OEM folder while
|
||||||
|
// creating; if it's invalid then the final position
|
||||||
|
// is determined in Ash.
|
||||||
|
// |oem_folder|: the meta data of the existing/created OEM folder.
|
||||||
|
FindOrCreateOemFolder(
|
||||||
|
string oem_folder_name,
|
||||||
|
syncer.mojom.StringOrdinal preferred_oem_position)
|
||||||
|
=> (AppListItemMetadata oem_folder);
|
||||||
|
// Resolves the position of the OEM folder.
|
||||||
|
// |preferred_oem_position|: the preferred position of the OEM folder; if it's
|
||||||
|
// invalid then the final position is determined in
|
||||||
|
// Ash.
|
||||||
|
// |oem_folder|: the meta data of the OEM folder, or null if it doesn't exist.
|
||||||
|
ResolveOemFolderPosition(
|
||||||
|
syncer.mojom.StringOrdinal preferred_oem_position)
|
||||||
|
=> (AppListItemMetadata? oem_folder);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces for ChromeSearchReult:
|
||||||
|
SetSearchResultMetadata(SearchResultMetadata metadata);
|
||||||
|
SetSearchResultIsInstalling(string result_id, bool is_installing);
|
||||||
|
SetSearchResultPercentDownloaded(string result_id, int32 percent_downloaded);
|
||||||
|
NotifySearchResultItemInstalled(string result_id);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces for views:
|
||||||
|
// Dismisses the app list.
|
||||||
|
DismissAppList();
|
||||||
|
// Returns bounds of a rectangle to show an AppInfo dialog.
|
||||||
|
GetAppInfoDialogBounds() => (gfx.mojom.Rect bounds);
|
||||||
|
// Shows the app list and switches to |state|.
|
||||||
|
ShowAppListAndSwitchToState(AppListState state);
|
||||||
|
// Shows the app list.
|
||||||
|
ShowAppList();
|
||||||
|
};
|
||||||
|
|
||||||
|
// In contrast to AppListController, this client is implemented in Chrome to
|
||||||
|
// handle calls from Ash. These include:
|
||||||
|
// - When Chrome components are needed to get involved in the user's actions on
|
||||||
|
// app list views. This can happen while the user is searching, clicking on
|
||||||
|
// any app list item, etc.
|
||||||
|
// - When view changes in Ash and we want to notify Chrome. This can happen
|
||||||
|
// while app list is performing animations.
|
||||||
|
// - When a user action on views need information from Chrome to complete. This
|
||||||
|
// can happen while populating context menu models, which depends on item data
|
||||||
|
// in Chrome.
|
||||||
|
interface AppListClient {
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces on searching:
|
||||||
|
// Triggers a search query.
|
||||||
|
// |trimmed_query|: the trimmed input texts from the search text field.
|
||||||
|
StartSearch(mojo_base.mojom.String16 trimmed_query);
|
||||||
|
// Opens a search result when its view is clicked or pressed.
|
||||||
|
// |result_id|: the id of the search result the user wants to open.
|
||||||
|
OpenSearchResult(string result_id, int32 event_flags);
|
||||||
|
// Invokes a custom action on a result with |result_id|.
|
||||||
|
// |action_index| corresponds to the index of an action on the search result,
|
||||||
|
// for example, installing. They are stored in SearchResult::actions_.
|
||||||
|
InvokeSearchResultAction(string result_id,
|
||||||
|
int32 action_index,
|
||||||
|
int32 event_flags);
|
||||||
|
// Returns the context menu model for the search result with |result_id|, or
|
||||||
|
// an empty array if there is currently no menu for the result.
|
||||||
|
GetSearchResultContextMenuModel(string result_id) => (array<MenuItem> items);
|
||||||
|
// Invoked when a context menu item of a search result is clicked.
|
||||||
|
// |result_id|: the clicked search result's id.
|
||||||
|
// |command_id|: the clicked menu item's command id.
|
||||||
|
// |event_flags|: flags from the event which triggered this command.
|
||||||
|
SearchResultContextMenuItemSelected(string result_id,
|
||||||
|
int32 command_id,
|
||||||
|
int32 event_flags);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces on the app list UI:
|
||||||
|
// Invoked when the app list is shown in the display with |display_id|.
|
||||||
|
ViewShown(int64 display_id);
|
||||||
|
// Invoked when the app list is closed.
|
||||||
|
ViewClosing();
|
||||||
|
// Notifies target visibility changes of the app list.
|
||||||
|
OnAppListTargetVisibilityChanged(bool visible);
|
||||||
|
// Notifies visibility changes of the app list.
|
||||||
|
OnAppListVisibilityChanged(bool visible);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces on app list items:
|
||||||
|
// Activates (opens) the item with |id|.
|
||||||
|
ActivateItem(string id, int32 event_flags);
|
||||||
|
// Returns the context menu model for the item with |id|, or an empty array if
|
||||||
|
// there is currently no menu for the item (e.g. during install).
|
||||||
|
GetContextMenuModel(string id) => (array<MenuItem> items);
|
||||||
|
// Invoked when a context menu item of an app list item is clicked.
|
||||||
|
// |id|: the clicked AppListItem's id.
|
||||||
|
// |command_id|: the clicked menu item's command id.
|
||||||
|
// |event_flags|: flags from the event which triggered this command.
|
||||||
|
ContextMenuItemSelected(string id, int32 command_id, int32 event_flags);
|
||||||
|
// Invoked when a folder is created in Ash (e.g. merge items into a folder).
|
||||||
|
OnFolderCreated(AppListItemMetadata folder);
|
||||||
|
// Invoked when a folder has only one item left and so gets removed.
|
||||||
|
OnFolderDeleted(AppListItemMetadata folder);
|
||||||
|
// Invoked when user changes a folder's name or an item's position.
|
||||||
|
OnItemUpdated(AppListItemMetadata folder);
|
||||||
|
// Invoked when a "page break" item is added with |id| and |position|.
|
||||||
|
OnPageBreakItemAdded(string id, syncer.mojom.StringOrdinal position);
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces on voice interaction:
|
||||||
|
// Starts a voice interaction session.
|
||||||
|
StartVoiceInteractionSession();
|
||||||
|
// Starts or stops voice interaction session based on current state.
|
||||||
|
ToggleVoiceInteractionSession();
|
||||||
|
};
|
21
ash/public/interfaces/app_list.typemap
Normal file
21
ash/public/interfaces/app_list.typemap
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
mojom = "//ash/public/interfaces/app_list.mojom"
|
||||||
|
public_headers = [ "//ash/public/cpp/app_list/app_list_types.h" ]
|
||||||
|
traits_headers = [ "//ash/public/cpp/app_list/app_list_struct_traits.h" ]
|
||||||
|
sources = [
|
||||||
|
"//ash/public/cpp/app_list/app_list_struct_traits.cc",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//ui/gfx/range/mojo:struct_traits",
|
||||||
|
]
|
||||||
|
type_mappings = [
|
||||||
|
"ash.mojom.AppListState=ash::AppListState",
|
||||||
|
"ash.mojom.AppListModelStatus=ash::AppListModelStatus",
|
||||||
|
"ash.mojom.SearchResultType=ash::SearchResultType",
|
||||||
|
"ash.mojom.SearchResultDisplayType=ash::SearchResultDisplayType",
|
||||||
|
"ash.mojom.SearchResultTag=ash::SearchResultTag",
|
||||||
|
"ash.mojom.SearchResultAction=ash::SearchResultAction",
|
||||||
|
]
|
18
ash/public/interfaces/ash_display_controller.mojom
Normal file
18
ash/public/interfaces/ash_display_controller.mojom
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Allows configuring various display related state.
|
||||||
|
interface AshDisplayController {
|
||||||
|
// ============================ Virtual Terminal ============================
|
||||||
|
|
||||||
|
// Take control of all display output. This is called when switching from the
|
||||||
|
// virtual terminal back to Chrome in response to a dbus message.
|
||||||
|
TakeDisplayControl() => (bool status);
|
||||||
|
|
||||||
|
// Relinquish control of all display output. This is called when switching
|
||||||
|
// from Chrome to the virtual terminal in response to a dbus message.
|
||||||
|
RelinquishDisplayControl() => (bool status);
|
||||||
|
};
|
95
ash/public/interfaces/ash_message_center_controller.mojom
Normal file
95
ash/public/interfaces/ash_message_center_controller.mojom
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "components/arc/common/notifications.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
import "ui/message_center/public/mojo/notification.mojom";
|
||||||
|
import "ui/message_center/public/mojo/notifier_id.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "mojo/public/mojom/base/unguessable_token.mojom";
|
||||||
|
|
||||||
|
// A struct that contains information for presenting a notifier in a settings
|
||||||
|
// panel.
|
||||||
|
struct NotifierUiData {
|
||||||
|
// The notifier (e.g. an extension).
|
||||||
|
message_center.mojom.NotifierId notifier_id;
|
||||||
|
|
||||||
|
// The user-visible name of the notifier (e.g. an extension's name).
|
||||||
|
mojo_base.mojom.String16 name;
|
||||||
|
|
||||||
|
// True if notifications from the notifier are presently enabled.
|
||||||
|
bool enabled;
|
||||||
|
|
||||||
|
// True if the setting is enforced by administrator and the user can't change.
|
||||||
|
bool enforced;
|
||||||
|
|
||||||
|
// An icon displayed next to the name.
|
||||||
|
gfx.mojom.ImageSkia? icon;
|
||||||
|
};
|
||||||
|
|
||||||
|
// The message center controller funnels notification requests from the client
|
||||||
|
// to the MessageCenter.
|
||||||
|
interface AshMessageCenterController {
|
||||||
|
SetClient(associated AshMessageCenterClient client);
|
||||||
|
|
||||||
|
// Sets the ARC notification instance.
|
||||||
|
SetArcNotificationsInstance(arc.mojom.NotificationsInstance instance);
|
||||||
|
|
||||||
|
// Shows a notification. |display_token| will be used to reference this
|
||||||
|
// notification for AshMessageCenterClient::Close().
|
||||||
|
ShowClientNotification(message_center.mojom.Notification notification,
|
||||||
|
mojo_base.mojom.UnguessableToken display_token);
|
||||||
|
|
||||||
|
// Closes a notification by the notification ID.
|
||||||
|
CloseClientNotification(string id);
|
||||||
|
|
||||||
|
UpdateNotifierIcon(message_center.mojom.NotifierId notifier_id,
|
||||||
|
gfx.mojom.ImageSkia icon);
|
||||||
|
|
||||||
|
NotifierEnabledChanged(message_center.mojom.NotifierId notifier_id,
|
||||||
|
bool enabled);
|
||||||
|
|
||||||
|
// Gets a list of all the notifications in the message center.
|
||||||
|
GetActiveNotifications() =>
|
||||||
|
(array<message_center.mojom.Notification> notifications);
|
||||||
|
};
|
||||||
|
|
||||||
|
// The message center client interface mimics
|
||||||
|
// message_center::NotificationDelegate. The ID strings match the id passed in
|
||||||
|
// |notification| in ShowClientNotification and the format of the ID is up to
|
||||||
|
// the client.
|
||||||
|
interface AshMessageCenterClient {
|
||||||
|
// Called when a notification previously displayed by the client is closed.
|
||||||
|
HandleNotificationClosed(mojo_base.mojom.UnguessableToken display_token,
|
||||||
|
bool by_user);
|
||||||
|
|
||||||
|
// Called when the body of a notification is clicked.
|
||||||
|
HandleNotificationClicked(string id);
|
||||||
|
|
||||||
|
// Called when a notification that has buttons (e.g., "Learn more") receives a
|
||||||
|
// click on one of the buttons. |reply| is a user-provided string for cases
|
||||||
|
// where the button had a text input field attached to it.
|
||||||
|
HandleNotificationButtonClicked(string id, int32 button_index,
|
||||||
|
mojo_base.mojom.String16? reply);
|
||||||
|
|
||||||
|
// Called when a notification's settings button has been pressed (and the
|
||||||
|
// handler is SettingsButtonHandler::DELEGATE).
|
||||||
|
HandleNotificationSettingsButtonClicked(string id);
|
||||||
|
|
||||||
|
// Called when a notification has been disabled (via inline settings).
|
||||||
|
DisableNotification(string id);
|
||||||
|
|
||||||
|
// Called when a user enables or disables notifications from the given
|
||||||
|
// notifier.
|
||||||
|
SetNotifierEnabled(message_center.mojom.NotifierId notifier_id, bool enabled);
|
||||||
|
|
||||||
|
// Asks the client for a list of notifiers and associated UI information to be
|
||||||
|
// displayed in a settings panel.
|
||||||
|
GetNotifierList() => (array<NotifierUiData> notifiers);
|
||||||
|
|
||||||
|
// Gets ARC app id from a given package name.
|
||||||
|
GetArcAppIdByPackageName(string package_name) => (string app_id);
|
||||||
|
};
|
37
ash/public/interfaces/assistant_controller.mojom
Normal file
37
ash/public/interfaces/assistant_controller.mojom
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/assistant_image_downloader.mojom";
|
||||||
|
import "ash/public/interfaces/web_contents_manager.mojom";
|
||||||
|
import "ash/public/interfaces/assistant_setup.mojom";
|
||||||
|
import "chromeos/services/assistant/public/mojom/assistant.mojom";
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
// Interface to AssistantController which is owned by Shell in Ash. This is
|
||||||
|
// typically used by the Assistant service to provide the controller with an
|
||||||
|
// interface to itself, as well as by the Assistant client in chrome/browser to
|
||||||
|
// provide interfaces to delegates which depend on browser.
|
||||||
|
interface AssistantController {
|
||||||
|
// Provides a reference to the underlying |assistant| service.
|
||||||
|
SetAssistant(chromeos.assistant.mojom.Assistant assistant);
|
||||||
|
|
||||||
|
// Provides an interface to the |assistant_image_downloader| owned by
|
||||||
|
// AssistantClient.
|
||||||
|
SetAssistantImageDownloader(
|
||||||
|
AssistantImageDownloader assistant_image_downloader);
|
||||||
|
|
||||||
|
// Provides an interface to the |web_contents_manager| owned by
|
||||||
|
// AssistantClient.
|
||||||
|
SetWebContentsManager(WebContentsManager web_contents_manager);
|
||||||
|
|
||||||
|
// Provides an interface to the |assistant_setup| owned by AssistantClient.
|
||||||
|
SetAssistantSetup(AssistantSetup assistant_setup);
|
||||||
|
|
||||||
|
// Requests screenshot of specified |rect| region and returns the screenshot
|
||||||
|
// encoded in JPEG format. If |rect| is empty, it returns fullscreen
|
||||||
|
// screenshot.
|
||||||
|
RequestScreenshot(gfx.mojom.Rect rect) => (array<uint8> screenshot);
|
||||||
|
};
|
20
ash/public/interfaces/assistant_image_downloader.mojom
Normal file
20
ash/public/interfaces/assistant_image_downloader.mojom
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "components/account_id/interfaces/account_id.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
import "url/mojom/url.mojom";
|
||||||
|
|
||||||
|
// Interface for a class which is responsible for downloading images on behalf
|
||||||
|
// of the Assistant UI in ash.
|
||||||
|
interface AssistantImageDownloader {
|
||||||
|
// Downloads the image found at |url| for the profile associated with
|
||||||
|
// |account_id|. On completion, the supplied callback is run with the
|
||||||
|
// downloaded |image|. In the event that the download attempt fails, a NULL
|
||||||
|
// image will be returned.
|
||||||
|
Download(signin.mojom.AccountId account_id, url.mojom.Url url)
|
||||||
|
=> (gfx.mojom.ImageSkia image);
|
||||||
|
};
|
13
ash/public/interfaces/assistant_setup.mojom
Normal file
13
ash/public/interfaces/assistant_setup.mojom
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Interface for a class which is responsible for start Assistant OptIn flow.
|
||||||
|
interface AssistantSetup {
|
||||||
|
// Start the assistant setup flow.
|
||||||
|
// |completed| is true if the user has completed the entire flow and opted in
|
||||||
|
// to using assistant.
|
||||||
|
StartAssistantOptInFlow() => (bool completed);
|
||||||
|
};
|
27
ash/public/interfaces/assistant_volume_control.mojom
Normal file
27
ash/public/interfaces/assistant_volume_control.mojom
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Interface to control system volume through Ash.
|
||||||
|
interface AssistantVolumeControl {
|
||||||
|
// Sets system volume to |volume|, which is between 0 - 100.
|
||||||
|
SetVolume(int32 volume, bool user_initiated);
|
||||||
|
|
||||||
|
// Sets mute state to |muted|.
|
||||||
|
SetMuted(bool muted);
|
||||||
|
|
||||||
|
// Adds volume observer. The observer will be immediately notified of volume
|
||||||
|
// and mute status when added.
|
||||||
|
AddVolumeObserver(VolumeObserver observer);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Observes volume state changes.
|
||||||
|
interface VolumeObserver {
|
||||||
|
// Called when volume is updated.
|
||||||
|
OnVolumeChanged(int32 volume);
|
||||||
|
|
||||||
|
// Called when mute state changed.
|
||||||
|
OnMuteStateChanged(bool muted);
|
||||||
|
};
|
78
ash/public/interfaces/cast_config.mojom
Normal file
78
ash/public/interfaces/cast_config.mojom
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// The type of icon the sink is associated with. These values match
|
||||||
|
// media_router::SinkIconType.
|
||||||
|
enum SinkIconType {
|
||||||
|
CAST = 0,
|
||||||
|
CAST_AUDIO_GROUP = 1,
|
||||||
|
CAST_AUDIO = 2,
|
||||||
|
MEETING = 3,
|
||||||
|
HANGOUT = 4,
|
||||||
|
EDUCATION = 5,
|
||||||
|
WIRED_DISPLAY = 6,
|
||||||
|
GENERIC = 7
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CastSink {
|
||||||
|
string id;
|
||||||
|
string name;
|
||||||
|
string domain;
|
||||||
|
|
||||||
|
// Icon which describes the type of sink media is being routed to.
|
||||||
|
SinkIconType sink_icon_type = SinkIconType.GENERIC;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ContentSource {
|
||||||
|
UNKNOWN,
|
||||||
|
TAB,
|
||||||
|
DESKTOP
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CastRoute {
|
||||||
|
string id;
|
||||||
|
string title;
|
||||||
|
|
||||||
|
// Is the activity source this computer? ie, are we mirroring the display?
|
||||||
|
bool is_local_source = false;
|
||||||
|
|
||||||
|
// What is source of the content? For example, we could be DIAL casting a
|
||||||
|
// tab or mirroring the entire desktop.
|
||||||
|
ContentSource content_source = ContentSource.UNKNOWN;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SinkAndRoute {
|
||||||
|
CastSink sink;
|
||||||
|
CastRoute route;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Allows clients (e.g. Chrome browser) to interface with the cast item in the
|
||||||
|
// system tray.
|
||||||
|
interface CastConfig {
|
||||||
|
// Sets the client interface. This client interface will receive commands from
|
||||||
|
// ash and provide OnDevicesUpdated() calls.
|
||||||
|
SetClient(associated CastConfigClient client);
|
||||||
|
|
||||||
|
// Invoked whenever there is new sink or route information available.
|
||||||
|
OnDevicesUpdated(array<SinkAndRoute> device);
|
||||||
|
};
|
||||||
|
|
||||||
|
// This delegate allows the UI code in ash, e.g. |TrayCastDetailedView|,
|
||||||
|
// to access the cast system.
|
||||||
|
//
|
||||||
|
// TODO(erg): Eventually, this should no longer be exported by chrome, but
|
||||||
|
// should be exported by a separate cast service.
|
||||||
|
interface CastConfigClient {
|
||||||
|
// Request fresh data from the backend. When the data is available, all
|
||||||
|
// registered observers will get called.
|
||||||
|
RequestDeviceRefresh();
|
||||||
|
|
||||||
|
// Initiate a casting session to |sink|.
|
||||||
|
CastToSink(CastSink sink);
|
||||||
|
|
||||||
|
// A user-initiated request to stop the given cast session.
|
||||||
|
StopCasting(CastRoute route);
|
||||||
|
};
|
24
ash/public/interfaces/client_image_registry.mojom
Normal file
24
ash/public/interfaces/client_image_registry.mojom
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/unguessable_token.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
|
||||||
|
interface ClientImageRegistry {
|
||||||
|
// Tells Ash about an image which the client will later refer to by |token|.
|
||||||
|
// This allows clients such as Chrome to repeatedly use or reference the same
|
||||||
|
// image without serializing/deserializing every time. If the token already
|
||||||
|
// references another icon, this will replace it.
|
||||||
|
RegisterImage(mojo_base.mojom.UnguessableToken token,
|
||||||
|
gfx.mojom.ImageSkia icon);
|
||||||
|
|
||||||
|
// Tells Ash that the client which registered the given token and its
|
||||||
|
// associated image will no longer use the image. This should be called at
|
||||||
|
// most once for every unique registered token. In the future, if Ash handles
|
||||||
|
// client restart, this will need to be called automatically for crashed
|
||||||
|
// clients.
|
||||||
|
ForgetImage(mojo_base.mojom.UnguessableToken token);
|
||||||
|
};
|
7
ash/public/interfaces/constants.mojom
Normal file
7
ash/public/interfaces/constants.mojom
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
const string kServiceName = "ash";
|
275
ash/public/interfaces/cros_display_config.mojom
Normal file
275
ash/public/interfaces/cros_display_config.mojom
Normal file
@ -0,0 +1,275 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
import "ui/display/mojo/display.mojom";
|
||||||
|
|
||||||
|
// All points, bounds, and insets are in display pixels unless otherwise
|
||||||
|
// sepcified.
|
||||||
|
|
||||||
|
// SetDisplayLayoutInfo or SetDisplayProperties result.
|
||||||
|
enum DisplayConfigResult {
|
||||||
|
kSuccess = 0,
|
||||||
|
kInvalidOperationError,
|
||||||
|
kInvalidDisplayIdError,
|
||||||
|
kUnifiedNotEnabledError,
|
||||||
|
kPropertyValueOutOfRangeError,
|
||||||
|
kNotSupportedOnInternalDisplayError,
|
||||||
|
kNegativeValueError,
|
||||||
|
kSetDisplayModeError,
|
||||||
|
kInvalidDisplayLayoutError,
|
||||||
|
kMirrorModeSingleDisplayError,
|
||||||
|
kMirrorModeSourceIdError,
|
||||||
|
kMirrorModeDestIdError,
|
||||||
|
kCalibrationNotAvailableError,
|
||||||
|
kCalibrationNotStartedError,
|
||||||
|
kCalibrationInProgressError,
|
||||||
|
kCalibrationInvalidDataError,
|
||||||
|
kCalibrationFailedError,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Describes how the displays are laid out.
|
||||||
|
enum DisplayLayoutMode {
|
||||||
|
// In normal mode displays are laid out as described by
|
||||||
|
// DisplayLayoutInfo.layouts.
|
||||||
|
kNormal = 0,
|
||||||
|
// In unified desktop mode, a single desktop will be stretched across all
|
||||||
|
// available displays.
|
||||||
|
kUnified,
|
||||||
|
// In mirrored mode, the display defined by DisplayLayoutInfo.mirrorSourceId
|
||||||
|
// will be mirrored in the displays defined by
|
||||||
|
// DisplayLayoutInfo.mirrorDestinationIds, or in all other displays if
|
||||||
|
// mirrorDestinationIds is empty.
|
||||||
|
kMirrored
|
||||||
|
};
|
||||||
|
|
||||||
|
// Describes a display edge.
|
||||||
|
enum DisplayLayoutPosition {
|
||||||
|
kTop = 0,
|
||||||
|
kRight,
|
||||||
|
kBottom,
|
||||||
|
kLeft
|
||||||
|
};
|
||||||
|
|
||||||
|
// Describes an overscan or touch calibration operation.
|
||||||
|
enum DisplayConfigOperation {
|
||||||
|
kStart = 0,
|
||||||
|
kAdjust,
|
||||||
|
kReset,
|
||||||
|
kComplete,
|
||||||
|
kShowNative,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines a pair of display + touch points used for touch calibration.
|
||||||
|
struct TouchCalibrationPair {
|
||||||
|
// The coordinates of the display point.
|
||||||
|
gfx.mojom.Point display_point;
|
||||||
|
// The coordinates of the touch point corresponding to the display point.
|
||||||
|
gfx.mojom.Point touch_point;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines the data required for touch calibration.
|
||||||
|
struct TouchCalibration {
|
||||||
|
// Must contain exactly four pairs of touch calibration points.
|
||||||
|
array<TouchCalibrationPair> pairs;
|
||||||
|
// Width and height of the display area when the touch calibration was
|
||||||
|
// performed.
|
||||||
|
gfx.mojom.Size bounds;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines the layout of a single display.
|
||||||
|
struct DisplayLayout {
|
||||||
|
// The unique identifier of the display.
|
||||||
|
string id;
|
||||||
|
// The unique identifier of the parent display. Empty for the root display.
|
||||||
|
string parent_id;
|
||||||
|
// The edge of the display that is shared with the parent display. Ignored for
|
||||||
|
// the root display.
|
||||||
|
DisplayLayoutPosition position;
|
||||||
|
// The offset of the display along the connected edge. 0 indicates that
|
||||||
|
// the topmost or leftmost corner is aligned.
|
||||||
|
int32 offset;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines the layout mode and details.
|
||||||
|
struct DisplayLayoutInfo {
|
||||||
|
// The layout mode to use, see DisplayLayoutMode for details.
|
||||||
|
DisplayLayoutMode layout_mode;
|
||||||
|
// Ignored if If layout_mode is not kMirrored. Otherwise, if provided,
|
||||||
|
// specifies the unique identifier of the source display for mirroring. If
|
||||||
|
// not provided, mirror_destination_ids will be ignored and default ('normal')
|
||||||
|
// mirrored mode will be enabled.
|
||||||
|
string? mirror_source_id;
|
||||||
|
// Ignored if layout_mode is not kMirrored. Otherwise, if provided, specifies
|
||||||
|
// the unique identifiers of the displays to mirror the source display. If not
|
||||||
|
// provided or empty, all displays will mirror the source display.
|
||||||
|
array<string>? mirror_destination_ids;
|
||||||
|
// An array of layouts describing a directed graph of displays. Required if
|
||||||
|
// layout_mode is kNormal or kMirrored and not all displays are mirrored
|
||||||
|
// ('mixed' mode). Ignored if layout_mode is kUnified.
|
||||||
|
array<DisplayLayout>? layouts;
|
||||||
|
};
|
||||||
|
|
||||||
|
// EDID extracted parameters. Field description refers to "VESA ENHANCED
|
||||||
|
// EXTENDED DISPLAY IDENTIFICATION DATA STANDARD (Defines EDID Structure
|
||||||
|
// Version 1, Revision 4)" Release A, Revision 2 September 25, 2006.
|
||||||
|
// https://www.vesa.org/vesa-standards
|
||||||
|
struct Edid {
|
||||||
|
// Three character manufacturer code, Sec. 3.4.1 page 21.
|
||||||
|
string manufacturer_id;
|
||||||
|
// Two byte manufacturer-assigned code, Sec. 3.4.2 page 21.
|
||||||
|
string product_id;
|
||||||
|
// Year of manufacture. Sec. 3.4.4 page 22.
|
||||||
|
int32 year_of_manufacture;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Struct wrapper so that the property can be optional.
|
||||||
|
struct DisplayRotation {
|
||||||
|
display.mojom.Rotation rotation;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines the properties for a display mode, i.e. a valid size and scale.
|
||||||
|
struct DisplayMode {
|
||||||
|
// The display mode size in device independent (user visible) pixels.
|
||||||
|
gfx.mojom.Size size;
|
||||||
|
// The display mode size in native pixels.
|
||||||
|
gfx.mojom.Size size_in_native_pixels;
|
||||||
|
// The display mode UI scale factor.
|
||||||
|
double ui_scale;
|
||||||
|
// The display mode device scale factor.
|
||||||
|
double device_scale_factor;
|
||||||
|
// The display mode refresh rate in hertz.
|
||||||
|
double refresh_rate;
|
||||||
|
// True if the mode is the display's native mode.
|
||||||
|
bool is_native;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Defines the properties of an individual display, returned by
|
||||||
|
// GetDisplayLayoutInfo.
|
||||||
|
struct DisplayUnitInfo {
|
||||||
|
// The unique identifier of the display.
|
||||||
|
string id;
|
||||||
|
// The user-friendly name (e.g. "Acme LCD monitor").
|
||||||
|
string name;
|
||||||
|
// EDID properties when available.
|
||||||
|
Edid? edid;
|
||||||
|
// True if this is the primary display.
|
||||||
|
bool is_primary;
|
||||||
|
// True if this is an internal display.
|
||||||
|
bool is_internal;
|
||||||
|
// True if this display is enabled.
|
||||||
|
bool is_enabled;
|
||||||
|
// True when the display is in tablet mode.
|
||||||
|
bool is_tablet_mode;
|
||||||
|
// True if this display has a touch input device associated with it.
|
||||||
|
bool has_touch_support;
|
||||||
|
// True if this display has an accelerometer associated with it.
|
||||||
|
bool has_accelerometer_support;
|
||||||
|
// The number of pixels per inch along the x-axis.
|
||||||
|
double dpi_x;
|
||||||
|
// The number of pixels per inch along the y-axis.
|
||||||
|
double dpi_y;
|
||||||
|
// The display's clockwise rotation.
|
||||||
|
display.mojom.Rotation rotation;
|
||||||
|
// The display's logical bounds.
|
||||||
|
gfx.mojom.Rect bounds;
|
||||||
|
// The display's ovserscan insets within its screen's bounds.
|
||||||
|
gfx.mojom.Insets overscan;
|
||||||
|
// The usable work area of the display within the display bounds. Excludes
|
||||||
|
// areas of the display reserved for the OS, e.g. the taskbar and launcher.
|
||||||
|
gfx.mojom.Rect work_area;
|
||||||
|
// The index of the selected display mode.
|
||||||
|
int32 selected_display_mode_index;
|
||||||
|
// The list of available display modes.
|
||||||
|
array<DisplayMode> available_display_modes;
|
||||||
|
// The ratio between the display's current and default zoom. i.e. 1.0 is
|
||||||
|
// is equivalent to 100% zoom, and value 1.5 is equivalent to 150% zoom.
|
||||||
|
double display_zoom_factor;
|
||||||
|
// The list of allowed zoom factor values for the display.
|
||||||
|
array<double> available_display_zoom_factors;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Properties for configuring an individual display, used in
|
||||||
|
// SetDisplayProperties.
|
||||||
|
struct DisplayConfigProperties {
|
||||||
|
// If true, makes the display primary. No-op if set to false.
|
||||||
|
bool set_primary;
|
||||||
|
// If provided, sets the display's overscan insets to the provided value.
|
||||||
|
// Note: overscan values may not be negative or larger than a half of the
|
||||||
|
// screen's size. Overscan cannot be changed on the internal monitor.
|
||||||
|
gfx.mojom.Insets? overscan;
|
||||||
|
// If provided updates the display's rotation.
|
||||||
|
DisplayRotation? rotation;
|
||||||
|
// If provided, updates the display's logical bounds origin. Note: when
|
||||||
|
// updating the display origin, some constraints will be applied. so the final
|
||||||
|
// bounds origin may be different than the one set. The actual bounds will be
|
||||||
|
// reflected in DisplayUnitInfo. Cannot be changed on the primary display (or
|
||||||
|
// if set_primary is true).
|
||||||
|
gfx.mojom.Point? bounds_origin;
|
||||||
|
// If non zero, updates the zoom associated with the display. This zoom
|
||||||
|
// performs relayout and repaint thus resulting in a better quality zoom than
|
||||||
|
// just performing a pixel by pixel stretch enlargement.
|
||||||
|
double display_zoom_factor;
|
||||||
|
// Optional DisplayMode properties to set. This should match one of the
|
||||||
|
// modes listed in DisplayUnitInfo.available_display_modes. Other custom
|
||||||
|
// modes may or may not be valid.
|
||||||
|
DisplayMode? display_mode;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for configuring displays in Chrome OS. Currently this is
|
||||||
|
// implemented in Ash through classes owned by ash::Shell, but the interface
|
||||||
|
// should not have any Ash specific dependencies.
|
||||||
|
interface CrosDisplayConfigController {
|
||||||
|
// Observers are notified when the display layout or any display properties
|
||||||
|
// change.
|
||||||
|
AddObserver(associated CrosDisplayConfigObserver observer);
|
||||||
|
|
||||||
|
// Returns the display layout info, including the list of layouts.
|
||||||
|
GetDisplayLayoutInfo() => (DisplayLayoutInfo info);
|
||||||
|
|
||||||
|
// Sets the layout mode, mirroring, and layouts. Returns kSuccess if the
|
||||||
|
// layout is valid or an error value otherwise.
|
||||||
|
SetDisplayLayoutInfo(DisplayLayoutInfo info) => (DisplayConfigResult result);
|
||||||
|
|
||||||
|
// Returns the properties for all displays. If |single_unified| is true, a
|
||||||
|
// single display will be returned if the display layout is in unifed mode.
|
||||||
|
GetDisplayUnitInfoList(bool single_unified) =>
|
||||||
|
(array<DisplayUnitInfo> info_list);
|
||||||
|
|
||||||
|
// Sets |properties| for individual display with identifier |id|. Returns
|
||||||
|
// Success if the properties are valid or an error value otherwise.
|
||||||
|
SetDisplayProperties(string id, DisplayConfigProperties properties) =>
|
||||||
|
(DisplayConfigResult result);
|
||||||
|
|
||||||
|
// Enables or disables unified desktop mode. If the current display mode is
|
||||||
|
// kMirrored the mode will not be changed, if it is kNormal then the mode will
|
||||||
|
// be set to kUnified.
|
||||||
|
SetUnifiedDesktopEnabled(bool enabled);
|
||||||
|
|
||||||
|
// Starts, updates, completes, or resets overscan calibration for the display
|
||||||
|
// with identifier |display_id|. If |op| is kAdjust, |delta| describes the
|
||||||
|
// amount to change the overscan value. Runs the callback after performing the
|
||||||
|
// operation or on error.
|
||||||
|
OverscanCalibration(string display_id,
|
||||||
|
DisplayConfigOperation op,
|
||||||
|
gfx.mojom.Insets? delta) => (DisplayConfigResult result);
|
||||||
|
|
||||||
|
// Starts, completes, or resets touch calibration for the display with
|
||||||
|
// identifier |display_id|. If |op| is kShowNative shows the native
|
||||||
|
// calibration UI. Runs the callback after performing the operation or on
|
||||||
|
// error.
|
||||||
|
TouchCalibration(string display_id,
|
||||||
|
DisplayConfigOperation op,
|
||||||
|
TouchCalibration? calibration) =>
|
||||||
|
(DisplayConfigResult result);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for clients needing to be informed when the display configuration
|
||||||
|
// changes.
|
||||||
|
interface CrosDisplayConfigObserver {
|
||||||
|
// Called any time the display configuration changes.
|
||||||
|
OnDisplayConfigChanged();
|
||||||
|
};
|
18
ash/public/interfaces/docked_magnifier_controller.mojom
Normal file
18
ash/public/interfaces/docked_magnifier_controller.mojom
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
// Used by a client (e.g. Chrome) to notify ash of focus change events of nodes
|
||||||
|
// in webpages.
|
||||||
|
interface DockedMagnifierController {
|
||||||
|
// Requests that the Docked Magnifier centers its viewport around this given
|
||||||
|
// screen point. This can be used by a client (e.g. Chrome) to notify ash of
|
||||||
|
// focus change events in e.g. webpages when feature is enabled. Note that ash
|
||||||
|
// observes the focus change events of the text input carets in editable nodes
|
||||||
|
// by itself.
|
||||||
|
CenterOnPoint(gfx.mojom.Point point_in_screen);
|
||||||
|
};
|
13
ash/public/interfaces/event_properties.mojom
Normal file
13
ash/public/interfaces/event_properties.mojom
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// This is added to KeyEvents that ash has an accelerator for. This is only used
|
||||||
|
// for accelerators ash does not handle immediately. That is, those the target
|
||||||
|
// is given priority to process.
|
||||||
|
// No value is set for this property, the presence indicates ash has an
|
||||||
|
// accelerator.
|
||||||
|
const string kWillProcessAccelerator_KeyEventProperty =
|
||||||
|
"ash:will-process-accelerator";
|
37
ash/public/interfaces/event_rewriter_controller.mojom
Normal file
37
ash/public/interfaces/event_rewriter_controller.mojom
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/events/mojo/event.mojom";
|
||||||
|
|
||||||
|
// Allows a client to implement spoken feedback features; used for ChromeVox.
|
||||||
|
interface SpokenFeedbackEventRewriterDelegate {
|
||||||
|
// Used to send key events to the ChromeVox extension. |capture| is true if
|
||||||
|
// the rewriter discarded the event, false if the rewriter continues event
|
||||||
|
// propagation.
|
||||||
|
DispatchKeyEventToChromeVox(ui.mojom.Event event, bool capture);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Allows clients to toggle some event rewriting behavior.
|
||||||
|
interface EventRewriterController {
|
||||||
|
// Enables the KeyboardDrivenEventRewriter, which is disabled by default.
|
||||||
|
// This only applies when the user is on the login screen.
|
||||||
|
SetKeyboardDrivenEventRewriterEnabled(bool enabled);
|
||||||
|
|
||||||
|
// If true, Shift + Arrow keys are rewritten to Tab/Shift-Tab keys.
|
||||||
|
// This only applies when the KeyboardDrivenEventRewriter is active.
|
||||||
|
SetArrowToTabRewritingEnabled(bool enabled);
|
||||||
|
|
||||||
|
// Set the delegate used by the spoken feedback event rewriter.
|
||||||
|
SetSpokenFeedbackEventRewriterDelegate(
|
||||||
|
SpokenFeedbackEventRewriterDelegate delegate);
|
||||||
|
|
||||||
|
// Continue dispatch of key events that were unhandled by ChromeVox.
|
||||||
|
// TODO(crbug.com/839541): ChromeVox should not repost unhandled events.
|
||||||
|
OnUnhandledSpokenFeedbackEvent(ui.mojom.Event event);
|
||||||
|
|
||||||
|
// Discards key events and sends to spoken feedback when true.
|
||||||
|
CaptureAllKeysForSpokenFeedback(bool capture);
|
||||||
|
};
|
44
ash/public/interfaces/first_run_helper.mojom
Normal file
44
ash/public/interfaces/first_run_helper.mojom
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
// Allows clients to control pieces of the UI used in first-run tutorials.
|
||||||
|
// Exists because the first-run tutorial is a component extension run by
|
||||||
|
// Chrome. Methods exist here instead of on the Shelf or SystemTray interfaces
|
||||||
|
// due to small behavior differences (all methods only affect the primary
|
||||||
|
// display, opening the system tray bubble is persistent, etc.).
|
||||||
|
interface FirstRunHelper {
|
||||||
|
// Cleans up the ash UI on tutorial start.
|
||||||
|
Start(FirstRunHelperClient client);
|
||||||
|
|
||||||
|
// Restores the ash UI on tutorial stop.
|
||||||
|
Stop();
|
||||||
|
|
||||||
|
// Returns the bounds of the app list button on the primary display in screen
|
||||||
|
// coordinates.
|
||||||
|
GetAppListButtonBounds() => (gfx.mojom.Rect screen_bounds);
|
||||||
|
|
||||||
|
// Opens the system tray bubble menu to show the default view. Does nothing if
|
||||||
|
// the bubble is already open. The bubble stays open until explicitly closed.
|
||||||
|
// Returns bubble bounds in screen coordinates.
|
||||||
|
OpenTrayBubble() => (gfx.mojom.Rect screen_bounds);
|
||||||
|
|
||||||
|
// Closes the system tray bubble menu. Does nothing if the bubble is already
|
||||||
|
// closed.
|
||||||
|
CloseTrayBubble();
|
||||||
|
|
||||||
|
// Returns the bounds of the help button on the system tray bubble menu in
|
||||||
|
// screen coordinates. Returns empty bounds if the bubble is not open.
|
||||||
|
GetHelpButtonBounds() => (gfx.mojom.Rect screen_bounds);
|
||||||
|
};
|
||||||
|
|
||||||
|
// The client for the FirstRunHelper interface, e.g. chrome.
|
||||||
|
interface FirstRunHelperClient {
|
||||||
|
// Informs the client that something happened inside ash that should cancel
|
||||||
|
// the tutorial (e.g. the device is shutting down).
|
||||||
|
OnCancelled();
|
||||||
|
};
|
29
ash/public/interfaces/highlighter_controller.mojom
Normal file
29
ash/public/interfaces/highlighter_controller.mojom
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to connect to the highlighter
|
||||||
|
// controller, the component implementing on-screen content selection
|
||||||
|
// with a stylus.
|
||||||
|
interface HighlighterController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(HighlighterControllerClient client);
|
||||||
|
|
||||||
|
// Exits the highlighter mode if it is currently enabled.
|
||||||
|
ExitHighlighterMode();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to notify the client (e.g. Chrome) about the highlighter
|
||||||
|
// selection and state.
|
||||||
|
interface HighlighterControllerClient {
|
||||||
|
// Called when when a valid selection is made. Selected rectangle is in
|
||||||
|
// screen coordinates, clipped to screen bounds if necessary.
|
||||||
|
HandleSelection(gfx.mojom.Rect rect);
|
||||||
|
|
||||||
|
// Called when the highlighter tool becomes enabled or disabled.
|
||||||
|
HandleEnabledStateChange(bool enabled);
|
||||||
|
};
|
85
ash/public/interfaces/ime_controller.mojom
Normal file
85
ash/public/interfaces/ime_controller.mojom
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/ime_info.mojom";
|
||||||
|
import "ui/base/ime/chromeos/public/interfaces/ime_keyset.mojom";
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to send input method info to ash.
|
||||||
|
interface ImeController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(ImeControllerClient client);
|
||||||
|
|
||||||
|
// Updates the cached IME information and refreshes the IME menus.
|
||||||
|
// |current_ime_id| is empty when there is no active IME yet.
|
||||||
|
RefreshIme(string current_ime_id,
|
||||||
|
array<ImeInfo> available_imes,
|
||||||
|
array<ImeMenuItem> menu_items);
|
||||||
|
|
||||||
|
// Shows an icon in the IME menu indicating that IMEs are controlled by device
|
||||||
|
// policy.
|
||||||
|
SetImesManagedByPolicy(bool managed);
|
||||||
|
|
||||||
|
// Shows the IME menu on the shelf instead of inside the system tray menu.
|
||||||
|
// Users with multiple IMEs that have multiple configurable properties (e.g.
|
||||||
|
// some Chinese IMEs) prefer this to keeping the IME menu under the primary
|
||||||
|
// system tray menu.
|
||||||
|
ShowImeMenuOnShelf(bool show);
|
||||||
|
|
||||||
|
// Report caps lock state changes from chrome (which is the source of truth)
|
||||||
|
// to the tray.
|
||||||
|
UpdateCapsLockState(bool enabled);
|
||||||
|
|
||||||
|
// Report keyboard layout changes from chrome (which is the source of truth)
|
||||||
|
// This is also called when a connection is first established between
|
||||||
|
// ImeController and ImeControllerClient.
|
||||||
|
// The layout name is a XKB keyboard layout name (e.g. "us").
|
||||||
|
OnKeyboardLayoutNameChanged(string layout_name);
|
||||||
|
|
||||||
|
// Report the enabled state of the various extra input options (currently
|
||||||
|
// emoji, handwriting, and voice input). |is_extra_input_options_enabled| set
|
||||||
|
// to false will disable all extra input option UI regardless of the enabled
|
||||||
|
// state of the individual options (which will be ingored).
|
||||||
|
SetExtraInputOptionsEnabledState(bool is_extra_input_options_enabled,
|
||||||
|
bool is_emoji_enabled,
|
||||||
|
bool is_handwriting_enabled,
|
||||||
|
bool is_voice_enabled);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to send input method requests to its client (e.g. Chrome).
|
||||||
|
interface ImeControllerClient {
|
||||||
|
// Switches to the next input method. Does nothing if only one input method
|
||||||
|
// is installed.
|
||||||
|
SwitchToNextIme();
|
||||||
|
|
||||||
|
// Switches to the previous input method. Does nothing if only one input
|
||||||
|
// method is installed.
|
||||||
|
SwitchToPreviousIme();
|
||||||
|
|
||||||
|
// Switches to an input method by |id|. Does nothing if the input method is
|
||||||
|
// not installed. The ID is usually the output of a call like
|
||||||
|
// chromeos::extension_ime_util::GetInputMethodIDByEngineID("xkb:jp::jpn"),
|
||||||
|
// see that function for details. Shows a bubble with the input method short
|
||||||
|
// name when |show_message| is true.
|
||||||
|
SwitchImeById(string id, bool show_message);
|
||||||
|
|
||||||
|
// Activates an input method menu item. The |key| must be a value from the
|
||||||
|
// ImeMenuItems provided via RefreshIme. Does nothing if the |key| is invalid.
|
||||||
|
ActivateImeMenuItem(string key);
|
||||||
|
|
||||||
|
// When the caps lock state change originates from the tray (i.e. clicking the
|
||||||
|
// caps lock toggle from the settings menu from the caps lock icon), from an
|
||||||
|
// accelerator (e.g. pressing Alt + Search), or from the debug UI (i.e.
|
||||||
|
// toggling the caps lock button), propagate the change to the client without
|
||||||
|
// sending a change notification back.
|
||||||
|
// TODO(crbug/759435): Ideally this interaction should only be to disable the
|
||||||
|
// caps lock.
|
||||||
|
SetCapsLockEnabled(bool enabled);
|
||||||
|
|
||||||
|
// Overrides the keyboard keyset (emoji, handwriting or voice). If keyset is
|
||||||
|
// 'kNone', we switch to the default keyset. Because this is asynchronous,
|
||||||
|
// any code that needs the keyset to be updated first must use the callback.
|
||||||
|
OverrideKeyboardKeyset(chromeos.input_method.mojom.ImeKeyset keyset) => ();
|
||||||
|
};
|
40
ash/public/interfaces/ime_info.mojom
Normal file
40
ash/public/interfaces/ime_info.mojom
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
|
||||||
|
// Metadata about an installed input method.
|
||||||
|
struct ImeInfo {
|
||||||
|
// True if the IME is a third-party extension.
|
||||||
|
bool third_party;
|
||||||
|
|
||||||
|
// ID that identifies the IME (e.g., "t:latn-post", "pinyin", "hangul").
|
||||||
|
string id;
|
||||||
|
|
||||||
|
// Long name of the IME, which is used as the user-visible name.
|
||||||
|
mojo_base.mojom.String16 name;
|
||||||
|
|
||||||
|
// Medium name of the IME, which is the same as the short name in most cases.
|
||||||
|
mojo_base.mojom.String16 medium_name;
|
||||||
|
|
||||||
|
// UI indicator for the IME (e.g., "US"). If the IME has no indicator, uses
|
||||||
|
// the first two characters in its preferred keyboard layout or language code
|
||||||
|
// (e.g., "ko", "ja", "en-US").
|
||||||
|
mojo_base.mojom.String16 short_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
// A menu item that sets an IME configuration property.
|
||||||
|
struct ImeMenuItem {
|
||||||
|
// True if the item is selected / enabled.
|
||||||
|
bool checked;
|
||||||
|
|
||||||
|
// The key which identifies the property controlled by the menu item, e.g.
|
||||||
|
// "InputMode.HalfWidthKatakana".
|
||||||
|
string key;
|
||||||
|
|
||||||
|
// The item label, e.g. "Switch to full punctuation mode" or "Hiragana".
|
||||||
|
mojo_base.mojom.String16 label;
|
||||||
|
};
|
24
ash/public/interfaces/kiosk_app_info.mojom
Normal file
24
ash/public/interfaces/kiosk_app_info.mojom
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "components/account_id/interfaces/account_id.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
|
||||||
|
union KioskAppIdentifier {
|
||||||
|
// For chrome kiosk apps only, the extension app id.
|
||||||
|
string app_id;
|
||||||
|
// For ARC kiosk apps only, the account id for the app.
|
||||||
|
signin.mojom.AccountId account_id;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Metadata about a kiosk app. Used for display in the kiosk app menu in the
|
||||||
|
// login screen shelf.
|
||||||
|
struct KioskAppInfo {
|
||||||
|
KioskAppIdentifier identifier;
|
||||||
|
mojo_base.mojom.String16 name;
|
||||||
|
gfx.mojom.ImageSkia icon;
|
||||||
|
};
|
21
ash/public/interfaces/locale.mojom
Normal file
21
ash/public/interfaces/locale.mojom
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Sent as the response to LocaleNotificationController.OnLocaleChanged().
|
||||||
|
enum LocaleNotificationResult {
|
||||||
|
ACCEPT,
|
||||||
|
REVERT
|
||||||
|
};
|
||||||
|
|
||||||
|
// Used by Chrome to make ash show a notification.
|
||||||
|
interface LocaleNotificationController {
|
||||||
|
// Displays a notification in ash prompting the user whether to accept a
|
||||||
|
// change in the locale. If the user clicks the accept button (or closes the
|
||||||
|
// notification), OnLocaleChange() returns ACCEPT. If the user clicks the
|
||||||
|
// revert button, returns REVERT.
|
||||||
|
OnLocaleChanged(string current, string from, string to)
|
||||||
|
=> (LocaleNotificationResult result);
|
||||||
|
};
|
255
ash/public/interfaces/login_screen.mojom
Normal file
255
ash/public/interfaces/login_screen.mojom
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/user_info.mojom";
|
||||||
|
import "ash/public/interfaces/login_user_info.mojom";
|
||||||
|
import "ash/public/interfaces/kiosk_app_info.mojom";
|
||||||
|
import "chromeos/components/proximity_auth/public/interfaces/auth_type.mojom";
|
||||||
|
import "components/account_id/interfaces/account_id.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "mojo/public/mojom/base/time.mojom";
|
||||||
|
|
||||||
|
// Allows clients (e.g. Chrome browser) to control the ash login/lock/user-add
|
||||||
|
// screens.
|
||||||
|
interface LoginScreen {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(LoginScreenClient client);
|
||||||
|
|
||||||
|
// Displays the lock screen. |did_show| is true iff the lock UI was
|
||||||
|
// successfully displayed.
|
||||||
|
ShowLockScreen() => (bool did_show);
|
||||||
|
|
||||||
|
// Displays the login screen. |did_show| is true iff the login UI was
|
||||||
|
// successfully displayed.
|
||||||
|
ShowLoginScreen() => (bool did_show);
|
||||||
|
|
||||||
|
// Requests to show error message in the ash lock screen.
|
||||||
|
// TODO(xiaoyinh): login_attempts is probabaly not needed from chrome,
|
||||||
|
// remove it when we start to count the login attempts in ash lock screen.
|
||||||
|
// |login_attempts|: The number of the login authentication attempts.
|
||||||
|
// |error_text|: The error text to be shown in lock screen.
|
||||||
|
// |help_link_text|: The help link to be shown in lock screen.
|
||||||
|
// |help_topic_id|: The id of the help app topic regarding this error.
|
||||||
|
ShowErrorMessage(int32 login_attempts,
|
||||||
|
string error_text,
|
||||||
|
string help_link_text,
|
||||||
|
int32 help_topic_id);
|
||||||
|
|
||||||
|
// Shows a warning banner message on the login screen. A warning banner is
|
||||||
|
// used to notify users of important messages before they log in to their
|
||||||
|
// session. (e.g. Tell the user that an update of the user data will start
|
||||||
|
// on login)
|
||||||
|
// |message|: The message to show.
|
||||||
|
ShowWarningBanner(mojo_base.mojom.String16 message);
|
||||||
|
|
||||||
|
// Hide a warning banner if it is displayed.
|
||||||
|
// TODO(fukino): Ideally chrome-side should not have this level of UI
|
||||||
|
// control. Make the API simpler and let ash determine the UI behavior.
|
||||||
|
HideWarningBanner();
|
||||||
|
|
||||||
|
// Requests to close any displayed error messages in ash lock screen.
|
||||||
|
ClearErrors();
|
||||||
|
|
||||||
|
// Requests to show the custom icon in the user pod.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
// |icon|: Information regarding the icon.
|
||||||
|
ShowUserPodCustomIcon(signin.mojom.AccountId account_id,
|
||||||
|
EasyUnlockIconOptions icon);
|
||||||
|
|
||||||
|
// Requests to hide the custom icon in the user pod.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
HideUserPodCustomIcon(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Requests to set the authentication type.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
// |auth_type|: Authentication type.
|
||||||
|
// |initial_value|: A message shown in the password field of the user pod.
|
||||||
|
SetAuthType(signin.mojom.AccountId account_id,
|
||||||
|
proximity_auth.mojom.AuthType auth_type,
|
||||||
|
mojo_base.mojom.String16 initial_value);
|
||||||
|
|
||||||
|
// Requests to load users in the lock screen.
|
||||||
|
// |users|: A list of users who can unlock the device.
|
||||||
|
// |show_guest|: Whether to show guest session button.
|
||||||
|
LoadUsers(array<LoginUserInfo> users, bool show_guest);
|
||||||
|
|
||||||
|
// Notification if pin is enabled or disabled for the given user.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
// |is_enabled|: True if pin unlock is enabled.
|
||||||
|
SetPinEnabledForUser(signin.mojom.AccountId account_id, bool is_enabled);
|
||||||
|
|
||||||
|
// Change the user's avatar. Some avatars may take a long time to load and the
|
||||||
|
// login screen may already be visible.
|
||||||
|
SetAvatarForUser(signin.mojom.AccountId account_id, UserAvatar avatar);
|
||||||
|
|
||||||
|
// Called when auth should be enabled or disabled for the given user. When
|
||||||
|
// auth is disabled, the user cannot unlock the device. Auth is enabled by
|
||||||
|
// default.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
// |is_enabled|: True if auth is enabled.
|
||||||
|
// |auth_reenabled_time|: A future time when auth will be enabled. Must be
|
||||||
|
// non-null if |is_enabled| is false. This value is
|
||||||
|
// for display purpose only and the client should be
|
||||||
|
// responsible for calling this method again with
|
||||||
|
// is_enabled == true when the time reaches.
|
||||||
|
SetAuthEnabledForUser(signin.mojom.AccountId account_id,
|
||||||
|
bool is_enabled,
|
||||||
|
mojo_base.mojom.Time? auth_reenabled_time);
|
||||||
|
|
||||||
|
// Called when focus is reported to be leaving a lock screen app window.
|
||||||
|
// Requests focus to be handed off to the next suitable widget.
|
||||||
|
// |reverse|: Whether the tab order is reversed.
|
||||||
|
HandleFocusLeavingLockScreenApps(bool reverse);
|
||||||
|
|
||||||
|
// Called when the info shown for dev and canary channels are changed.
|
||||||
|
// |os_version_label_text|: The OS version.
|
||||||
|
// |enterprise_info_text|: The enterprise info.
|
||||||
|
// |bluetooth_name|: The name of the bluetooth adapter.
|
||||||
|
SetDevChannelInfo(string os_version_label_text,
|
||||||
|
string enterprise_info_text,
|
||||||
|
string bluetooth_name);
|
||||||
|
|
||||||
|
// Check if the login/lock screen is ready for a password.
|
||||||
|
IsReadyForPassword() => (bool is_ready);
|
||||||
|
|
||||||
|
// Set the public session display name for user with |account_id|.
|
||||||
|
SetPublicSessionDisplayName(signin.mojom.AccountId account_id,
|
||||||
|
string display_name);
|
||||||
|
|
||||||
|
// Set the public session locales for user with |account_id|.
|
||||||
|
// |locales|: Available locales for this user.
|
||||||
|
// |default_locale|: Default locale for this user.
|
||||||
|
// |show_advanced_view|: True if we should show the advanced expanded user
|
||||||
|
// view for the public session.
|
||||||
|
SetPublicSessionLocales(signin.mojom.AccountId account_id,
|
||||||
|
array<LocaleItem> locales,
|
||||||
|
string default_locale,
|
||||||
|
bool show_advanced_view);
|
||||||
|
|
||||||
|
// Set the public session keyboard layouts for user with |account_id|.
|
||||||
|
// |locale|: The locale that |keyboard_layouts| can be used for.
|
||||||
|
SetPublicSessionKeyboardLayouts(signin.mojom.AccountId account_id,
|
||||||
|
string locale,
|
||||||
|
array<InputMethodItem> keyboard_layouts);
|
||||||
|
|
||||||
|
// Set the fingerprint unlock state for user with |account_id|.
|
||||||
|
SetFingerprintUnlockState(signin.mojom.AccountId account_id,
|
||||||
|
FingerprintUnlockState state);
|
||||||
|
|
||||||
|
// Update the kiosk app data for the login screen.
|
||||||
|
SetKioskApps(array<KioskAppInfo> kiosk_apps);
|
||||||
|
|
||||||
|
// Called when the dialog hosting oobe has changed visibility. The oobe dialog
|
||||||
|
// provides support for any part of login that is implemented in JS/HTML, such
|
||||||
|
// as add user or powerwash.
|
||||||
|
NotifyOobeDialogVisibility(bool is_visible);
|
||||||
|
|
||||||
|
// Sets whether users can be added from the login screen.
|
||||||
|
SetAddUserButtonEnabled(bool enable);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Allows ash lock screen to control a client (e.g. Chrome browser). Requests
|
||||||
|
// often involve preferences or talk to cryptohome that is not available to ash.
|
||||||
|
interface LoginScreenClient {
|
||||||
|
// Request user authentication in chrome.
|
||||||
|
// If auth succeeds:
|
||||||
|
// chrome will hide the lock screen and clear any displayed error messages.
|
||||||
|
// If auth fails:
|
||||||
|
// chrome will request lock screen to show error messages.
|
||||||
|
// |account_id|: The AccountId to authenticate against.
|
||||||
|
// |password|: The submitted password.
|
||||||
|
// |authenticated_by_pin|: True if we are using pin to authenticate.
|
||||||
|
//
|
||||||
|
// The result will be set to true if auth was successful, false if not.
|
||||||
|
AuthenticateUser(signin.mojom.AccountId account_id,
|
||||||
|
string password,
|
||||||
|
bool authenticated_by_pin) => (bool auth_success);
|
||||||
|
|
||||||
|
// Request to attempt easy unlock in chrome.
|
||||||
|
// |account_id|: The account id of the user we are authenticating.
|
||||||
|
AttemptUnlock(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Request to hard lock the user pod.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
HardlockPod(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Record clicks on the lock icon in the user pod.
|
||||||
|
// |account_id|: The account id of the user in the user pod.
|
||||||
|
RecordClickOnLockIcon(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Focus user pod of user with |account_id|.
|
||||||
|
OnFocusPod(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Notify that no user pod is focused.
|
||||||
|
OnNoPodFocused();
|
||||||
|
|
||||||
|
// Load wallpaper of user with |account_id|.
|
||||||
|
LoadWallpaper(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Sign out current user.
|
||||||
|
SignOutUser();
|
||||||
|
|
||||||
|
// Close add user screen.
|
||||||
|
CancelAddUser();
|
||||||
|
|
||||||
|
// Launches guest mode.
|
||||||
|
LoginAsGuest();
|
||||||
|
|
||||||
|
// User with |account_id| has reached maximum incorrect password attempts.
|
||||||
|
OnMaxIncorrectPasswordAttempted(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Should pass the focus to the active lock screen app window, if there is
|
||||||
|
// one. This is called when a lock screen app is reported to be active (using
|
||||||
|
// tray_action mojo interface), and is next in the tab order.
|
||||||
|
// |HandleFocusLeavingLockScreenApps| should be called to return focus to the
|
||||||
|
// lock screen.
|
||||||
|
// |reverse|: Whether the tab order is reversed.
|
||||||
|
FocusLockScreenApps(bool reverse);
|
||||||
|
|
||||||
|
// Show the gaia sign-in dialog. If |can_close| is true, the dialog can be
|
||||||
|
// closed. The value in |prefilled_account| will be used to prefill the
|
||||||
|
// sign-in dialog so the user does not need to type the account email.
|
||||||
|
ShowGaiaSignin(bool can_close, signin.mojom.AccountId? prefilled_account);
|
||||||
|
|
||||||
|
// Notification that the remove user warning was shown.
|
||||||
|
OnRemoveUserWarningShown();
|
||||||
|
|
||||||
|
// Try to remove |account_id|.
|
||||||
|
RemoveUser(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Launch a public session for user with |account_id|.
|
||||||
|
// |locale|: Locale for this user.
|
||||||
|
// The value is language code like "en-US", "zh-CN"
|
||||||
|
// |input_method|: Input method for this user.
|
||||||
|
// This is the id of InputMethodDescriptor like
|
||||||
|
// "t:latn-post", "pinyin".
|
||||||
|
LaunchPublicSession(signin.mojom.AccountId account_id,
|
||||||
|
string locale,
|
||||||
|
string input_method);
|
||||||
|
|
||||||
|
// Request public session keyboard layouts for user with |account_id|.
|
||||||
|
// This function send a request to chrome and the result will be returned by
|
||||||
|
// SetPublicSessionKeyboardLayouts.
|
||||||
|
// |locale|: Request a list of keyboard layouts that can be used by this
|
||||||
|
// locale.
|
||||||
|
RequestPublicSessionKeyboardLayouts(signin.mojom.AccountId account_id,
|
||||||
|
string locale);
|
||||||
|
|
||||||
|
// Request to show a feedback report dialog in chrome.
|
||||||
|
ShowFeedback();
|
||||||
|
|
||||||
|
// Launch the specific kiosk app.
|
||||||
|
LaunchKioskApp(string app_id);
|
||||||
|
|
||||||
|
// Launch the specific ARC++ kiosk app.
|
||||||
|
LaunchArcKioskApp(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Show the powerwash (device reset) dialog.
|
||||||
|
ShowResetScreen();
|
||||||
|
|
||||||
|
// Show the help app for when users have trouble signing in to their account.
|
||||||
|
ShowAccountAccessHelpApp();
|
||||||
|
};
|
164
ash/public/interfaces/login_user_info.mojom
Normal file
164
ash/public/interfaces/login_user_info.mojom
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/user_info.mojom";
|
||||||
|
import "chromeos/components/proximity_auth/public/interfaces/auth_type.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "mojo/public/mojom/base/values.mojom";
|
||||||
|
|
||||||
|
// Supported multi-profile user behavior values.
|
||||||
|
// Keep in sync with the enum in md_user_pod_row.js and user_pod_row.js
|
||||||
|
enum MultiProfileUserBehavior {
|
||||||
|
UNRESTRICTED = 0,
|
||||||
|
PRIMARY_ONLY = 1,
|
||||||
|
NOT_ALLOWED = 2,
|
||||||
|
OWNER_PRIMARY_ONLY = 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Easy unlock icon choices.
|
||||||
|
enum EasyUnlockIconId {
|
||||||
|
// No icon shown.
|
||||||
|
NONE,
|
||||||
|
// The user has clicked the easy unlock icon and disabled easy unlock for this
|
||||||
|
// login/lock session.
|
||||||
|
HARDLOCKED,
|
||||||
|
// Phone could not be found.
|
||||||
|
LOCKED,
|
||||||
|
// Phone found, but it is not unlocked.
|
||||||
|
LOCKED_TO_BE_ACTIVATED,
|
||||||
|
// Phone found, but it is too far away.
|
||||||
|
LOCKED_WITH_PROXIMITY_HINT,
|
||||||
|
// Phone found and unlocked. The user can click to dismiss the login/lock
|
||||||
|
// screen.
|
||||||
|
UNLOCKED,
|
||||||
|
// Scanning for phone.
|
||||||
|
SPINNER,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Fingerprint unlock state in the views lock screen.
|
||||||
|
enum FingerprintUnlockState {
|
||||||
|
// Fingerprint unlock is not available.
|
||||||
|
UNAVAILABLE,
|
||||||
|
// Fingerprint unlock is available.
|
||||||
|
AVAILABLE,
|
||||||
|
// The unlock attempt is successful, the fingerprint is matched.
|
||||||
|
AUTH_SUCCESS,
|
||||||
|
// The unlock attempt is unsuccessful; the fingerprint is not
|
||||||
|
// recognized; however, the user can make another fingerprint auth
|
||||||
|
// attempt.
|
||||||
|
AUTH_FAILED,
|
||||||
|
// The unlock attempt is unsuccessful; the fingerprint is not
|
||||||
|
// recognized. There have been too many unlock attempts and fingerprint
|
||||||
|
// is now disabled.
|
||||||
|
AUTH_DISABLED,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Information about the custom icon in the user pod.
|
||||||
|
struct EasyUnlockIconOptions {
|
||||||
|
// Icon that should be displayed.
|
||||||
|
EasyUnlockIconId icon;
|
||||||
|
// Tooltip that is associated with the icon. This is shown automatically if
|
||||||
|
// |autoshow_tooltip| is true. The user can always see the tooltip if they
|
||||||
|
// hover over the icon. The tooltip should be used for the accessibility label
|
||||||
|
// if it is present.
|
||||||
|
mojo_base.mojom.String16 tooltip;
|
||||||
|
// If true, the tooltip should be displayed (even if the user is not currently
|
||||||
|
// hovering over the icon, ie, this makes |tooltip| act like a little like a
|
||||||
|
// notification).
|
||||||
|
bool autoshow_tooltip;
|
||||||
|
// Accessibility label. Only used if |tooltip| is empty.
|
||||||
|
// TODO(jdufault): Always populate and use |aria_label|, even if |tooltip| is
|
||||||
|
// non-empty.
|
||||||
|
mojo_base.mojom.String16 aria_label;
|
||||||
|
// If true, clicking the easy unlock icon should fire a hardlock event which
|
||||||
|
// will disable easy unlock. The hardlock event will request a new icon
|
||||||
|
// display via a separate EasyUnlockIconsOption update. See
|
||||||
|
// login_screen.mojom::HardlockPod.
|
||||||
|
bool hardlock_on_click;
|
||||||
|
// If true, the lock screen is being demoed so the user can test out easy
|
||||||
|
// unlock. The flow operates as normal. Hardlocking is disabled in this
|
||||||
|
// scenario.
|
||||||
|
// TODO(jdufault): This should be removed, as it does not change UI.
|
||||||
|
bool is_trial_run;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Infomation of each input method. This is used to populate keyboard layouts
|
||||||
|
// for public account user.
|
||||||
|
struct InputMethodItem {
|
||||||
|
// An id that identifies an input method engine (e.g., "t:latn-post",
|
||||||
|
// "pinyin", "hangul").
|
||||||
|
string ime_id;
|
||||||
|
|
||||||
|
// Title of the imput method.
|
||||||
|
string title;
|
||||||
|
|
||||||
|
// Whether this input method is been selected.
|
||||||
|
bool selected;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Information of each available locale. This is used to populate language
|
||||||
|
// locales for public account user.
|
||||||
|
struct LocaleItem {
|
||||||
|
// Language code of the locale.
|
||||||
|
string language_code;
|
||||||
|
|
||||||
|
// Title of the locale.
|
||||||
|
string title;
|
||||||
|
|
||||||
|
// Optional, group name of the locale.
|
||||||
|
string? group_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Infomation about a public account user.
|
||||||
|
struct PublicAccountInfo {
|
||||||
|
// Optional, the domain name displayed in the login screen UI.
|
||||||
|
string? enterprise_domain;
|
||||||
|
|
||||||
|
// A list of available user locales.
|
||||||
|
array<LocaleItem> available_locales;
|
||||||
|
|
||||||
|
// Default locale for this user.
|
||||||
|
string default_locale;
|
||||||
|
|
||||||
|
// Show the advanced expanded user view if there are at least two recommended
|
||||||
|
// locales. This will be the case in multilingual environments where users
|
||||||
|
// are likely to want to choose among locales.
|
||||||
|
bool show_advanced_view;
|
||||||
|
|
||||||
|
// A list of available keyboard layouts.
|
||||||
|
array<InputMethodItem> keyboard_layouts;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Info about a user in login/lock screen.
|
||||||
|
struct LoginUserInfo {
|
||||||
|
// User's basic information including account id, email, avatar etc.
|
||||||
|
UserInfo basic_user_info;
|
||||||
|
|
||||||
|
// What method the user can use to sign in.
|
||||||
|
proximity_auth.mojom.AuthType auth_type;
|
||||||
|
|
||||||
|
// True if this user has already signed in.
|
||||||
|
bool is_signed_in;
|
||||||
|
|
||||||
|
// True if this user is the device owner.
|
||||||
|
bool is_device_owner;
|
||||||
|
|
||||||
|
// True if fingerprint unlock is allowed for this user.
|
||||||
|
bool allow_fingerprint_unlock;
|
||||||
|
|
||||||
|
// True if multi-profiles sign in is allowed for this user.
|
||||||
|
bool is_multiprofile_allowed;
|
||||||
|
|
||||||
|
// Enforced policy for multi-profiles sign in.
|
||||||
|
MultiProfileUserBehavior multiprofile_policy;
|
||||||
|
|
||||||
|
// True if this user can be removed.
|
||||||
|
bool can_remove;
|
||||||
|
|
||||||
|
// Optional, contains the public account information if user type is
|
||||||
|
// PUBLIC_ACCOUNT.
|
||||||
|
PublicAccountInfo? public_account_info;
|
||||||
|
};
|
45
ash/public/interfaces/media.mojom
Normal file
45
ash/public/interfaces/media.mojom
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Describes whether media is currently being captured.
|
||||||
|
enum MediaCaptureState {
|
||||||
|
NONE = 0,
|
||||||
|
AUDIO = 1,
|
||||||
|
VIDEO = 2,
|
||||||
|
AUDIO_VIDEO = 3
|
||||||
|
};
|
||||||
|
|
||||||
|
// Allows clients (e.g. Chrome browser) to interface with the ash media
|
||||||
|
// indicators.
|
||||||
|
interface MediaController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(associated MediaClient client);
|
||||||
|
|
||||||
|
// Called when the media capture state changes on the client, or in response
|
||||||
|
// to a RequestCaptureState() request. Returns an array of MediaCaptureState
|
||||||
|
// by index of the shell content. (These indexes are unstable, but are
|
||||||
|
// unlikely to change in practice, see comments in chrome's MediaClient::
|
||||||
|
// RequestCaptureState()).
|
||||||
|
NotifyCaptureState(array<MediaCaptureState> state);
|
||||||
|
};
|
||||||
|
|
||||||
|
// This delegate allows the UI code in ash to forward UI commands.
|
||||||
|
interface MediaClient {
|
||||||
|
// Handles the Next Track Media shortcut key.
|
||||||
|
HandleMediaNextTrack();
|
||||||
|
|
||||||
|
// Handles the Play/Pause Toggle Media shortcut key.
|
||||||
|
HandleMediaPlayPause();
|
||||||
|
|
||||||
|
// Handles the Previous Track Media shortcut key.
|
||||||
|
HandleMediaPrevTrack();
|
||||||
|
|
||||||
|
// Requests that the client resends the NotifyMediaCaptureChanged() message.
|
||||||
|
RequestCaptureState();
|
||||||
|
|
||||||
|
// Suspends all WebContents-associated media sessions to stop managed players.
|
||||||
|
SuspendMediaSessions();
|
||||||
|
};
|
68
ash/public/interfaces/menu.mojom
Normal file
68
ash/public/interfaces/menu.mojom
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
|
||||||
|
// The types of menu items shown in shelf context and application list menus.
|
||||||
|
// These values roughly match ui::MenuModel::ItemType (sans TYPE_BUTTON_ITEM).
|
||||||
|
enum MenuItemType {
|
||||||
|
COMMAND, // Performs an action when selected.
|
||||||
|
CHECK, // Can be selected/checked to toggle a boolean state.
|
||||||
|
RADIO, // Can be selected/checked among a group of choices.
|
||||||
|
SEPARATOR, // Shows a horizontal line separator.
|
||||||
|
SUBMENU, // Presents a submenu within another menu.
|
||||||
|
ACTIONABLE_SUBMENU, // A SUBMENU that is also a COMMAND.
|
||||||
|
};
|
||||||
|
|
||||||
|
// For a separator we have the following types.
|
||||||
|
enum MenuSeparatorType {
|
||||||
|
// Normal - top to bottom: Spacing, line, spacing.
|
||||||
|
NORMAL_SEPARATOR = 0,
|
||||||
|
|
||||||
|
// Double thickness - top to bottom: Spacing, line, spacing.
|
||||||
|
DOUBLE_SEPARATOR,
|
||||||
|
|
||||||
|
// Upper - top to bottom: Line, spacing.
|
||||||
|
UPPER_SEPARATOR,
|
||||||
|
|
||||||
|
// Lower - top to bottom: Spacing, line.
|
||||||
|
LOWER_SEPARATOR,
|
||||||
|
|
||||||
|
// Spacing - top to bottom: Spacing only.
|
||||||
|
SPACING_SEPARATOR,
|
||||||
|
|
||||||
|
// Vertical separator within a row.
|
||||||
|
VERTICAL_SEPARATOR,
|
||||||
|
|
||||||
|
// Separator with left padding - top to bottom: Line only,
|
||||||
|
// horizontal: Starts after left padding.
|
||||||
|
PADDED_SEPARATOR,
|
||||||
|
};
|
||||||
|
|
||||||
|
// MenuItems are used to populate application menus for shelf items.
|
||||||
|
// Note: Some menu item types only support a subset of these item features.
|
||||||
|
// Please update comments below (MenuItemType -> [fields expected for usage])
|
||||||
|
// when anything changed to MenuItemType or MenuItem.
|
||||||
|
//
|
||||||
|
// COMMAND -> [command_id, label, image, enabled, checked].
|
||||||
|
// CHECK -> [command_id, label, image, enabled, checked].
|
||||||
|
// RADIO -> [command_id, label, image, enabled, checked, radio_group_id].
|
||||||
|
// SEPARATOR -> [separator_type].
|
||||||
|
// SUBMENU -> [command_id, label, image, enabled, submenu].
|
||||||
|
// ACTIONABLE_SUBMENU -> [command_id, label, image, enabled, submenu].
|
||||||
|
//
|
||||||
|
struct MenuItem {
|
||||||
|
MenuItemType type; // The type of the menu item.
|
||||||
|
int32 command_id; // The client's arbitrary item command id.
|
||||||
|
mojo_base.mojom.String16 label; // The string label, may be empty.
|
||||||
|
gfx.mojom.ImageSkia? image; // The image icon, may be null.
|
||||||
|
array<MenuItem>? submenu; // The optional nested submenu item list.
|
||||||
|
bool enabled; // The enabled state.
|
||||||
|
bool checked; // The checked state.
|
||||||
|
int64 radio_group_id; // The radio group id.
|
||||||
|
MenuSeparatorType separator_type; // The separator type.
|
||||||
|
};
|
18
ash/public/interfaces/menu.typemap
Normal file
18
ash/public/interfaces/menu.typemap
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2018 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.
|
||||||
|
|
||||||
|
mojom = "//ash/public/interfaces/menu.mojom"
|
||||||
|
public_headers = [
|
||||||
|
"//ui/base/models/menu_model.h",
|
||||||
|
"//ui/base/models/menu_separator_types.h",
|
||||||
|
]
|
||||||
|
traits_headers = [ "//ash/public/cpp/menu_struct_mojom_traits.h" ]
|
||||||
|
public_deps = [
|
||||||
|
"//ui/base",
|
||||||
|
"//ui/gfx/image/mojo:struct_traits",
|
||||||
|
]
|
||||||
|
type_mappings = [
|
||||||
|
"ash.mojom.MenuItemType=ui::MenuModel::ItemType",
|
||||||
|
"ash.mojom.MenuSeparatorType=ui::MenuSeparatorType",
|
||||||
|
]
|
58
ash/public/interfaces/new_window.mojom
Normal file
58
ash/public/interfaces/new_window.mojom
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// For GURL.
|
||||||
|
import "url/mojom/url.mojom";
|
||||||
|
|
||||||
|
// An exported object in ash which lets an ash consumer set a client interface.
|
||||||
|
interface NewWindowController {
|
||||||
|
SetClient(associated NewWindowClient client);
|
||||||
|
|
||||||
|
// TODO(crbug.com/755448): Remove this when the new shortcut viewer is
|
||||||
|
// enabled.
|
||||||
|
// Shows the keyboard shortcut overlay. TODO(mash): this calls the client
|
||||||
|
// function of the same name below, but it should be implemented inside ash.
|
||||||
|
ShowKeyboardOverlay();
|
||||||
|
};
|
||||||
|
|
||||||
|
// A delegate interface that an ash user sends to ash to handle certain window
|
||||||
|
// management responsibilities.
|
||||||
|
interface NewWindowClient {
|
||||||
|
// Invoked when the user uses Ctrl+T to open a new tab.
|
||||||
|
NewTab();
|
||||||
|
|
||||||
|
// Opens a new tab with the specified URL.
|
||||||
|
NewTabWithUrl(url.mojom.Url url);
|
||||||
|
|
||||||
|
// Invoked when the user uses Ctrl-N or Ctrl-Shift-N to open a new window.
|
||||||
|
NewWindow(bool incognito);
|
||||||
|
|
||||||
|
// Invoked when an accelerator is used to open the file manager.
|
||||||
|
OpenFileManager();
|
||||||
|
|
||||||
|
// Invoked when the user opens Crosh.
|
||||||
|
OpenCrosh();
|
||||||
|
|
||||||
|
// Invoked when an accelerator is used to open help center.
|
||||||
|
OpenGetHelp();
|
||||||
|
|
||||||
|
// Invoked when the user uses Shift+Ctrl+T to restore the closed tab.
|
||||||
|
RestoreTab();
|
||||||
|
|
||||||
|
// TODO(crbug.com/755448): Remove this when the new shortcut viewer is
|
||||||
|
// enabled.
|
||||||
|
// Shows the keyboard shortcut overlay.
|
||||||
|
ShowKeyboardOverlay();
|
||||||
|
|
||||||
|
// Show the keyboard shortcut viewer.
|
||||||
|
ShowKeyboardShortcutViewer();
|
||||||
|
|
||||||
|
// Shows the task manager window.
|
||||||
|
ShowTaskManager();
|
||||||
|
|
||||||
|
// Opens the feedback page for "Report Issue".
|
||||||
|
OpenFeedbackPage();
|
||||||
|
};
|
52
ash/public/interfaces/night_light_controller.mojom
Normal file
52
ash/public/interfaces/night_light_controller.mojom
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Represents a geolocation position fix. It's "simple" because it doesn't
|
||||||
|
// expose all the parameters of the position interface as defined by the
|
||||||
|
// Geolocation API Specification:
|
||||||
|
// (https://dev.w3.org/geo/api/spec-source.html#position_interface).
|
||||||
|
// The NightLightController is only interested in valid latitude and longitude.
|
||||||
|
// It also doesn't require any specific accuracy. The more accurate the
|
||||||
|
// positions, the more accurate sunset and sunrise times calculations. However,
|
||||||
|
// an IP-based geoposition is considered good enough.
|
||||||
|
struct SimpleGeoposition {
|
||||||
|
double latitude;
|
||||||
|
double longitude;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Used by a client (e.g. Chrome) to provide the current user's geoposition.
|
||||||
|
interface NightLightController {
|
||||||
|
// These values are written to logs. New enum values can be added, but
|
||||||
|
// existing enums must never be renumbered or deleted and reused.
|
||||||
|
enum ScheduleType {
|
||||||
|
// Automatic toggling of NightLight is turned off.
|
||||||
|
kNone = 0,
|
||||||
|
|
||||||
|
// Turned automatically on at the user's local sunset time, and off at the
|
||||||
|
// user's local sunrise time.
|
||||||
|
kSunsetToSunrise = 1,
|
||||||
|
|
||||||
|
// Toggled automatically based on the custom set start and end times
|
||||||
|
// selected by the user from the system settings.
|
||||||
|
kCustom = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Sets the client that will be notified of changes in the Night Light
|
||||||
|
// schedule type.
|
||||||
|
SetClient(NightLightClient client);
|
||||||
|
|
||||||
|
// Provides the NightLightController with the user's geoposition so that it
|
||||||
|
// can calculate the sunset and sunrise times. This should only be called when
|
||||||
|
// the schedule type is set to "Sunset to Sunrise".
|
||||||
|
SetCurrentGeoposition(SimpleGeoposition position);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Used by ash to notify a client (e.g. Chrome) of the changes in the Night
|
||||||
|
// Light schedule type.
|
||||||
|
interface NightLightClient {
|
||||||
|
// Notifies the client with the new schedule type whenever it changes.
|
||||||
|
OnScheduleTypeChanged(NightLightController.ScheduleType new_type);
|
||||||
|
};
|
19
ash/public/interfaces/note_taking_controller.mojom
Normal file
19
ash/public/interfaces/note_taking_controller.mojom
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to connect to the note taking
|
||||||
|
// controller.
|
||||||
|
interface NoteTakingController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(NoteTakingControllerClient client);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to notify the client (e.g. Chrome) about the new note
|
||||||
|
// creation.
|
||||||
|
interface NoteTakingControllerClient {
|
||||||
|
// Called when the controller needs to create a new note.
|
||||||
|
CreateNote();
|
||||||
|
};
|
24
ash/public/interfaces/pref_connector.mojom
Normal file
24
ash/public/interfaces/pref_connector.mojom
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "components/account_id/interfaces/account_id.mojom";
|
||||||
|
import "services/preferences/public/mojom/preferences.mojom";
|
||||||
|
|
||||||
|
const string kPrefConnectorServiceName = "ash_pref_connector";
|
||||||
|
|
||||||
|
// A connector of PrefStoreConnectors. Provides ash with access to per-profile
|
||||||
|
// prefs.
|
||||||
|
interface PrefConnector {
|
||||||
|
// Provides a PrefStoreConnector for the signin screen profile prefs. Once
|
||||||
|
// connected the prefs continue to be available even after the user logs in.
|
||||||
|
GetPrefStoreConnectorForSigninScreen(
|
||||||
|
prefs.mojom.PrefStoreConnector& connector);
|
||||||
|
|
||||||
|
// Provides, via |connector|, a PrefStoreConnector for |account_id|. If
|
||||||
|
// |account_id| is invalid or unknown, |connector| will be closed.
|
||||||
|
GetPrefStoreConnectorForUser(signin.mojom.AccountId account_id,
|
||||||
|
prefs.mojom.PrefStoreConnector& connector);
|
||||||
|
};
|
12
ash/public/interfaces/process_creation_time_recorder.mojom
Normal file
12
ash/public/interfaces/process_creation_time_recorder.mojom
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "mojo/public/mojom/base/time.mojom";
|
||||||
|
|
||||||
|
interface ProcessCreationTimeRecorder {
|
||||||
|
// Sets the time the main process was created at, used for logging metrics.
|
||||||
|
SetMainProcessCreationTime(mojo_base.mojom.TimeTicks start_time);
|
||||||
|
};
|
215
ash/public/interfaces/session_controller.mojom
Normal file
215
ash/public/interfaces/session_controller.mojom
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/user_info.mojom";
|
||||||
|
import "components/account_id/interfaces/account_id.mojom";
|
||||||
|
import "mojo/public/mojom/base/time.mojom";
|
||||||
|
|
||||||
|
// Matches session_manager::SessionState.
|
||||||
|
enum SessionState {
|
||||||
|
// Default value, when session state hasn't been initialized yet.
|
||||||
|
UNKNOWN,
|
||||||
|
|
||||||
|
// Running out of box UI.
|
||||||
|
OOBE,
|
||||||
|
|
||||||
|
// Running login UI (primary user) but user sign in hasn't completed yet.
|
||||||
|
LOGIN_PRIMARY,
|
||||||
|
|
||||||
|
// Running login UI (primary or secondary user), user sign in has been
|
||||||
|
// completed but login UI hasn't been hidden yet. This means that either
|
||||||
|
// some session initialization is happening or user has to go through some
|
||||||
|
// UI flow on the same login UI like select avatar, agree to terms of
|
||||||
|
// service etc.
|
||||||
|
LOGGED_IN_NOT_ACTIVE,
|
||||||
|
|
||||||
|
// A user(s) has logged in *and* login UI is hidden i.e. user session is
|
||||||
|
// not blocked.
|
||||||
|
ACTIVE,
|
||||||
|
|
||||||
|
// The session screen is locked.
|
||||||
|
LOCKED,
|
||||||
|
|
||||||
|
// Same as SESSION_STATE_LOGIN_PRIMARY but for multi-profiles sign in i.e.
|
||||||
|
// when there's at least one user already active in the session.
|
||||||
|
LOGIN_SECONDARY,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Matches ash::CycleUserDirection.
|
||||||
|
enum CycleUserDirection {
|
||||||
|
NEXT, // Cycle to the next user.
|
||||||
|
PREVIOUS, // Cycle to the previous user.
|
||||||
|
};
|
||||||
|
|
||||||
|
// Info about a user session in ash. May be sent repeatedly for a single user
|
||||||
|
// because individual fields may change (e.g. the avatar image or custodians).
|
||||||
|
struct UserSession {
|
||||||
|
// A user session id for the user session. It is generated by session manager
|
||||||
|
// (chrome) when a user session starts and never changes during the lifetime
|
||||||
|
// of the session manager. The number starts at 1 for the first user session
|
||||||
|
// and incremented by one for each subsequent user session.
|
||||||
|
uint32 session_id;
|
||||||
|
|
||||||
|
// Contains general user information state, like the account id, display name,
|
||||||
|
// and avatar.
|
||||||
|
UserInfo user_info;
|
||||||
|
|
||||||
|
// For supervised users only, the email address of the custodian account.
|
||||||
|
// Empty for non-supervised users. Available after profile is loaded.
|
||||||
|
string custodian_email;
|
||||||
|
|
||||||
|
// For supervised users only, the email address of the second custodian
|
||||||
|
// account, if any. Available after profile is loaded.
|
||||||
|
string second_custodian_email;
|
||||||
|
|
||||||
|
// Whether the settings icon should be enabled in the system tray menu.
|
||||||
|
// Usually true after login, but can be false for specialized user sessions
|
||||||
|
// (e.g. adding supervised users).
|
||||||
|
bool should_enable_settings;
|
||||||
|
|
||||||
|
// Similar to |should_show_settings| but for the notification tray.
|
||||||
|
bool should_show_notification_tray;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Matches ash::AddUserSessionPolicy.
|
||||||
|
enum AddUserSessionPolicy {
|
||||||
|
// Adding a user session is allowed.
|
||||||
|
ALLOWED,
|
||||||
|
|
||||||
|
// Disallowed due to primary user's policy.
|
||||||
|
ERROR_NOT_ALLOWED_PRIMARY_USER,
|
||||||
|
|
||||||
|
// Disallowed due to no eligible users.
|
||||||
|
ERROR_NO_ELIGIBLE_USERS,
|
||||||
|
|
||||||
|
// Disallowed due to reaching maximum supported user.
|
||||||
|
ERROR_MAXIMUM_USERS_REACHED,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Info about an ash session.
|
||||||
|
struct SessionInfo {
|
||||||
|
// Whether the screen can be locked.
|
||||||
|
bool can_lock_screen;
|
||||||
|
|
||||||
|
// Whether the screen should be locked automatically before suspending.
|
||||||
|
bool should_lock_screen_automatically;
|
||||||
|
|
||||||
|
// Whether the session is in app mode, which includes a kiosk-like mode for
|
||||||
|
// fullscreen web content or running a single [forced] Chrome or ARC app.
|
||||||
|
bool is_running_in_app_mode;
|
||||||
|
|
||||||
|
// Sets whether adding a user session to ash is allowed.
|
||||||
|
AddUserSessionPolicy add_user_session_policy;
|
||||||
|
|
||||||
|
// Current state of the ash session.
|
||||||
|
SessionState state;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash client (e.g. Chrome) to set session info for ash.
|
||||||
|
interface SessionController {
|
||||||
|
// Sets the client interface.
|
||||||
|
SetClient(SessionControllerClient client);
|
||||||
|
|
||||||
|
// Sets the ash session info.
|
||||||
|
SetSessionInfo(SessionInfo info);
|
||||||
|
|
||||||
|
// Updates a user session. This is called when a user session is added or
|
||||||
|
// its meta data (e.g. name, avatar) is changed. There is no method to remove
|
||||||
|
// a user session because ash/chrome does not support that. All users are
|
||||||
|
// logged out at the same time.
|
||||||
|
UpdateUserSession(UserSession user_session);
|
||||||
|
|
||||||
|
// Sets the order of user sessions. The order is keyed by the session id.
|
||||||
|
// Currently, session manager set a LRU order with the first one being the
|
||||||
|
// active user session.
|
||||||
|
SetUserSessionOrder(array<uint32> user_session_ids);
|
||||||
|
|
||||||
|
// Prepares ash for lock screen. Currently this ensures the current active
|
||||||
|
// window could not be used to mimic the lock screen. Lock screen is created
|
||||||
|
// after this call returns.
|
||||||
|
PrepareForLock() => ();
|
||||||
|
|
||||||
|
// Runs the pre-lock animation to start locking ash. When the call returns,
|
||||||
|
// |locked| == true means that the ash post-lock animation is finished and ash
|
||||||
|
// is fully locked. Otherwise |locked| is false, which means something is
|
||||||
|
// wrong for the lock and ash is not locked. When the call returns with a true
|
||||||
|
// |locked|, screen locker runs the post lock jobs such as a11y announcement
|
||||||
|
// etc. Invoked by the screen locker during initialization.
|
||||||
|
StartLock() => (bool locked);
|
||||||
|
|
||||||
|
// Notifies ash that chrome lock animations are finished. This is the last
|
||||||
|
// event for locking. SessionController forwards it to PowerEventObserver.
|
||||||
|
NotifyChromeLockAnimationsComplete();
|
||||||
|
|
||||||
|
// Runs the pre-unlock animation. Invoked by the screen locker before
|
||||||
|
// dismissing. When the mojo call returns, screen locker takes that as a
|
||||||
|
// signal of finished unlock animation and dismisses itself.
|
||||||
|
RunUnlockAnimation() => ();
|
||||||
|
|
||||||
|
// Notifies that chrome is terminating.
|
||||||
|
NotifyChromeTerminating();
|
||||||
|
|
||||||
|
// Adds a countdown timer to the system tray menu and creates or updates a
|
||||||
|
// notification saying the session length is limited (e.g. a public session in
|
||||||
|
// a library). Setting |length_limit| to zero removes the notification.
|
||||||
|
// NOTE: Chrome enforces the limit, not ash. Ash could enforce it if local
|
||||||
|
// state prefs and user activity monitoring were available under mustash.
|
||||||
|
// http://crbug.com/729808
|
||||||
|
SetSessionLengthLimit(mojo_base.mojom.TimeDelta length_limit,
|
||||||
|
mojo_base.mojom.TimeTicks start_time);
|
||||||
|
|
||||||
|
// Returns whether it's ok to switch the active multiprofile user. May affect
|
||||||
|
// or be affected by system state such as window overview mode and screen
|
||||||
|
// casting.
|
||||||
|
CanSwitchActiveUser() => (bool can_switch);
|
||||||
|
|
||||||
|
// Shows a dialog to explain the implications of signing in multiple users.
|
||||||
|
// If |on_accept| is false, |permanently_accept| is ignored.
|
||||||
|
ShowMultiprofilesIntroDialog() => (bool on_accept, bool permanently_accept);
|
||||||
|
|
||||||
|
// Shows a dialog to confirm that the user wants to teleport a window to
|
||||||
|
// another desktop. If |on_accept| is false, |permanently_accept| is ignored.
|
||||||
|
ShowTeleportWarningDialog() => (bool on_accept, bool permanently_accept);
|
||||||
|
|
||||||
|
// Shows a dialog that explains that the given user is no longer allowed in
|
||||||
|
// the session due to a policy change, and aborts the session.
|
||||||
|
ShowMultiprofilesSessionAbortedDialog(string user_email);
|
||||||
|
|
||||||
|
// Adds session activation observer. The observer is called when session
|
||||||
|
// with |account_id| is becoming active or inactive. The observer is
|
||||||
|
// immediately called for upon registration with the current status.
|
||||||
|
AddSessionActivationObserverForAccountId(
|
||||||
|
signin.mojom.AccountId account_id, SessionActivationObserver observer);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to request session service from its client (e.g. Chrome).
|
||||||
|
interface SessionControllerClient {
|
||||||
|
// Requests to lock screen.
|
||||||
|
RequestLockScreen();
|
||||||
|
|
||||||
|
// Requests signing out all users, ending the current session.
|
||||||
|
RequestSignOut();
|
||||||
|
|
||||||
|
// Switch to the active user with |account_id| (if the user has already signed
|
||||||
|
// in).
|
||||||
|
SwitchActiveUser(signin.mojom.AccountId account_id);
|
||||||
|
|
||||||
|
// Switch the active user to the next or previous user.
|
||||||
|
CycleActiveUser(CycleUserDirection direction);
|
||||||
|
|
||||||
|
// Show the multi-profile login UI to add another user to this session.
|
||||||
|
ShowMultiProfileLogin();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Interface for ash to notify client of sessions status for a specific
|
||||||
|
// |account_id|.
|
||||||
|
interface SessionActivationObserver {
|
||||||
|
// Called the session is becoming active or inactive.
|
||||||
|
OnSessionActivated(bool activated);
|
||||||
|
|
||||||
|
// Called when lock screen state changes.
|
||||||
|
OnLockStateChanged(bool locked);
|
||||||
|
};
|
18
ash/public/interfaces/session_controller.typemap
Normal file
18
ash/public/interfaces/session_controller.typemap
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
mojom = "//ash/public/interfaces/session_controller.mojom"
|
||||||
|
public_headers = [
|
||||||
|
"//ash/public/cpp/session_types.h",
|
||||||
|
"//components/session_manager/session_manager_types.h",
|
||||||
|
]
|
||||||
|
traits_headers = [ "//ash/public/interfaces/session_controller_traits.h" ]
|
||||||
|
public_deps = [
|
||||||
|
"//components/session_manager:base",
|
||||||
|
]
|
||||||
|
type_mappings = [
|
||||||
|
"ash.mojom.AddUserSessionPolicy=ash::AddUserSessionPolicy",
|
||||||
|
"ash.mojom.CycleUserDirection=ash::CycleUserDirection",
|
||||||
|
"ash.mojom.SessionState=session_manager::SessionState",
|
||||||
|
]
|
146
ash/public/interfaces/shelf.mojom
Normal file
146
ash/public/interfaces/shelf.mojom
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
import "ash/public/interfaces/menu.mojom";
|
||||||
|
import "mojo/public/mojom/base/string16.mojom";
|
||||||
|
import "ui/events/mojo/event.mojom";
|
||||||
|
import "ui/gfx/image/mojo/image.mojom";
|
||||||
|
|
||||||
|
// The actions that may be performed when a shelf item is selected.
|
||||||
|
// These values match ash::ShelfAction.
|
||||||
|
enum ShelfAction {
|
||||||
|
NONE, // No action was taken.
|
||||||
|
WINDOW_CREATED, // A new window was created.
|
||||||
|
WINDOW_ACTIVATED, // An existing inactive window was activated.
|
||||||
|
WINDOW_MINIMIZED, // The currently active window was minimized.
|
||||||
|
APP_LIST_SHOWN, // The app list launcher menu was shown.
|
||||||
|
};
|
||||||
|
|
||||||
|
// Represents the status of items in the shelf.
|
||||||
|
// These values match ash::ShelfItemStatus.
|
||||||
|
enum ShelfItemStatus {
|
||||||
|
CLOSED, // A closed shelf item, i.e. has no live instance.
|
||||||
|
RUNNING, // A shelf item that has live instance.
|
||||||
|
ACTIVE, // A shelf item that owns the currently active window.
|
||||||
|
ATTENTION, // A shelf item that needs user's attention.
|
||||||
|
};
|
||||||
|
|
||||||
|
// The type of a shelf item.
|
||||||
|
// These values match ash::ShelfItemType.
|
||||||
|
enum ShelfItemType {
|
||||||
|
PINNED_APP, // A pinned app, which may be running or not.
|
||||||
|
APP_LIST, // An item that toggles visiblity of the app list.
|
||||||
|
BROWSER, // The browser shortcut, the browser may be running or not.
|
||||||
|
APP, // An unpinned running app window. Supports these app types:
|
||||||
|
// - Extension "V1" (legacy packaged and hosted) apps,
|
||||||
|
// - Extension "V2" (platform) apps,
|
||||||
|
// - ARC (App Runtime for Chrome - Android Play Store) apps.
|
||||||
|
DIALOG, // An open dialog.
|
||||||
|
BACK_BUTTON, // The back button, which is shown in tablet mode.
|
||||||
|
UNDEFINED, // Default value.
|
||||||
|
};
|
||||||
|
|
||||||
|
// Source of the launch or activation request, for tracking.
|
||||||
|
// These values match ash::ShelfLaunchSource.
|
||||||
|
enum ShelfLaunchSource {
|
||||||
|
UNKNOWN, // The item was launched from outside the app list.
|
||||||
|
APP_LIST, // The item was launched from a generic app list view.
|
||||||
|
APP_LIST_SEARCH, // The item was launched from an app list search view.
|
||||||
|
};
|
||||||
|
|
||||||
|
// The Shelf controller allows clients (eg. Chrome) to control the ash shelf.
|
||||||
|
interface ShelfController {
|
||||||
|
// Observers are immediately notified of the current shelf states when added.
|
||||||
|
AddObserver(associated ShelfObserver observer);
|
||||||
|
|
||||||
|
// Note: ShelfObservers are not notified of ShelfModel changes made by the
|
||||||
|
// ShelfItem functions below. Chrome is the solitary ShelfObserver and client
|
||||||
|
// of these functions, so notifications would be cyclical and problematic.
|
||||||
|
|
||||||
|
// Add |item| at |index|, which is clamped to be greater than 0 (AppList's
|
||||||
|
// index) and not exceeding the item count. Use a negative |index| to append.
|
||||||
|
AddShelfItem(int32 index, ShelfItem item);
|
||||||
|
// Remove the item with |id|. Bails if |id| is unknown or for the AppList.
|
||||||
|
RemoveShelfItem(ShelfID id);
|
||||||
|
// Moves item with |id| to |index|, which is in terms of the model after the
|
||||||
|
// item is removed, and is clamped to be greater than 0 (AppList's index) and
|
||||||
|
// not exceeding the item count. Bails if |id| is unknown or for the AppList.
|
||||||
|
MoveShelfItem(ShelfID id, int32 target_index);
|
||||||
|
// Updates |item| via ShelfID. Bails if the id is unknown or for the AppList.
|
||||||
|
// Clients may pass null images to signal no change and avoid transport costs.
|
||||||
|
UpdateShelfItem(ShelfItem item);
|
||||||
|
// Sets the |delegate| for the item with |id|.
|
||||||
|
SetShelfItemDelegate(ShelfID id, ShelfItemDelegate delegate);
|
||||||
|
};
|
||||||
|
|
||||||
|
// A Shelf observer, used to persist profile settings and cache a ShelfModel.
|
||||||
|
interface ShelfObserver {
|
||||||
|
// Called when the |item| has been added at |index|.
|
||||||
|
// This passes null images to avoid transport costs; clients don't use images.
|
||||||
|
OnShelfItemAdded(int32 index, ShelfItem item);
|
||||||
|
// Called when the item with |id| has been removed.
|
||||||
|
OnShelfItemRemoved(ShelfID id);
|
||||||
|
// Called when the item with |id| has been moved to |index|.
|
||||||
|
OnShelfItemMoved(ShelfID id, int32 index);
|
||||||
|
// Called when the |item| with matching ShelfID has been updated.
|
||||||
|
// This passes null images to avoid transport costs; clients don't use images.
|
||||||
|
OnShelfItemUpdated(ShelfItem item);
|
||||||
|
// Called when |delegate| for the item with |id| has been changed.
|
||||||
|
OnShelfItemDelegateChanged(ShelfID id, ShelfItemDelegate delegate);
|
||||||
|
};
|
||||||
|
|
||||||
|
// ShelfItemDelegate handles shelf item selection, menu command execution, etc.
|
||||||
|
interface ShelfItemDelegate {
|
||||||
|
// Called when the user selects a shelf item. The event, display, and source
|
||||||
|
// info should be provided if known; some implementations use these arguments.
|
||||||
|
// Defaults: (nullptr, kInvalidDisplayId, LAUNCH_FROM_UNKNOWN)
|
||||||
|
// The callback reports the action taken and any app menu items to show.
|
||||||
|
//
|
||||||
|
// NOTE: This codepath is not currently used for context menu triggering.
|
||||||
|
// TODO(crbug.com/691099): Remove |display_id| once panels are removed.
|
||||||
|
ItemSelected(ui.mojom.Event event,
|
||||||
|
int64 display_id,
|
||||||
|
ShelfLaunchSource source) => (ShelfAction action,
|
||||||
|
array<MenuItem>? menu_items);
|
||||||
|
|
||||||
|
// Called when spawning a shelf item context menu, returns custom menu items.
|
||||||
|
// TODO(mash): Clients should push context menu items to Ash's shelf model.
|
||||||
|
GetContextMenuItems(int64 display_id) => (array<MenuItem> items);
|
||||||
|
|
||||||
|
// Called on invocation of a shelf item's context or application menu command.
|
||||||
|
// |from_context_menu| is true if the command came from a context menu, or
|
||||||
|
// false if the command came from an application menu. If the |display_id| is
|
||||||
|
// unknown or irrelevant, callers may pass |display::kInvalidDisplayId|.
|
||||||
|
ExecuteCommand(bool from_context_menu,
|
||||||
|
int64 command_id,
|
||||||
|
int32 event_flags,
|
||||||
|
int64 display_id);
|
||||||
|
|
||||||
|
// Closes all windows associated with this shelf item.
|
||||||
|
Close();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Identifier for shelf items and their windows.
|
||||||
|
// This structure matches ash::ShelfID.
|
||||||
|
struct ShelfID {
|
||||||
|
string app_id; // An app id string, used to match app windows.
|
||||||
|
// (eg. extension ids, arc ids, "AppList", etc.)
|
||||||
|
string launch_id; // A string used to support multiple items per app.
|
||||||
|
// (eg. Citrix may use 'Word' or 'Excel' launch ids)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ShelfItems are used to populate the shelf.
|
||||||
|
// This structure matches ash::ShelfItem.
|
||||||
|
struct ShelfItem {
|
||||||
|
ShelfItemType type; // The type of the shelf item.
|
||||||
|
gfx.mojom.ImageSkia? image; // The icon shown on the shelf; null for updates
|
||||||
|
// with no icon change, null for ShelfObservers.
|
||||||
|
ShelfItemStatus status; // The running/closed/etc. status of the item.
|
||||||
|
ShelfID shelf_id; // The id for the shelf item and its windows.
|
||||||
|
mojo_base.mojom.String16 title; // The title to display for tooltips, etc.
|
||||||
|
bool pinned_by_policy; // Whether the item is pinned by policy prefs,
|
||||||
|
// the user cannot un-pin these items.
|
||||||
|
};
|
27
ash/public/interfaces/shelf.typemap
Normal file
27
ash/public/interfaces/shelf.typemap
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright 2016 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.
|
||||||
|
|
||||||
|
mojom = "//ash/public/interfaces/shelf.mojom"
|
||||||
|
public_headers = [
|
||||||
|
"//ash/public/cpp/shelf_item.h",
|
||||||
|
"//ash/public/cpp/shelf_types.h",
|
||||||
|
"//ui/base/models/menu_model.h",
|
||||||
|
]
|
||||||
|
traits_headers = [ "//ash/public/cpp/shelf_struct_mojom_traits.h" ]
|
||||||
|
sources = [
|
||||||
|
"//ash/public/cpp/shelf_struct_mojom_traits.cc",
|
||||||
|
]
|
||||||
|
public_deps = [
|
||||||
|
"//ui/gfx/image/mojo:struct_traits",
|
||||||
|
]
|
||||||
|
type_mappings = [
|
||||||
|
"ash.mojom.ShelfAction=ash::ShelfAction",
|
||||||
|
"ash.mojom.ShelfAlignment=ash::ShelfAlignment",
|
||||||
|
"ash.mojom.ShelfAutoHideBehavior=ash::ShelfAutoHideBehavior",
|
||||||
|
"ash.mojom.ShelfID=ash::ShelfID",
|
||||||
|
"ash.mojom.ShelfItem=ash::ShelfItem",
|
||||||
|
"ash.mojom.ShelfItemStatus=ash::ShelfItemStatus",
|
||||||
|
"ash.mojom.ShelfItemType=ash::ShelfItemType",
|
||||||
|
"ash.mojom.ShelfLaunchSource=ash::ShelfLaunchSource",
|
||||||
|
]
|
22
ash/public/interfaces/shelf_test_api.mojom
Normal file
22
ash/public/interfaces/shelf_test_api.mojom
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// All methods operate on the shelf on the primary display.
|
||||||
|
interface ShelfTestApi {
|
||||||
|
// Returns true if the shelf is visible (e.g. not auto-hidden).
|
||||||
|
IsVisible() => (bool visible);
|
||||||
|
|
||||||
|
// Forces a visibility update and then runs the callback.
|
||||||
|
UpdateVisibility() => ();
|
||||||
|
|
||||||
|
// Returns true if a window is overlapping the shelf, which changes its
|
||||||
|
// appearance slightly.
|
||||||
|
HasOverlappingWindow() => (bool overlap);
|
||||||
|
|
||||||
|
// Returns true if the shelf alignment is BOTTOM_LOCKED, which is not exposed
|
||||||
|
// via prefs.
|
||||||
|
IsAlignmentBottomLocked() => (bool locked);
|
||||||
|
};
|
14
ash/public/interfaces/shell_test_api.mojom
Normal file
14
ash/public/interfaces/shell_test_api.mojom
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
interface ShellTestApi {
|
||||||
|
// Returns true if a system modal window is open (e.g. the Wi-Fi network
|
||||||
|
// password dialog).
|
||||||
|
IsSystemModalWindowOpen() => (bool visible);
|
||||||
|
|
||||||
|
// Enables or disables the tablet mode window manager.
|
||||||
|
EnableTabletModeWindowManager(bool enable);
|
||||||
|
};
|
18
ash/public/interfaces/shutdown.mojom
Normal file
18
ash/public/interfaces/shutdown.mojom
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
module ash.mojom;
|
||||||
|
|
||||||
|
// Interface implemented by ash and used by chrome to provide shutdown policy
|
||||||
|
// information. Exists because device policy is owned by chrome, not ash.
|
||||||
|
interface ShutdownController {
|
||||||
|
// Sets a boolean pref that indicates whether the device automatically reboots
|
||||||
|
// when the user initiates a shutdown via an UI element. Used in enterprise
|
||||||
|
// environments for devices that should not be shut down.
|
||||||
|
SetRebootOnShutdown(bool reboot_on_shutdown);
|
||||||
|
|
||||||
|
// Triggers an animated shutdown after the login screen shutdown button was
|
||||||
|
// pressed.
|
||||||
|
RequestShutdownFromLoginScreen();
|
||||||
|
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user