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

Side by Side Diff: url/url_canon_relative.cc

Issue 2895953002: Update dangling markup mitigations. (Closed)
Patch Set: Test. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Canonicalizer functions for working with and resolving relative URLs. 5 // Canonicalizer functions for working with and resolving relative URLs.
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "url/url_canon.h" 10 #include "url/url_canon.h"
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 bool DoResolveRelativeURL(const char* base_url, 436 bool DoResolveRelativeURL(const char* base_url,
437 const Parsed& base_parsed, 437 const Parsed& base_parsed,
438 bool base_is_file, 438 bool base_is_file,
439 const CHAR* relative_url, 439 const CHAR* relative_url,
440 const Component& relative_component, 440 const Component& relative_component,
441 CharsetConverter* query_converter, 441 CharsetConverter* query_converter,
442 CanonOutput* output, 442 CanonOutput* output,
443 Parsed* out_parsed) { 443 Parsed* out_parsed) {
444 // |base_parsed| is the starting point for our output. Since we may have 444 // |base_parsed| is the starting point for our output. Since we may have
445 // removed whitespace from |relative_url| before entering this method, we'll 445 // removed whitespace from |relative_url| before entering this method, we'll
446 // carry over the |whitespace_removed| flag. 446 // carry over the |potentially_dangling_markup| flag.
447 bool whitespace_removed = out_parsed->whitespace_removed; 447 bool potentially_dangling_markup = out_parsed->potentially_dangling_markup;
448 *out_parsed = base_parsed; 448 *out_parsed = base_parsed;
449 if (whitespace_removed) 449 if (potentially_dangling_markup)
450 out_parsed->whitespace_removed = true; 450 out_parsed->potentially_dangling_markup = true;
451 451
452 // Sanity check: the input should have a host or we'll break badly below. 452 // Sanity check: the input should have a host or we'll break badly below.
453 // We can only resolve relative URLs with base URLs that have hosts and 453 // We can only resolve relative URLs with base URLs that have hosts and
454 // paths (even the default path of "/" is OK). 454 // paths (even the default path of "/" is OK).
455 // 455 //
456 // We allow hosts with no length so we can handle file URLs, for example. 456 // We allow hosts with no length so we can handle file URLs, for example.
457 if (base_parsed.path.len <= 0) { 457 if (base_parsed.path.len <= 0) {
458 // On error, return the input (resolving a relative URL on a non-relative 458 // On error, return the input (resolving a relative URL on a non-relative
459 // base = the base). 459 // base = the base).
460 int base_len = base_parsed.Length(); 460 int base_len = base_parsed.Length();
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 const Component& relative_component, 573 const Component& relative_component,
574 CharsetConverter* query_converter, 574 CharsetConverter* query_converter,
575 CanonOutput* output, 575 CanonOutput* output,
576 Parsed* out_parsed) { 576 Parsed* out_parsed) {
577 return DoResolveRelativeURL<base::char16>( 577 return DoResolveRelativeURL<base::char16>(
578 base_url, base_parsed, base_is_file, relative_url, 578 base_url, base_parsed, base_is_file, relative_url,
579 relative_component, query_converter, output, out_parsed); 579 relative_component, query_converter, output, out_parsed);
580 } 580 }
581 581
582 } // namespace url 582 } // namespace url
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698