Commit 32f4d9ca authored by Raphael Kubo da Costa's avatar Raphael Kubo da Costa Committed by Commit Bot

CORS: Take a std::initializer_list in cors_error_string.cc's Append()

Follow-up to fc0443b1 ("Update CORS error messages"), which broke the GCC
build because GCC does not implicitly covert all array items to StringViews
when Append() is invoked:

    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc: In function ‘WTF::String blink::CORS::GetErrorString(const network::CORSErrorStatus&, const blink::KURL&, const blink::KURL&, const blink::SecurityOrigin&, blink::Resource::Type, const WTF::AtomicString&)’:
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:72:55: error: no matching function for call to ‘Append(WTF::StringBuilder&, <brace-enclosed initializer list>)’
                        last_request_url.GetString(), "' "});
                                                           ^
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:24:6: note: candidate: ‘template<long unsigned int N> void blink::CORS::{anonymous}::Append(WTF::StringBuilder&, const WTF::StringView (&)[N])’
      void Append(StringBuilder& builder, const StringView (&views)[N]) {
          ^~~~~~
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:24:6: note:   template argument deduction/substitution failed:
    ../../third_party/blink/renderer/platform/loader/cors/cors_error_string.cc:72:55: note:   mismatched types ‘WTF::StringView’ and ‘const char*’
                        last_request_url.GetString(), "' "});
                                                           ^

Make the local Append() function take a std::initializer_list<StringView> to
make sure all items are converted to that type on invocation.

Bug: 819294
Change-Id: I7c14773589dda16e7c882270e206d1b66dbb73b4
Reviewed-on: https://chromium-review.googlesource.com/1155113Reviewed-by: default avatarAdam Rice <ricea@chromium.org>
Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#579346}
parent e03fb6c8
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "third_party/blink/renderer/platform/loader/cors/cors_error_string.h" #include "third_party/blink/renderer/platform/loader/cors/cors_error_string.h"
#include <initializer_list>
#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/weborigin/scheme_registry.h" #include "third_party/blink/renderer/platform/weborigin/scheme_registry.h"
...@@ -20,10 +22,10 @@ namespace CORS { ...@@ -20,10 +22,10 @@ namespace CORS {
namespace { namespace {
template <size_t N> void Append(StringBuilder& builder, std::initializer_list<StringView> views) {
void Append(StringBuilder& builder, const StringView (&views)[N]) { for (const StringView& view : views) {
for (size_t i = 0; i < N; ++i) builder.Append(view);
builder.Append(views[i]); }
} }
bool IsPreflightError(network::mojom::CORSError error_code) { bool IsPreflightError(network::mojom::CORSError error_code) {
......
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