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

Side by Side Diff: third_party/WebKit/Source/core/html/parser/HTMLParserIdioms.cpp

Issue 2724533003: Avoid conflict between 2 enums named Mode and 2 values named None. (Closed)
Patch Set: Created 3 years, 9 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 | « no previous file | no next file » | 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) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 391
392 if (quoteMark && (end == length)) 392 if (quoteMark && (end == length))
393 break; // Close quote not found. 393 break; // Close quote not found.
394 394
395 return value.substring(pos, end - pos); 395 return value.substring(pos, end - pos);
396 } 396 }
397 397
398 return ""; 398 return "";
399 } 399 }
400 400
401 enum Mode { 401 enum class MetaAttribute {
402 None, 402 None,
403 Charset, 403 Charset,
404 Pragma, 404 Pragma,
405 }; 405 };
406 406
407 WTF::TextEncoding encodingFromMetaAttributes( 407 WTF::TextEncoding encodingFromMetaAttributes(
408 const HTMLAttributeList& attributes) { 408 const HTMLAttributeList& attributes) {
409 bool gotPragma = false; 409 bool gotPragma = false;
410 Mode mode = None; 410 MetaAttribute mode = MetaAttribute::None;
411 String charset; 411 String charset;
412 412
413 for (const auto& htmlAttribute : attributes) { 413 for (const auto& htmlAttribute : attributes) {
414 const String& attributeName = htmlAttribute.first; 414 const String& attributeName = htmlAttribute.first;
415 const String& attributeValue = AtomicString(htmlAttribute.second); 415 const String& attributeValue = AtomicString(htmlAttribute.second);
416 416
417 if (threadSafeMatch(attributeName, http_equivAttr)) { 417 if (threadSafeMatch(attributeName, http_equivAttr)) {
418 if (equalIgnoringCase(attributeValue, "content-type")) 418 if (equalIgnoringCase(attributeValue, "content-type"))
419 gotPragma = true; 419 gotPragma = true;
420 } else if (charset.isEmpty()) { 420 } else if (charset.isEmpty()) {
421 if (threadSafeMatch(attributeName, charsetAttr)) { 421 if (threadSafeMatch(attributeName, charsetAttr)) {
422 charset = attributeValue; 422 charset = attributeValue;
423 mode = Charset; 423 mode = MetaAttribute::Charset;
424 } else if (threadSafeMatch(attributeName, contentAttr)) { 424 } else if (threadSafeMatch(attributeName, contentAttr)) {
425 charset = extractCharset(attributeValue); 425 charset = extractCharset(attributeValue);
426 if (charset.length()) 426 if (charset.length())
427 mode = Pragma; 427 mode = MetaAttribute::Pragma;
428 } 428 }
429 } 429 }
430 } 430 }
431 431
432 if (mode == Charset || (mode == Pragma && gotPragma)) 432 if (mode == MetaAttribute::Charset ||
433 (mode == MetaAttribute::Pragma && gotPragma))
433 return WTF::TextEncoding(stripLeadingAndTrailingHTMLSpaces(charset)); 434 return WTF::TextEncoding(stripLeadingAndTrailingHTMLSpaces(charset));
434 435
435 return WTF::TextEncoding(); 436 return WTF::TextEncoding();
436 } 437 }
437 438
438 static bool threadSafeEqual(const StringImpl* a, const StringImpl* b) { 439 static bool threadSafeEqual(const StringImpl* a, const StringImpl* b) {
439 if (a == b) 440 if (a == b)
440 return true; 441 return true;
441 if (a->hash() != b->hash()) 442 if (a->hash() != b->hash())
442 return false; 443 return false;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 string = StringImpl::create8BitIfPossible(characters, size); 492 string = StringImpl::create8BitIfPossible(characters, size);
492 else if (width == Force8Bit) 493 else if (width == Force8Bit)
493 string = String::make8BitFrom16BitSource(characters, size); 494 string = String::make8BitFrom16BitSource(characters, size);
494 else 495 else
495 string = String(characters, size); 496 string = String(characters, size);
496 497
497 return string; 498 return string;
498 } 499 }
499 500
500 } // namespace blink 501 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698