Commit af2575a0 authored by Wei Lee's avatar Wei Lee Committed by Commit Bot

[CCA] Use IdleManager API rather than chrome.idle

Bug: 980846
Test: Manually tested

Change-Id: Icbc8788df1c58b90f7676e6de365899d6e07d943
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2064231Reviewed-by: default avatarKuo Jen Wei <inker@chromium.org>
Reviewed-by: default avatarShik Chen <shik@chromium.org>
Commit-Queue: Wei Lee <wtlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751942}
parent d92f2950
......@@ -376,6 +376,7 @@ module.exports = {
// BigInt64Array as a defined type.
'BigInt64Array': 'readable',
'chromeosCamera': 'readable',
'blink': 'readable',
'cca': 'readable', // TODO(inker): remove this after resolving b/141518780.
'cros': 'readable',
'webkitRequestFileSystem': 'readable',
......
......@@ -229,6 +229,8 @@ copy("chrome_camera_app_mojo_generated") {
"$root_gen_dir/media/capture/video/chromeos/mojom/camera_metadata.mojom-lite.js",
"$root_gen_dir/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom-lite.js",
"$root_gen_dir/mojo/public/js/mojo_bindings_lite.js",
"$root_gen_dir/mojo/public/mojom/base/time.mojom-lite.js",
"$root_gen_dir/third_party/blink/public/mojom/idle/idle_manager.mojom-lite.js",
"$root_gen_dir/ui/gfx/geometry/mojom/geometry.mojom-lite.js",
"$root_gen_dir/ui/gfx/range/mojom/range.mojom-lite.js",
]
......@@ -240,6 +242,7 @@ copy("chrome_camera_app_mojo_generated") {
"//media/capture/mojom:image_capture_js",
"//media/capture/video/chromeos/mojom:cros_camera_js",
"//mojo/public/js:bindings_lite",
"//third_party/blink/public/mojom:mojom_platform_js",
"//ui/gfx/geometry/mojom:mojom_js",
"//ui/gfx/range/mojom:mojom_js",
]
......
......@@ -9,7 +9,10 @@ js_type_check("closure_compile") {
}
js_library("browser_proxy") {
deps = [ "..:chrome_util" ]
deps = [
"..:chrome_util",
"../mojo:chrome_helper",
]
sources = [
"browser_proxy.js",
"browser_proxy_interface.js",
......
......@@ -75,13 +75,6 @@ class ChromeAppBrowserProxy {
return chrome.i18n.getMessage(name, substitutions);
}
/** @override */
addOnLockChangeListener(callback) {
chrome.idle.onStateChanged.addListener((newState) => {
callback(newState === 'locked');
});
}
/** @override */
isCrashReportingEnabled() {
return util.promisify(chrome.metricsPrivate.getIsCrashReportingEnabled)();
......
......@@ -67,12 +67,6 @@ export class BrowserProxy {
*/
getI18nMessage(name, substitutions = undefined) {}
/**
* @param {function(boolean)} callback
* @abstract
*/
addOnLockChangeListener(callback) {}
/**
* @return {!Promise<boolean>}
* @abstract
......
......@@ -94,11 +94,6 @@ class WebUIBrowserProxy {
return '';
}
/** @override */
addOnLockChangeListener(callback) {
NOTIMPLEMENTED();
}
/** @override */
async isCrashReportingEnabled() {
NOTIMPLEMENTED();
......
......@@ -16,6 +16,7 @@ js_library("chrome_helper") {
deps = [
"//components/arc/mojom:camera_intent_js_library_for_compile",
"//components/chromeos_camera/common:camera_app_helper_js_library_for_compile",
"//third_party/blink/public/mojom:mojom_platform_js_library_for_compile",
]
externs_list = [ "$externs_path/pending.js" ]
}
......
......@@ -124,6 +124,25 @@ export class ChromeHelper {
await this.checkReturn_('clearData()', ret);
}
/**
* Adds listener for screen locked event.
* @param {function(boolean)} callback Callback for screen locked status
* changed. Called with the latest status of whether screen is locked.
*/
async addOnLockListener(callback) {
const monitorCallbackRouter = new blink.mojom.IdleMonitorCallbackRouter();
monitorCallbackRouter.update.addListener((newState) => {
callback(newState.screen === blink.mojom.ScreenIdleState.kLocked);
});
const idleManager = blink.mojom.IdleManager.getRemote();
// Set a large threshold since we don't care about user idle.
const threshold = {microseconds: 86400000000};
const {state} = await idleManager.addMonitor(
threshold, monitorCallbackRouter.$.bindNewPipeAndPassRemote());
callback(state.screen === blink.mojom.ScreenIdleState.kLocked);
}
/**
* Creates a new instance of ChromeHelper if it is not set. Returns the
* exist instance.
......
......@@ -181,7 +181,7 @@ export class Camera extends View {
.forEach((btn) => btn.addEventListener('click', () => this.endTake_()));
// Monitor the states to stop camera when locked/minimized.
browserProxy.addOnLockChangeListener((isLocked) => {
ChromeHelper.getInstance().addOnLockListener((isLocked) => {
this.locked_ = isLocked;
if (this.locked_) {
this.start();
......
......@@ -15,7 +15,6 @@
"audioCapture",
"storage",
"unlimitedStorage",
"idle",
"chromeosInfoPrivate",
"metricsPrivate",
"fileManagerPrivate",
......
......@@ -11,6 +11,8 @@
<link rel="stylesheet" href="../css/main.css">
<script src="../js/lib/google-analytics-bundle.js"></script>
<script src="../js/mojo/mojo_bindings_lite.js"></script>
<script src="../js/mojo/time.mojom-lite.js"></script>
<script src="../js/mojo/idle_manager.mojom-lite.js"></script>
<script src="../js/mojo/camera_metadata_tags.mojom-lite.js"></script>
<script src="../js/mojo/camera_metadata.mojom-lite.js"></script>
<script src="../js/mojo/camera_common.mojom-lite.js"></script>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment