Index: chrome/browser/resources/options/handler_options_list.js |
diff --git a/chrome/browser/resources/options/handler_options_list.js b/chrome/browser/resources/options/handler_options_list.js |
index 12129a89a2558610258ed49cc2162e9e3abf4170..fb642d60a589b1863ce8c4f049e0e2a03e939afa 100644 |
--- a/chrome/browser/resources/options/handler_options_list.js |
+++ b/chrome/browser/resources/options/handler_options_list.js |
@@ -151,16 +151,46 @@ cr.define('options', function() { |
this.classList.add('none'); |
this.appendChild(handlerElement); |
- // Remove link. |
- var removeElement = document.createElement('div'); |
- removeElement.textContent = |
- loadTimeData.getString('handlers_remove_link'); |
- removeElement.addEventListener('click', function(e) { |
- var value = selectElement ? selectElement.value : 0; |
- delegate.removeHandler(value, data.handlers[value]); |
- }); |
- removeElement.className = 'handlers-remove-column handlers-remove-link'; |
- this.appendChild(removeElement); |
+ if (data.has_policy_recommendations) { |
+ // Create an indicator to show that the handler has policy |
+ // recommendation. |
bartfab (slow)
2014/09/01 14:56:44
Nit: s/recommendation/recommendations/
kaliamoorthi
2014/09/01 15:11:58
Done.
|
+ var indicator = new options.ControlledSettingIndicator(); |
+ if (data.registered_by_user || data.default_handler == -1) { |
+ // The default handler is registered by the user or set to none, which |
+ // indicates that the user setting has overridden policy |
bartfab (slow)
2014/09/01 14:56:44
1: Nit: s/policy/a policy/
kaliamoorthi
2014/09/01 15:11:58
Done.
|
+ // recommendation. Show the appropriate bubble. |
+ indicator.controlledBy = 'hasRecommendation'; |
+ indicator.resetHandler = function() { |
+ // If there is a policy recommendation, data.handlers.length >= 1. |
+ // Setting the default handler to 0 ensures that it won't be 'none', |
+ // and there *is* a user registered handler created by setDefault, |
+ // which is required for a return notification. |
bartfab (slow)
2014/09/01 14:56:44
Nit: What is a "return notification"?
kaliamoorthi
2014/09/01 15:11:58
Done.
|
+ // The user registered handlers are removed in a loop. Note, if a |
bartfab (slow)
2014/09/01 14:56:44
Nit 1: s/user registered/user-registered/
Nit 2: s
kaliamoorthi
2014/09/01 15:11:58
Done.
|
+ // handler is installed by policy, removeHandler does nothing. |
+ delegate.setDefault(data.handlers[0]); |
+ for (var i = 0; i < data.handlers.length; ++i) { |
+ delegate.removeHandler(value, data.handlers[i]); |
+ } |
+ }; |
+ } else { |
+ indicator.controlledBy = 'recommended'; |
+ } |
+ this.appendChild(indicator); |
+ } |
+ |
+ if (data.registered_by_user) { |
+ // Remove link. |
+ var removeElement = document.createElement('div'); |
+ removeElement.textContent = |
+ loadTimeData.getString('handlers_remove_link'); |
+ removeElement.addEventListener('click', function(e) { |
+ var value = selectElement ? selectElement.value : 0; |
+ delegate.removeHandler(value, data.handlers[value]); |
+ }); |
+ removeElement.className = |
+ 'handlers-remove-column handlers-remove-link'; |
+ this.appendChild(removeElement); |
+ } |
}, |
/** @override */ |