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

Side by Side Diff: Source/core/page/EventSource.cpp

Issue 112653006: Make calls to AtomicString(const String&) explicit in page/ (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Take feedback into consideration Created 6 years, 11 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
« no previous file with comments | « Source/core/page/EventSource.h ('k') | Source/core/page/Page.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2012 Ericsson AB. All rights reserved. 2 * Copyright (C) 2009, 2012 Ericsson AB. All rights reserved.
3 * Copyright (C) 2010 Apple Inc. All rights reserved. 3 * Copyright (C) 2010 Apple Inc. All rights reserved.
4 * Copyright (C) 2011, Code Aurora Forum. All rights reserved. 4 * Copyright (C) 2011, Code Aurora Forum. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 { 274 {
275 ASSERT(m_state == OPEN); 275 ASSERT(m_state == OPEN);
276 ASSERT(m_requestInFlight); 276 ASSERT(m_requestInFlight);
277 277
278 if (m_receiveBuf.size() > 0 || m_data.size() > 0) { 278 if (m_receiveBuf.size() > 0 || m_data.size() > 0) {
279 parseEventStream(); 279 parseEventStream();
280 280
281 // Discard everything that has not been dispatched by now. 281 // Discard everything that has not been dispatched by now.
282 m_receiveBuf.clear(); 282 m_receiveBuf.clear();
283 m_data.clear(); 283 m_data.clear();
284 m_eventName = ""; 284 m_eventName = emptyAtom;
285 m_currentlyParsedEventId = String(); 285 m_currentlyParsedEventId = nullAtom;
286 } 286 }
287 networkRequestEnded(); 287 networkRequestEnded();
288 } 288 }
289 289
290 void EventSource::didFail(const ResourceError& error) 290 void EventSource::didFail(const ResourceError& error)
291 { 291 {
292 ASSERT(m_state != CLOSED); 292 ASSERT(m_state != CLOSED);
293 ASSERT(m_requestInFlight); 293 ASSERT(m_requestInFlight);
294 294
295 if (error.isCancellation()) 295 if (error.isCancellation())
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 else if (bufPos) 369 else if (bufPos)
370 m_receiveBuf.remove(0, bufPos); 370 m_receiveBuf.remove(0, bufPos);
371 } 371 }
372 372
373 void EventSource::parseEventStreamLine(unsigned bufPos, int fieldLength, int lin eLength) 373 void EventSource::parseEventStreamLine(unsigned bufPos, int fieldLength, int lin eLength)
374 { 374 {
375 if (!lineLength) { 375 if (!lineLength) {
376 if (!m_data.isEmpty()) { 376 if (!m_data.isEmpty()) {
377 m_data.removeLast(); 377 m_data.removeLast();
378 if (!m_currentlyParsedEventId.isNull()) { 378 if (!m_currentlyParsedEventId.isNull()) {
379 m_lastEventId.swap(m_currentlyParsedEventId); 379 m_lastEventId = m_currentlyParsedEventId;
380 m_currentlyParsedEventId = String(); 380 m_currentlyParsedEventId = nullAtom;
381 } 381 }
382 dispatchEvent(createMessageEvent()); 382 dispatchEvent(createMessageEvent());
383 } 383 }
384 if (!m_eventName.isEmpty()) 384 if (!m_eventName.isEmpty())
385 m_eventName = ""; 385 m_eventName = emptyAtom;
386 } else if (fieldLength) { 386 } else if (fieldLength) {
387 bool noValue = fieldLength < 0; 387 bool noValue = fieldLength < 0;
388 388
389 String field(&m_receiveBuf[bufPos], noValue ? lineLength : fieldLength); 389 String field(&m_receiveBuf[bufPos], noValue ? lineLength : fieldLength);
390 int step; 390 int step;
391 if (noValue) 391 if (noValue)
392 step = lineLength; 392 step = lineLength;
393 else if (m_receiveBuf[bufPos + fieldLength + 1] != ' ') 393 else if (m_receiveBuf[bufPos + fieldLength + 1] != ' ')
394 step = fieldLength + 1; 394 step = fieldLength + 1;
395 else 395 else
396 step = fieldLength + 2; 396 step = fieldLength + 2;
397 bufPos += step; 397 bufPos += step;
398 int valueLength = lineLength - step; 398 int valueLength = lineLength - step;
399 399
400 if (field == "data") { 400 if (field == "data") {
401 if (valueLength) 401 if (valueLength)
402 m_data.append(&m_receiveBuf[bufPos], valueLength); 402 m_data.append(&m_receiveBuf[bufPos], valueLength);
403 m_data.append('\n'); 403 m_data.append('\n');
404 } else if (field == "event") 404 } else if (field == "event") {
405 m_eventName = valueLength ? String(&m_receiveBuf[bufPos], valueLengt h) : ""; 405 m_eventName = valueLength ? AtomicString(&m_receiveBuf[bufPos], valu eLength) : "";
406 else if (field == "id") 406 } else if (field == "id") {
407 m_currentlyParsedEventId = valueLength ? String(&m_receiveBuf[bufPos ], valueLength) : ""; 407 m_currentlyParsedEventId = valueLength ? AtomicString(&m_receiveBuf[ bufPos], valueLength) : "";
408 else if (field == "retry") { 408 } else if (field == "retry") {
409 if (!valueLength) 409 if (!valueLength)
410 m_reconnectDelay = defaultReconnectDelay; 410 m_reconnectDelay = defaultReconnectDelay;
411 else { 411 else {
412 String value(&m_receiveBuf[bufPos], valueLength); 412 String value(&m_receiveBuf[bufPos], valueLength);
413 bool ok; 413 bool ok;
414 unsigned long long retry = value.toUInt64(&ok); 414 unsigned long long retry = value.toUInt64(&ok);
415 if (ok) 415 if (ok)
416 m_reconnectDelay = retry; 416 m_reconnectDelay = retry;
417 } 417 }
418 } 418 }
419 } 419 }
420 } 420 }
421 421
422 void EventSource::stop() 422 void EventSource::stop()
423 { 423 {
424 close(); 424 close();
425 } 425 }
426 426
427 PassRefPtr<MessageEvent> EventSource::createMessageEvent() 427 PassRefPtr<MessageEvent> EventSource::createMessageEvent()
428 { 428 {
429 RefPtr<MessageEvent> event = MessageEvent::create(); 429 RefPtr<MessageEvent> event = MessageEvent::create();
430 event->initMessageEvent(m_eventName.isEmpty() ? EventTypeNames::message : At omicString(m_eventName), false, false, SerializedScriptValue::create(String(m_da ta)), m_eventStreamOrigin, m_lastEventId, 0, nullptr); 430 event->initMessageEvent(m_eventName.isEmpty() ? EventTypeNames::message : m_ eventName, false, false, SerializedScriptValue::create(String(m_data)), m_eventS treamOrigin, m_lastEventId, 0, nullptr);
431 m_data.clear(); 431 m_data.clear();
432 return event.release(); 432 return event.release();
433 } 433 }
434 434
435 } // namespace WebCore 435 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/page/EventSource.h ('k') | Source/core/page/Page.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698