Index: chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js |
diff --git a/chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js b/chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js |
index 3f9da830ac5b77fae550d1b766873610aba05f3b..025748f5009b62b1c763efd7c3182e62cd2c4dae 100644 |
--- a/chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js |
+++ b/chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js |
@@ -11,8 +11,11 @@ cr.define('settings', function() { |
useCurrentPages: assertNotReached, |
- /** @param {string} url */ |
- canAddPage: assertNotReached, |
+ /** |
+ * @param {string} url |
+ * @return {!PromiseResolver<boolean>} Whether the URL is valid. |
+ */ |
+ validateStartupPage: assertNotReached, |
/** @param {string} url */ |
addStartupPage: assertNotReached, |
@@ -30,23 +33,30 @@ cr.define('settings', function() { |
cr.addSingletonGetter(StartupUrlsPageBrowserProxyImpl); |
StartupUrlsPageBrowserProxyImpl.prototype = { |
+ /** @override */ |
loadStartupPages: function() { |
chrome.send('onStartupPrefsPageLoad'); |
}, |
+ /** @override */ |
useCurrentPages: function() { |
chrome.send('setStartupPagesToCurrentPages'); |
}, |
- canAddPage: function(url) { |
- // TODO(dbeam): hook up to C++ for deeper validation. |
- return url.trim().length > 0; |
+ /** @override */ |
+ validateStartupPage: function(url) { |
+ var resolver = new PromiseResolver(); |
+ resolver.promise = url.trim().length == 0 ? Promise.resolve(false) : |
+ cr.sendWithPromise('validateStartupPage', url); |
+ return resolver; |
}, |
+ /** @override */ |
addStartupPage: function(url) { |
chrome.send('addStartupPage', [url.trim()]); |
}, |
+ /** @override */ |
removeStartupPage: function(index) { |
chrome.send('removeStartupPage', [index]); |
}, |