| Index: chrome/browser/extensions/api/proxy/proxy_api_helpers.cc | 
| diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc | 
| index 48b590a2516875df99c0b7f9bdfd4a487fac1716..c7639303ea45fb5d1ab8927c37d57dfafa1ea21f 100644 | 
| --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc | 
| +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc | 
| @@ -15,7 +15,10 @@ | 
|  | 
| #include <stddef.h> | 
|  | 
| +#include <utility> | 
| + | 
| #include "base/base64.h" | 
| +#include "base/memory/ptr_util.h" | 
| #include "base/strings/string_tokenizer.h" | 
| #include "base/strings/string_util.h" | 
| #include "base/strings/utf_string_conversions.h" | 
| @@ -359,13 +362,12 @@ std::unique_ptr<base::DictionaryValue> CreateProxyConfigDict( | 
| return result_proxy_config; | 
| } | 
|  | 
| -base::DictionaryValue* CreateProxyRulesDict( | 
| +std::unique_ptr<base::DictionaryValue> CreateProxyRulesDict( | 
| const ProxyConfigDictionary& proxy_config) { | 
| ProxyPrefs::ProxyMode mode; | 
| CHECK(proxy_config.GetMode(&mode) && mode == ProxyPrefs::MODE_FIXED_SERVERS); | 
|  | 
| -  std::unique_ptr<base::DictionaryValue> extension_proxy_rules( | 
| -      new base::DictionaryValue); | 
| +  auto extension_proxy_rules = base::MakeUnique<base::DictionaryValue>(); | 
|  | 
| std::string proxy_servers; | 
| if (!proxy_config.GetProxyServer(&proxy_servers)) { | 
| @@ -421,16 +423,18 @@ base::DictionaryValue* CreateProxyRulesDict( | 
| LOG(ERROR) << "Invalid bypassList in configuration."; | 
| return NULL; | 
| } | 
| -    base::ListValue* bypass_list = | 
| +    std::unique_ptr<base::ListValue> bypass_list = | 
| TokenizeToStringList(bypass_list_string, ",;"); | 
| -    extension_proxy_rules->Set(keys::kProxyConfigBypassList, bypass_list); | 
| +    extension_proxy_rules->Set(keys::kProxyConfigBypassList, | 
| +                               std::move(bypass_list)); | 
| } | 
|  | 
| -  return extension_proxy_rules.release(); | 
| +  return extension_proxy_rules; | 
| } | 
|  | 
| -base::DictionaryValue* CreateProxyServerDict(const net::ProxyServer& proxy) { | 
| -  std::unique_ptr<base::DictionaryValue> out(new base::DictionaryValue); | 
| +std::unique_ptr<base::DictionaryValue> CreateProxyServerDict( | 
| +    const net::ProxyServer& proxy) { | 
| +  auto out = base::MakeUnique<base::DictionaryValue>(); | 
| switch (proxy.scheme()) { | 
| case net::ProxyServer::SCHEME_HTTP: | 
| out->SetString(keys::kProxyConfigRuleScheme, "http"); | 
| @@ -454,16 +458,15 @@ base::DictionaryValue* CreateProxyServerDict(const net::ProxyServer& proxy) { | 
| } | 
| out->SetString(keys::kProxyConfigRuleHost, proxy.host_port_pair().host()); | 
| out->SetInteger(keys::kProxyConfigRulePort, proxy.host_port_pair().port()); | 
| -  return out.release(); | 
| +  return out; | 
| } | 
|  | 
| -base::DictionaryValue* CreatePacScriptDict( | 
| +std::unique_ptr<base::DictionaryValue> CreatePacScriptDict( | 
| const ProxyConfigDictionary& proxy_config) { | 
| ProxyPrefs::ProxyMode mode; | 
| CHECK(proxy_config.GetMode(&mode) && mode == ProxyPrefs::MODE_PAC_SCRIPT); | 
|  | 
| -  std::unique_ptr<base::DictionaryValue> pac_script_dict( | 
| -      new base::DictionaryValue); | 
| +  auto pac_script_dict = base::MakeUnique<base::DictionaryValue>(); | 
| std::string pac_url; | 
| if (!proxy_config.GetPacUrl(&pac_url)) { | 
| LOG(ERROR) << "Invalid proxy configuration. Missing PAC URL."; | 
| @@ -487,12 +490,13 @@ base::DictionaryValue* CreatePacScriptDict( | 
| } | 
| pac_script_dict->SetBoolean(keys::kProxyConfigPacScriptMandatory, | 
| pac_mandatory); | 
| -  return pac_script_dict.release(); | 
| +  return pac_script_dict; | 
| } | 
|  | 
| -base::ListValue* TokenizeToStringList(const std::string& in, | 
| -                                const std::string& delims) { | 
| -  base::ListValue* out = new base::ListValue; | 
| +std::unique_ptr<base::ListValue> TokenizeToStringList( | 
| +    const std::string& in, | 
| +    const std::string& delims) { | 
| +  auto out = base::MakeUnique<base::ListValue>(); | 
| base::StringTokenizer entries(in, delims); | 
| while (entries.GetNext()) | 
| out->AppendString(entries.token()); | 
|  |