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

Side by Side Diff: content/renderer/service_worker/service_worker_type_util.cc

Issue 1372423002: [Service Workers] DCHECK from WebServiceWorkerResponse::visitHTTPHeaderFields. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added LayoutTest. Created 5 years, 2 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "content/renderer/service_worker/service_worker_type_util.h" 5 #include "content/renderer/service_worker/service_worker_type_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "content/common/service_worker/service_worker_types.h" 11 #include "content/common/service_worker/service_worker_types.h"
12 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h" 12 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
13 #include "third_party/WebKit/public/platform/WebString.h" 13 #include "third_party/WebKit/public/platform/WebString.h"
14 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h" 14 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h"
15 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h" 15 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h"
16 16
17 namespace content { 17 namespace content {
18 18
19 namespace { 19 namespace {
20 20
21 class HeaderVisitor : public blink::WebHTTPHeaderVisitor { 21 class HeaderVisitor : public blink::WebHTTPHeaderVisitor {
22 public: 22 public:
23 HeaderVisitor(ServiceWorkerHeaderMap* headers) : headers_(headers) {} 23 HeaderVisitor(ServiceWorkerHeaderMap* headers) : headers_(headers) {}
24 virtual ~HeaderVisitor() {} 24 virtual ~HeaderVisitor() {}
25 25
26 void visitHeader(const blink::WebString& name, 26 void visitHeader(const blink::WebString& name,
27 const blink::WebString& value) override { 27 const blink::WebString& value) override {
28 const std::string header_name = 28 // Headers are ISO Latin 1.
29 base::UTF16ToASCII(base::StringPiece16(name)); 29 const std::string& header_name = name.latin1();
30 const std::string header_value = 30 const std::string& header_value = value.latin1();
31 base::UTF16ToASCII(base::StringPiece16(value));
32 CHECK(header_name.find('\0') == std::string::npos); 31 CHECK(header_name.find('\0') == std::string::npos);
33 CHECK(header_value.find('\0') == std::string::npos); 32 CHECK(header_value.find('\0') == std::string::npos);
34 headers_->insert(ServiceWorkerHeaderMap::value_type( 33 headers_->insert(ServiceWorkerHeaderMap::value_type(
35 header_name, header_value)); 34 header_name, header_value));
36 } 35 }
37 36
38 private: 37 private:
39 ServiceWorkerHeaderMap* headers_; 38 ServiceWorkerHeaderMap* headers_;
40 }; 39 };
41 40
(...skipping 13 matching lines...) Expand all
55 54
56 void GetServiceWorkerHeaderMapFromWebResponse( 55 void GetServiceWorkerHeaderMapFromWebResponse(
57 const blink::WebServiceWorkerResponse& web_response, 56 const blink::WebServiceWorkerResponse& web_response,
58 ServiceWorkerHeaderMap* headers) { 57 ServiceWorkerHeaderMap* headers) {
59 DCHECK(headers); 58 DCHECK(headers);
60 DCHECK(!headers->size()); 59 DCHECK(!headers->size());
61 web_response.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get()); 60 web_response.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get());
62 } 61 }
63 62
64 } // namespace content 63 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698