Commit 3201d75d authored by Yi Gu's avatar Yi Gu Committed by Commit Bot

Revert "Repeat path canonicalization in ContentSettingsPattern::Builder"

This reverts commit 2d4e58ed.

Reason for revert: Suspecting that the patch crashed some tests when running test urls. https://ci.chromium.org/p/chromium/builders/ci/Network%20Service%20Linux/11891 

Original change's description:
> Repeat path canonicalization in ContentSettingsPattern::Builder
>
> The fuzzer discovered an input that uncovers non-idempotency in
> ContentSettingsPattern::Builder::Canonicalize. First, the function
> changes |parts->path| from "/.//" to "//". On a second call, the "//" is
> changed to "/".
>
> This CL repeats the path canonicalization until we reach a fixed point.
>
> Bug: 1117622, 1132957, 1128999
> Change-Id: I96da902e50a4a9b654a7d4184ef4ad2c0689e705
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2406332
> Commit-Queue: Balazs Engedy <engedy@chromium.org>
> Reviewed-by: Balazs Engedy <engedy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#811717}

TBR=engedy@chromium.org,dmcardle@chromium.org

Change-Id: Icf5b20112f621b6012d58987c85205b511b4263a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1117622
Bug: 1132957
Bug: 1128999
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2436520Reviewed-by: default avatarYi Gu <yigu@chromium.org>
Commit-Queue: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811758}
parent 072d850a
...@@ -15,14 +15,12 @@ ...@@ -15,14 +15,12 @@
#include "base/notreached.h" #include "base/notreached.h"
#include "base/optional.h" #include "base/optional.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/strcat.h"
#include "base/strings/string_piece.h" #include "base/strings/string_piece.h"
#include "base/strings/string_split.h" #include "base/strings/string_split.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "components/content_settings/core/common/content_settings_pattern_parser.h" #include "components/content_settings/core/common/content_settings_pattern_parser.h"
#include "net/base/url_util.h" #include "net/base/url_util.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/url_constants.h"
namespace { namespace {
...@@ -242,18 +240,9 @@ bool ContentSettingsPattern::Builder::Canonicalize(PatternParts* parts) { ...@@ -242,18 +240,9 @@ bool ContentSettingsPattern::Builder::Canonicalize(PatternParts* parts) {
parts->scheme = base::ToLowerASCII(parts->scheme); parts->scheme = base::ToLowerASCII(parts->scheme);
if (parts->scheme == url::kFileScheme && !parts->is_path_wildcard) { if (parts->scheme == url::kFileScheme && !parts->is_path_wildcard) {
// TODO(crbug.com/1132957): Remove this loop once GURL canonicalization is GURL url(std::string(url::kFileScheme) +
// idempotent (see crbug.com/1128999). std::string(url::kStandardSchemeSeparator) + parts->path);
while (true) { parts->path = url.path();
std::string url_spec = base::StrCat(
{url::kFileScheme, url::kStandardSchemeSeparator, parts->path});
GURL url(url_spec);
if (!url.is_valid())
return false;
if (parts->path == url.path_piece())
break;
parts->path = url.path();
}
} }
// Canonicalize the host part. // Canonicalize the host part.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment