Currently the Settings UI uses an extension API to handle display configuration:
https://cs.chromium.org/chromium/src/extensions/common/api/system_display.idl
This API is implemented in src/chrome and makes mojo calls to Ash using cros_display_config.mojom:
https://cs.chromium.org/chromium/src/ash/public/interfaces/cros_display_config.mojom
If we allow the Settings UI to make mojo calls and use cros_display_config.mojom directly, we will gain several advantages:
1) Less indirection / simpler code: Settings JS -> Ash instead of Settings JS -> Chrome -> Ash.
2) Less extension API code to maintain; The chrome.system.display is accessible from kiosk apps. Some of the API exists just to support Settings. Eliminating that support will make the API more concise, easier to maintain, and more secure.
3) More maintainable. New features only need to implement or extend the mojo API.
Comment 1 by steve...@chromium.org
, Jun 18 2018