| Index: components/url_formatter/url_formatter.cc
 | 
| diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
 | 
| index f3da52cb748435f3f75c4525550882ad9033aeaf..298b1c18ff42bfae9102433a16200dd4a65d642b 100644
 | 
| --- a/components/url_formatter/url_formatter.cc
 | 
| +++ b/components/url_formatter/url_formatter.cc
 | 
| @@ -212,6 +212,7 @@ base::string16 IDNToUnicodeWithAdjustments(
 | 
|    // Do each component of the host separately, since we enforce script matching
 | 
|    // on a per-component basis.
 | 
|    base::string16 out16;
 | 
| +  bool has_idn_component = false;
 | 
|    for (size_t component_start = 0, component_end;
 | 
|         component_start < input16.length();
 | 
|         component_start = component_end + 1) {
 | 
| @@ -227,6 +228,7 @@ base::string16 IDNToUnicodeWithAdjustments(
 | 
|        converted_idn =
 | 
|            IDNToUnicodeOneComponent(input16.data() + component_start,
 | 
|                                     component_length, is_tld_ascii, &out16);
 | 
| +      has_idn_component |= converted_idn;
 | 
|      }
 | 
|      size_t new_component_length = out16.length() - new_component_start;
 | 
|  
 | 
| @@ -239,6 +241,15 @@ base::string16 IDNToUnicodeWithAdjustments(
 | 
|      if (component_end < input16.length())
 | 
|        out16.push_back('.');
 | 
|    }
 | 
| +
 | 
| +  // Leave as punycode any inputs that spoof top domains.
 | 
| +  if (has_idn_component &&
 | 
| +      g_idn_spoof_checker.Get().SimilarToTopDomains(out16)) {
 | 
| +    if (adjustments)
 | 
| +      adjustments->clear();
 | 
| +    return input16;
 | 
| +  }
 | 
| +
 | 
|    return out16;
 | 
|  }
 | 
|  
 | 
| 
 |