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

Side by Side Diff: Source/core/html/track/vtt/VTTCue.cpp

Issue 101513002: Add new helper VTTParser::collectDigitsToInt (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased Created 7 years 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 /* 1 /*
2 * Copyright (c) 2013, Opera Software ASA. All rights reserved. 2 * Copyright (c) 2013, Opera Software ASA. 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 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 960
961 m_linePosition = number; 961 m_linePosition = number;
962 } 962 }
963 break; 963 break;
964 case Position: 964 case Position:
965 { 965 {
966 // 1. If value contains any characters other than U+0025 PERCENT SIG N characters (%) and characters in the range 966 // 1. If value contains any characters other than U+0025 PERCENT SIG N characters (%) and characters in the range
967 // U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then jump to t he step labeled next setting. 967 // U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then jump to t he step labeled next setting.
968 // 2. If value does not contain at least one character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), 968 // 2. If value does not contain at least one character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
969 // then jump to the step labeled next setting. 969 // then jump to the step labeled next setting.
970 String textPosition = VTTParser::collectDigits(input, &position); 970 int number;
971 if (textPosition.isEmpty()) 971 if (!VTTParser::collectDigitsToInt(input, &position, number))
972 break; 972 break;
973 if (position >= input.length()) 973 if (position >= input.length())
974 break; 974 break;
975 975
976 // 3. If any character in value other than the last character is a U +0025 PERCENT SIGN character (%), then jump 976 // 3. If any character in value other than the last character is a U +0025 PERCENT SIGN character (%), then jump
977 // to the step labeled next setting. 977 // to the step labeled next setting.
978 // 4. If the last character in value is not a U+0025 PERCENT SIGN ch aracter (%), then jump to the step labeled 978 // 4. If the last character in value is not a U+0025 PERCENT SIGN ch aracter (%), then jump to the step labeled
979 // next setting. 979 // next setting.
980 if (input[position++] != '%') 980 if (input[position++] != '%')
981 break; 981 break;
982 if (position < input.length() && !VTTParser::isValidSettingDelimiter (input[position])) 982 if (position < input.length() && !VTTParser::isValidSettingDelimiter (input[position]))
983 break; 983 break;
984 984
985 // 5. Ignoring the trailing percent sign, interpret value as an inte ger, and let number be that number. 985 // 5. Ignoring the trailing percent sign, interpret value as an inte ger, and let number be that number.
986 // 6. If number is not in the range 0 ≤ number ≤ 100, then jump to t he step labeled next setting. 986 // 6. If number is not in the range 0 ≤ number ≤ 100, then jump to t he step labeled next setting.
987 // NOTE: toInt ignores trailing non-digit characters, such as '%'. 987 // NOTE: toInt ignores trailing non-digit characters, such as '%'.
988 bool validNumber;
989 int number = textPosition.toInt(&validNumber);
990 if (!validNumber)
991 break;
992 if (number < 0 || number > 100) 988 if (number < 0 || number > 100)
993 break; 989 break;
994 990
995 // 7. Let cue's text track cue text position be number. 991 // 7. Let cue's text track cue text position be number.
996 m_textPosition = number; 992 m_textPosition = number;
997 } 993 }
998 break; 994 break;
999 case Size: 995 case Size:
1000 { 996 {
1001 // 1. If value contains any characters other than U+0025 PERCENT SIG N characters (%) and characters in the 997 // 1. If value contains any characters other than U+0025 PERCENT SIG N characters (%) and characters in the
1002 // range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then jum p to the step labeled next setting. 998 // range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then jum p to the step labeled next setting.
1003 // 2. If value does not contain at least one character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT 999 // 2. If value does not contain at least one character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
1004 // NINE (9), then jump to the step labeled next setting. 1000 // NINE (9), then jump to the step labeled next setting.
1005 String cueSize = VTTParser::collectDigits(input, &position); 1001 int number;
1006 if (cueSize.isEmpty()) 1002 if (!VTTParser::collectDigitsToInt(input, &position, number))
1007 break; 1003 break;
1008 if (position >= input.length()) 1004 if (position >= input.length())
1009 break; 1005 break;
1010 1006
1011 // 3. If any character in value other than the last character is a U +0025 PERCENT SIGN character (%), 1007 // 3. If any character in value other than the last character is a U +0025 PERCENT SIGN character (%),
1012 // then jump to the step labeled next setting. 1008 // then jump to the step labeled next setting.
1013 // 4. If the last character in value is not a U+0025 PERCENT SIGN ch aracter (%), then jump to the step 1009 // 4. If the last character in value is not a U+0025 PERCENT SIGN ch aracter (%), then jump to the step
1014 // labeled next setting. 1010 // labeled next setting.
1015 if (input[position++] != '%') 1011 if (input[position++] != '%')
1016 break; 1012 break;
1017 if (position < input.length() && !VTTParser::isValidSettingDelimiter (input[position])) 1013 if (position < input.length() && !VTTParser::isValidSettingDelimiter (input[position]))
1018 break; 1014 break;
1019 1015
1020 // 5. Ignoring the trailing percent sign, interpret value as an inte ger, and let number be that number. 1016 // 5. Ignoring the trailing percent sign, interpret value as an inte ger, and let number be that number.
1021 // 6. If number is not in the range 0 ≤ number ≤ 100, then jump to t he step labeled next setting. 1017 // 6. If number is not in the range 0 ≤ number ≤ 100, then jump to t he step labeled next setting.
1022 bool validNumber;
1023 int number = cueSize.toInt(&validNumber);
1024 if (!validNumber)
1025 break;
1026 if (number < 0 || number > 100) 1018 if (number < 0 || number > 100)
1027 break; 1019 break;
1028 1020
1029 // 7. Let cue's text track cue size be number. 1021 // 7. Let cue's text track cue size be number.
1030 m_cueSize = number; 1022 m_cueSize = number;
1031 } 1023 }
1032 break; 1024 break;
1033 case Align: 1025 case Align:
1034 { 1026 {
1035 String cueAlignment = VTTParser::collectWord(input, &position); 1027 String cueAlignment = VTTParser::collectWord(input, &position);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 return m_cueBackgroundBox->executionContext(); 1102 return m_cueBackgroundBox->executionContext();
1111 } 1103 }
1112 1104
1113 Document& VTTCue::document() const 1105 Document& VTTCue::document() const
1114 { 1106 {
1115 ASSERT(m_cueBackgroundBox); 1107 ASSERT(m_cueBackgroundBox);
1116 return m_cueBackgroundBox->document(); 1108 return m_cueBackgroundBox->document();
1117 } 1109 }
1118 1110
1119 } // namespace WebCore 1111 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/html/track/vtt/VTTParser.h » ('j') | Source/core/html/track/vtt/VTTRegion.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698