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

Side by Side Diff: Source/modules/websockets/WebSocketHandshake.cpp

Issue 482753002: Use StringBuilder::appendLiteral() / StringBuilder::append(char) when possible (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 3 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 } 167 }
168 168
169 String WebSocketHandshake::clientOrigin() const 169 String WebSocketHandshake::clientOrigin() const
170 { 170 {
171 return m_document->securityOrigin()->toString(); 171 return m_document->securityOrigin()->toString();
172 } 172 }
173 173
174 String WebSocketHandshake::clientLocation() const 174 String WebSocketHandshake::clientLocation() const
175 { 175 {
176 StringBuilder builder; 176 StringBuilder builder;
177 builder.append(m_secure ? "wss" : "ws"); 177 if (m_secure)
178 builder.append("://"); 178 builder.appendLiteral("wss");
179 else
180 builder.appendLiteral("ws");
181 builder.appendLiteral("://");
179 builder.append(hostName(m_url, m_secure)); 182 builder.append(hostName(m_url, m_secure));
180 builder.append(resourceName(m_url)); 183 builder.append(resourceName(m_url));
181 return builder.toString(); 184 return builder.toString();
182 } 185 }
183 186
184 CString WebSocketHandshake::clientHandshakeMessage() const 187 CString WebSocketHandshake::clientHandshakeMessage() const
185 { 188 {
186 ASSERT(m_document); 189 ASSERT(m_document);
187 190
188 // Keep the following consistent with clientHandshakeRequest(). 191 // Keep the following consistent with clientHandshakeRequest().
189 StringBuilder builder; 192 StringBuilder builder;
190 193
191 builder.append("GET "); 194 builder.appendLiteral("GET ");
192 builder.append(resourceName(m_url)); 195 builder.append(resourceName(m_url));
193 builder.append(" HTTP/1.1\r\n"); 196 builder.appendLiteral(" HTTP/1.1\r\n");
194 197
195 Vector<String> fields; 198 Vector<String> fields;
196 fields.append("Upgrade: websocket"); 199 fields.append("Upgrade: websocket");
197 fields.append("Connection: Upgrade"); 200 fields.append("Connection: Upgrade");
198 fields.append("Host: " + hostName(m_url, m_secure)); 201 fields.append("Host: " + hostName(m_url, m_secure));
199 fields.append("Origin: " + clientOrigin()); 202 fields.append("Origin: " + clientOrigin());
200 if (!m_clientProtocol.isEmpty()) 203 if (!m_clientProtocol.isEmpty())
201 fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol); 204 fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol);
202 205
203 // Add no-cache headers to avoid compatibility issue. 206 // Add no-cache headers to avoid compatibility issue.
(...skipping 10 matching lines...) Expand all
214 fields.append("Sec-WebSocket-Extensions: " + extensionValue); 217 fields.append("Sec-WebSocket-Extensions: " + extensionValue);
215 218
216 fields.append("User-Agent: " + m_document->userAgent(m_document->url())); 219 fields.append("User-Agent: " + m_document->userAgent(m_document->url()));
217 220
218 // Fields in the handshake are sent by the client in a random order; the 221 // Fields in the handshake are sent by the client in a random order; the
219 // order is not meaningful. Thus, it's ok to send the order we constructed 222 // order is not meaningful. Thus, it's ok to send the order we constructed
220 // the fields. 223 // the fields.
221 224
222 for (size_t i = 0; i < fields.size(); i++) { 225 for (size_t i = 0; i < fields.size(); i++) {
223 builder.append(fields[i]); 226 builder.append(fields[i]);
224 builder.append("\r\n"); 227 builder.appendLiteral("\r\n");
225 } 228 }
226 229
227 builder.append("\r\n"); 230 builder.appendLiteral("\r\n");
228 231
229 return builder.toString().utf8(); 232 return builder.toString().utf8();
230 } 233 }
231 234
232 PassRefPtr<WebSocketHandshakeRequest> WebSocketHandshake::clientHandshakeRequest () const 235 PassRefPtr<WebSocketHandshakeRequest> WebSocketHandshake::clientHandshakeRequest () const
233 { 236 {
234 ASSERT(m_document); 237 ASSERT(m_document);
235 238
236 // Keep the following consistent with clientHandshakeMessage(). 239 // Keep the following consistent with clientHandshakeMessage().
237 // FIXME: do we need to store m_secWebSocketKey1, m_secWebSocketKey2 and 240 // FIXME: do we need to store m_secWebSocketKey1, m_secWebSocketKey2 and
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 } 547 }
545 return true; 548 return true;
546 } 549 }
547 550
548 void WebSocketHandshake::trace(Visitor* visitor) 551 void WebSocketHandshake::trace(Visitor* visitor)
549 { 552 {
550 visitor->trace(m_document); 553 visitor->trace(m_document);
551 } 554 }
552 555
553 } // namespace blink 556 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/websockets/WebSocketExtensionDispatcher.cpp ('k') | Source/platform/JSONValues.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698