blob: c92b6624acd385681b1ad46851a9baf0bc1e026a [file] [log] [blame]
// 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.
cr.define('settings', function() {
/** @interface */
class ChromeCleanupProxy {
/**
* Registers the current ChromeCleanupHandler as an observer of
* ChromeCleanerController events.
*/
registerChromeCleanerObserver() {}
/**
* Starts scanning the user's computer.
* @param {boolean} logsUploadEnabled
*/
startScanning(logsUploadEnabled) {}
/**
* Starts a cleanup on the user's computer.
* @param {boolean} logsUploadEnabled
*/
startCleanup(logsUploadEnabled) {}
/**
* Restarts the user's computer.
*/
restartComputer() {}
/**
* Hides the Cleanup page from the settings menu.
* @param {number} source
*/
dismissCleanupPage(source) {}
/**
* Updates the cleanup logs upload permission status.
* @param {boolean} enabled
*/
setLogsUploadPermission(enabled) {}
/**
* Notifies Chrome that the state of the details section changed.
* @param {boolean} enabled
*/
notifyShowDetails(enabled) {}
/**
* Notifies Chrome that the "learn more" link was clicked.
*/
notifyLearnMoreClicked() {}
/**
* Requests the plural string for the "show more" link in the detailed
* view for either files to delete or registry keys.
* @param {number} numHiddenItems
* @return {!Promise<string>}
*/
getMoreItemsPluralString(numHiddenItems) {}
/**
* Requests the plural string for the "items to remove" link in the detailed
* view.
* @param {number} numItems
* @return {!Promise<string>}
*/
getItemsToRemovePluralString(numItems) {}
}
/**
* @implements {settings.ChromeCleanupProxy}
*/
class ChromeCleanupProxyImpl {
/** @override */
registerChromeCleanerObserver() {
chrome.send('registerChromeCleanerObserver');
}
/** @override */
startScanning(logsUploadEnabled) {
chrome.send('startScanning', [logsUploadEnabled]);
}
/** @override */
startCleanup(logsUploadEnabled) {
chrome.send('startCleanup', [logsUploadEnabled]);
}
/** @override */
restartComputer() {
chrome.send('restartComputer');
}
/** @override */
dismissCleanupPage(source) {
chrome.send('dismissCleanupPage', [source]);
}
/** @override */
setLogsUploadPermission(enabled) {
chrome.send('setLogsUploadPermission', [enabled]);
}
/** @override */
notifyShowDetails(enabled) {
chrome.send('notifyShowDetails', [enabled]);
}
/** @override */
notifyLearnMoreClicked() {
chrome.send('notifyChromeCleanupLearnMoreClicked');
}
/** @override */
getMoreItemsPluralString(numHiddenItems) {
return cr.sendWithPromise('getMoreItemsPluralString', numHiddenItems);
}
/** @override */
getItemsToRemovePluralString(numItems) {
return cr.sendWithPromise('getItemsToRemovePluralString', numItems);
}
}
cr.addSingletonGetter(ChromeCleanupProxyImpl);
return {
ChromeCleanupProxy: ChromeCleanupProxy,
ChromeCleanupProxyImpl: ChromeCleanupProxyImpl,
};
});