Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Issue 2446273004: Reduce buggy usage of the registry controlled domain service. (Closed)

Created:
4 years, 1 month ago by brettw
Modified:
4 years, 1 month ago
Reviewers:
Peter Kasting, wychen
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, cbentzel+watch_chromium.org, extensions-reviews_chromium.org, grt+watch_chromium.org, jam, dglazkov+blink, darin-cc_chromium.org, chromium-apps-reviews_chromium.org, blink-reviews, pam+watch_chromium.org, blink-reviews-api_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Reduce buggy usage of the registry controlled domain service. GetRegistryLength for host names canonicalizes the input for the caller, but then returns the length in the canonicalized input, which is not necessarily the same as the length in the original string. As a result, computations performed by the caller based on this value can be wrong (see the bug for more). All callers of this function were audited and changed to use on of the following: - Many callers don't need the offsets. A new function HostHasRegistryControlledDomain is added to check for the presence of a R.C.D. without the risk of returning incorrect string lengths. - Many callers already have guaranteed-canonical strings (they came out of a GURL or KURL object soon before the call) These were changed to use a new GetCanonicalHostRegistryLength function. A further advantage is that these calls will be faster. - A new Permissive function is added that handles cases where the input is necessarily non-canonical. Adds an IDN test case to the unit tests. Removes checking for IP addresses in the already-known-canonical cases. This requires a separate full canonicalization and IP addresses should never match the R.C.D. list. Reland of https://codereview.chromium.org/2433583002/ with fix. R=pkasting BUG=657199 Committed: https://crrev.com/0a8baeebb5bb84e4dc2449c6860f32928eaa6d4c Cr-Commit-Position: refs/heads/master@{#427779}

Patch Set 1 : Original patch #

Patch Set 2 : cronet fix #

Total comments: 2

Patch Set 3 : Review comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+654 lines, -272 lines) Patch
M chrome/browser/android/history_report/delta_file_commons.cc View 2 chunks +5 lines, -5 lines 0 comments Download
M chrome/browser/supervised_user/supervised_user_url_filter.h View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/supervised_user/supervised_user_url_filter.cc View 2 chunks +6 lines, -5 lines 0 comments Download
M chrome/renderer/safe_browsing/phishing_url_feature_extractor.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M components/google/core/browser/google_util.cc View 5 chunks +24 lines, -20 lines 0 comments Download
M components/history/core/browser/history_backend.cc View 1 chunk +1 line, -1 line 0 comments Download
M components/omnibox/browser/autocomplete_input.cc View 1 chunk +1 line, -1 line 0 comments Download
M components/omnibox/browser/history_quick_provider.cc View 1 chunk +7 lines, -8 lines 0 comments Download
M components/omnibox/browser/history_url_provider.cc View 1 chunk +4 lines, -5 lines 0 comments Download
M components/search_engines/template_url_service.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M components/ssl_errors/error_classification.h View 1 chunk +1 line, -1 line 0 comments Download
M components/ssl_errors/error_classification.cc View 5 chunks +7 lines, -10 lines 0 comments Download
M components/ssl_errors/error_classification_unittest.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M components/url_formatter/url_fixer.cc View 1 chunk +8 lines, -13 lines 0 comments Download
M content/renderer/webpublicsuffixlist_impl.h View 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/webpublicsuffixlist_impl.cc View 1 chunk +7 lines, -6 lines 0 comments Download
M extensions/common/csp_validator.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M extensions/common/manifest_handlers/externally_connectable.cc View 3 chunks +15 lines, -11 lines 0 comments Download
M extensions/common/permissions/permission_message_util.cc View 1 chunk +5 lines, -4 lines 0 comments Download
M extensions/common/url_pattern.cc View 1 chunk +11 lines, -15 lines 0 comments Download
M net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf View 1 chunk +1 line, -0 lines 0 comments Download
M net/base/registry_controlled_domains/registry_controlled_domain.h View 2 chunks +53 lines, -5 lines 0 comments Download
M net/base/registry_controlled_domains/registry_controlled_domain.cc View 3 chunks +173 lines, -14 lines 0 comments Download
M net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc View 1 2 8 chunks +200 lines, -104 lines 0 comments Download
M net/base/url_util.cc View 1 chunk +3 lines, -4 lines 0 comments Download
M net/cert/cert_verify_proc.cc View 1 chunk +3 lines, -5 lines 0 comments Download
M net/cert/x509_certificate.cc View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/public/platform/WebPublicSuffixList.h View 1 chunk +1 line, -1 line 0 comments Download
M url/url_canon.h View 1 chunk +27 lines, -0 lines 0 comments Download
M url/url_canon_host.cc View 4 chunks +35 lines, -18 lines 0 comments Download
M url/url_canon_unittest.cc View 1 chunk +44 lines, -0 lines 0 comments Download

Messages

Total messages: 21 (11 generated)
brettw
cronet fix
4 years, 1 month ago (2016-10-26 17:08:15 UTC) #3
brettw
TBR reland, diff is in PS1 (skip IDN tests when we're not linking ICU)
4 years, 1 month ago (2016-10-26 17:09:47 UTC) #6
Peter Kasting
LGTM https://codereview.chromium.org/2446273004/diff/20001/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc File net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc (right): https://codereview.chromium.org/2446273004/diff/20001/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc#newcode572 net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc:572: #if !BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES) Nit: Might want to note in ...
4 years, 1 month ago (2016-10-26 17:11:48 UTC) #8
brettw
Review comment
4 years, 1 month ago (2016-10-26 17:42:53 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2446273004/40001
4 years, 1 month ago (2016-10-26 17:43:29 UTC) #13
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 1 month ago (2016-10-26 19:47:56 UTC) #15
brettw
https://codereview.chromium.org/2446273004/diff/20001/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc File net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc (right): https://codereview.chromium.org/2446273004/diff/20001/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc#newcode572 net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc:572: #if !BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES) On 2016/10/26 17:11:48, Peter Kasting wrote: > ...
4 years, 1 month ago (2016-10-26 19:55:48 UTC) #16
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/0a8baeebb5bb84e4dc2449c6860f32928eaa6d4c Cr-Commit-Position: refs/heads/master@{#427779}
4 years, 1 month ago (2016-10-26 20:00:20 UTC) #18
wychen
A revert of this CL (patchset #3 id:40001) has been created in https://codereview.chromium.org/2454813002/ by wychen@chromium.org. ...
4 years, 1 month ago (2016-10-26 20:07:21 UTC) #19
wychen
4 years, 1 month ago (2016-10-26 21:54:07 UTC) #21

Powered by Google App Engine
This is Rietveld 408576698