http://www.w3.org/TR/CSS21/syndata.html#parsing-errors
specifies how unclosed strings must be handled.
For example,
<style type="text/css">
p:before {
content: 'Has not
</style>
must be handled as if it were:
<style type="text/css">
p:before {
content: 'Has not ';
}
</style>
Comment on attachment 47312[details]
Change flex rule such that unclosed string is properly closed.
How does our current behavior compare to FF and IE?
I think this bug is invalid.
The testcase is in quirks mode; once made into a standard mode test (with <!doctype html>), I get the following results
Firefox (Gecko 1.9.0 ~ 19.3a1pre) --> only show 'failed'
Opera 10.5a --> same as Gecko
IE8 --> same as Gecko.
testcase:
http://dev.l-c-n.com/CSS2_parse/parse_content2.html
(there are a few more tests where WebKit show different behaviour than Gecko & Opera in the same /CSS2_parse/ folder; I haven't fully pondered them )
See the bottom of the section, under the bullet 'Unexpected end of string'
http://www.w3.org/TR/CSS21/syndata.html#parsing-errors
Yuzo, you are talking about unclosed strings but your test case shows a case with unexpected end of style sheets.
Compare this clause:
"Unexpected end of style sheet.
User agents must close all open constructs (for example: blocks, parentheses, brackets, rules, strings, and comments) at the end of the style sheet. For example:
@media screen {
p:before { content: 'Hello
would be treated the same as:
@media screen {
p:before { content: 'Hello'; }
}
in a conformant UA."
with this:
"Unexpected end of string.
User agents must close strings upon reaching the end of a line, but then drop the construct (declaration or rule) in which the string was found. For example:
p {
color: green;
font-family: 'Courier New Times
color: red;
color: green;
}
...would be treated the same as:
p { color: green; color: green; }
...because the second declaration (from 'font-family' to the semicolon after 'color: red') is invalid and is dropped."
Both cases are different.
So I assume the bug report title is incorrect.
The test case uploaded by me is rendered correctly by Opera 10.50 alfa only.
WebKit and Firefox 3.6 fails in this case.
Thanks. Changed the bug summary. Is this good enough?
BTW, I'd like to keep test 1 and 2 in the patch, to assure that
the patch doesn't break them, although only test 3 is for
"unclosed at the end of stylesheet" case.
Eric,
The following are test results.
Safari 4.0 WITH this patch passes all of them.
The attached Testcases, both quirks and standards modes:
IE 8.0: FAIL
FF 3.5: FAIL
Opera 10.10: PASS
Safari 4.0 WITHOUT this patch: FAIL
Test 1 and 2 in the patch (as far as I can tell by watching the screen):
IE 8.0: FAIL
FF 3.5: PASS
Opera 10.10: PASS
Safari 4.0 WITHOUT this patch: PASS
Test 3 (ditto):
IE 8.0: FAIL
FF 3.5: FAIL
Opera 10.10: FAIL
Safari 4.0 WITHOUT this patch: FAIL
(Opera fails to handle unclosed string for font-family property but can handle it for content property. Hmm.)
Hi, Robert, Eric,
I've attached the tests ("Tests equivalent to those in the patch")
for other browsers.
Correction:
Test 3 passes for IE 8.0.
Test 3
IE 8.0: PASS
FF 3.5: FAIL
Opera 10.10: FAIL
Safari 4.0 WITHOUT this patch: FAIL
Yuzo
Created attachment 47517[details]
Parsing unclosed strings - fixed one test case and more cases
Yuzo,
The test case 3 is incorrect and IE renders it incorrectly. Firefox and Opera are right in this case. Consider this fragment:
font-family: 'Arial
</style>
It means that there is not only 'Arial' word but also new line in a string. So above code is equivalent to:
font-family: 'Arial\';
}
I've corrected your test cases and added 2 more.
Only Firefox 3.6 and Opera 10.50 renders it correctly. WebKit fails in tests: 3,4,5.
Also notice the other bug visible in WebKit in test 3.
WebKit treats:
font-family: 'Arial\';
as
font-family: serif;
Webkit should match no font-family in this case.
Attachment 47602[details] did not pass style-queue:
Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/css/CSSParser.cpp:5344: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2
If any of these errors are false positives, please file a bug against check-webkit-style.
I've changed the patch such that WebKit behaves similarly to other browsers.
New testcase results: (test 1, test 2, test 3, test 4)
IE 8.0: (FAIL, FAIL, PASS, FAIL)
FF 3.6: (PASS, PASS, PASS, PASS)
Opera 10.10: (PASS, PASS, PASS, PASS)
r53468: (PASS, PASS, FAIL, PASS)
This patch: (PASS, PASS, PASS, PASS)
Yuzo
Comment on attachment 47602[details]
Change flex rule such that unclosed string is properly closed.
Sorry, this patch contains a few issues. Make it obsolete.
Attachment 47684[details] did not pass style-queue:
Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/css/CSSParser.cpp:5344: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 47684[details]
Change flex rule such that unclosed string/url is properly handled.
Please explain the changes to fast/css/font_property_normal.html in the ChangeLog.
Hi, Eric,
Thank you for the review.
LayoutTests/Changelog contains:
Note that LayoutTests/fast/css/font_property_normal.html is changed because it has contained wrong quotes.
Do you need more detailed description?
Yuzo
(In reply to comment #27)
> (From update of attachment 47684[details])
> Please explain the changes to fast/css/font_property_normal.html in the
> ChangeLog.
There are quotes inserted there by mistake. Probably from copy and paste of https://bugs.webkit.org/show_bug.cgi?id=5564#c1 These quotes are now incorrectly ignored by WebKit.
This stylesheet:
<STYLE type="text/css">
.one {font: 24pt italic;"}
.two {font: 24pt italic Arial;}
.three {font: 24pt italic 'Arial';}
.four {font: italic 24pt;}
.five {font: italic 24pt Arial;"}
.six {font: italic 24pt 'Arial';}
.seven {font: Arial 24pt italic;}
.eight {font: 'Arial' 24pt italic;}
.nine {font: Arial italic 24pt;}
.ten {font: 'Arial' italic 24pt;}
</STYLE>
according CSS 2.1 - http://www.w3.org/TR/CSS21/syndata.html#block - "Single (') and double quotes (") must also occur in matching pairs, and characters between them are parsed as a string." is equivalent to this stylesheet:
<STYLE type="text/css">
.one {font: 24pt italic;}
.six {font: italic 24pt 'Arial';}
.seven {font: Arial 24pt italic;}
.eight {font: 'Arial' 24pt italic;}
.nine {font: Arial italic 24pt;}
.ten {font: 'Arial' italic 24pt;}
</STYLE>
After applying Yuzo patch the above mentioned test case should be fixed.
Hi, Eric,
Can you take another look?
As to fast/css/font_property_normal.html, I've quoted Robert's comment above.
As to the style error, I believe we should ignore it because the names are defined by flex.
Yuzo
Attachment 48317[details] did not pass style-queue:
Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/css/CSSParser.cpp:5344: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 48621[details]
Change flex rule such that unclosed string/url is properly handled.
> -typedef int yy_state_type;
> +typedef int yy_state_type; // NOLINT
What tool respects these comments? I have not seen them in WebKit before.
> +#define yytext_ptr yytext
Why is this added? The change log has no mention of it. Is it related to the rest of the changes somehow?
> +static int yy_more_flag = 0; // NOLINT
> +static int yy_more_len = 0; // NOLINT
Why are we now defining these here? The change log does not explain how this change relates to what the patch is doing.
> +#define yymore() ((yy_more_flag) = 1)
Why is this a macro instead of a function? Why does it have a bison/flex style name?
> +#define dquoted_string 3
> +#define squoted_string 4
> +#define uri 5
> +#define uri_pending 6
Why are you using underscores in these names? Can't these follow normal WebKit naming?
> +#define YY_START (((yy_start) - 1) / 2)
What is this for?
> + int string_caller = INITIAL;
> + int uri_caller = INITIAL;
> + int content_length = 0;
> + int content_offest = 0;
Can't these follow normal WebKit naming conventions? I don't see any reason to use a different naming style here.
These names seem a bit vague to me. What specific content is the "content" in "content offset"? I think we can do better naming this.
I also see this code twice. Once in maketokenizer and once in the flex file. Is that correct?
> + BEGIN(string_caller == uri ? uri_pending : string_caller);
I'm not sure that "caller" is the clearest term we could use use here. Maybe "token" would be clearer (or perhaps "context" or "type"). I don't really understand what these represent, which I suppose is why I don't get what the names should be.
> + default:
> + yyterminate();
I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless this code can be reached.
Do the new test cases cover all the code paths here? If I put an ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the test?
I'm going to say review- for now because I think the new code is not well enough documented, does not follow WebKit style as much as it should, may not be well tested, and is hard for me to understand despite that fact that I am familiar with both CSS and flex. Maybe you can't solve all of those problems, but please try to solve at least some of them.
Hi, Darin,
Thank you for reviewing this!
(In reply to comment #36)
> (From update of attachment 48621[details])
> > -typedef int yy_state_type;
> > +typedef int yy_state_type; // NOLINT
>
> What tool respects these comments? I have not seen them in WebKit before.
WebKitTools/Scripts/check-webkit-style (more specifically,
WebKitTools/Scripts/webkitpy/style/processors/cpp.py) respects them.
Now that https://bugs.webkit.org/show_bug.cgi?id=34787 is closed,
I removed the comments.
>
> > +#define yytext_ptr yytext
>
> Why is this added? The change log has no mention of it. Is it related to the
> rest of the changes somehow?
This is needed for flex to support yymore().
I've moved the definition to WebCore/css/maketokenizer.
>
> > +static int yy_more_flag = 0; // NOLINT
> > +static int yy_more_len = 0; // NOLINT
>
> Why are we now defining these here? The change log does not explain how this
> change relates to what the patch is doing.
I've updated the Change log.
Also, I've moved yy_more_{flag,len} to WebCore/css/maketokenizer.
>
> > +#define yymore() ((yy_more_flag) = 1)
>
> Why is this a macro instead of a function? Why does it have a bison/flex style
> name?
yymore() is a flex function (or macro):
http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115
>
> > +#define dquoted_string 3
> > +#define squoted_string 4
> > +#define uri 5
> > +#define uri_pending 6
>
> Why are you using underscores in these names? Can't these follow normal WebKit
> naming?
They are flex start condition names.
I've chosen to use underscores because mediaquery and forkeyword
are not in CamelCase.
>
> > +#define YY_START (((yy_start) - 1) / 2)
>
> What is this for?
This is now needed because I use YY_START in WebCore/css/tokenizer.flex.
http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
I've moved it to WebCore/css/maketokenizer.
>
> > + int string_caller = INITIAL;
> > + int uri_caller = INITIAL;
> > + int content_length = 0;
> > + int content_offest = 0;
>
> Can't these follow normal WebKit naming conventions? I don't see any reason to
> use a different naming style here.
They are used in tokenizer.flex where underscored names are used.
I can change them to stringCaller, etc., if you prefer.
>
> These names seem a bit vague to me. What specific content is the "content" in
> "content offset"? I think we can do better naming this.
OK, renamed content to string_or_uri_content.
>
> I also see this code twice. Once in maketokenizer and once in the flex file. Is
> that correct?
I found that I can remove the ones in tokenizer.flex. Removed.
>
> > + BEGIN(string_caller == uri ? uri_pending : string_caller);
>
> I'm not sure that "caller" is the clearest term we could use use here. Maybe
> "token" would be clearer (or perhaps "context" or "type"). I don't really
> understand what these represent, which I suppose is why I don't get what the
> names should be.http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
uses *_caller naming. That's why I named the variables that way.
I'm open to changing the names if you prefer otherwise.
>
> > + default:
> > + yyterminate();
>
> I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
> this code can be reached.
>
> Do the new test cases cover all the code paths here? If I put an
> ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
> test?
The default case is reached if the start condition is either
INITIAL, mediaquery, or forkeyword.
>
> I'm going to say review- for now because I think the new code is not well
> enough documented, does not follow WebKit style as much as it should, may not
> be well tested, and is hard for me to understand despite that fact that I am
> familiar with both CSS and flex. Maybe you can't solve all of those problems,
> but please try to solve at least some of them.
Tip for the future:
Information is always more useful in the ChangeLog than in the bug. Because ChangeLogs are what reviewers use during reviews, bugs (like this one) tend to get crowded and hard to read.
In this case, I had to go digging to find if this made us match FF/IE
A comment in the ChangeLog that this makes our behavior match various other browsers (listing which ones and how) would make this review easier.
Basically in posting patches for review, you want to make it as easy as possible for a reviewer to say yes. Passing style, passing EWS bots, having tests, having a nice long ChangeLog, saying nice things in the ChangeLog like "fixes crash" or "matches other browsers", all make hitting that r+ button very easy. :)
Comment on attachment 48868[details]
Change flex rule such that unclosed string/url is properly handled.
As much as I woudl like to r+ this, I do not trust my yacc skills enough to give this a final r+. In general it looks good though.
I wanted to review this patch, but was unable to. It's unclear to me whether you actually address Darin's comments. You seemed to reject all of them, but I'm not sure whether he was satisfied with your responses.
Who's a good person to review changes to the CSS parser?
(In reply to comment #38)
> > > +#define yymore() ((yy_more_flag) = 1)
> >
> > Why is this a macro instead of a function? Why does it have a bison/flex style
> > name?
>
> yymore() is a flex function (or macro):
> http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115
You answered my second question, but ignored the first. Why is this a macro instead of a function? Please make it a function unless it must be a macro.
> > > +#define dquoted_string 3
> > > +#define squoted_string 4
> > > +#define uri 5
> > > +#define uri_pending 6
> >
> > Why are you using underscores in these names? Can't these follow normal WebKit
> > naming?
>
> They are flex start condition names.
> I've chosen to use underscores because mediaquery and forkeyword
> are not in CamelCase.
You should not do that. Instead please follow normal WebKit naming. You don't need to rename existing conditions, but you may if you like.
> > > + int string_caller = INITIAL;
> > > + int uri_caller = INITIAL;
> > > + int content_length = 0;
> > > + int content_offest = 0;
> >
> > Can't these follow normal WebKit naming conventions? I don't see any reason to
> > use a different naming style here.
>
> They are used in tokenizer.flex where underscored names are used.
>
> I can change them to stringCaller, etc., if you prefer.
Yes, I would like you to make that change.
> > > + BEGIN(string_caller == uri ? uri_pending : string_caller);
> >
> > I'm not sure that "caller" is the clearest term we could use use here. Maybe
> > "token" would be clearer (or perhaps "context" or "type"). I don't really
> > understand what these represent, which I suppose is why I don't get what the
> > names should be.
>
> http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
> uses *_caller naming. That's why I named the variables that way.
> I'm open to changing the names if you prefer otherwise.
Yes, I think you should use some other name. I do see that identifier named comment_caller in the example in the Flex manual, but I think it's not really clear.
> > > + default:
> > > + yyterminate();
> >
> > I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
> > this code can be reached.
> >
> > Do the new test cases cover all the code paths here? If I put an
> > ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
> > test?
>
> The default case is reached if the start condition is either
> INITIAL, mediaquery, or forkeyword.
I don't understand how this sentence answers my question.
Do the test cases cover all these code paths or not?
Attachment 52814[details] did not pass style-queue:
Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/css/CSSParser.h:261: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.h:262: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2 in 9 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Thank you very much for the review.
(In reply to comment #48)
> (In reply to comment #38)
> > > > +#define yymore() ((yy_more_flag) = 1)
> > >
> > > Why is this a macro instead of a function? Why does it have a bison/flex style
> > > name?
> >
> > yymore() is a flex function (or macro):
> > http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115
>
> You answered my second question, but ignored the first. Why is this a macro
> instead of a function? Please make it a function unless it must be a macro.
Changed yymore to be a method of CSSParser.
>
> > > > +#define dquoted_string 3
> > > > +#define squoted_string 4
> > > > +#define uri 5
> > > > +#define uri_pending 6
> > >
> > > Why are you using underscores in these names? Can't these follow normal WebKit
> > > naming?
> >
> > They are flex start condition names.
> > I've chosen to use underscores because mediaquery and forkeyword
> > are not in CamelCase.
>
> You should not do that. Instead please follow normal WebKit naming. You don't
> need to rename existing conditions, but you may if you like.
Renamed them doubleQuotedStringState, etc.
Also renamed the existing ones.
I named them *State rather than *StartCondition, because
State should sound more familiar to more people
and, less importantly, StartCondition is too long as suffix.
>
> > > > + int string_caller = INITIAL;
> > > > + int uri_caller = INITIAL;
> > > > + int content_length = 0;
> > > > + int content_offest = 0;
> > >
> > > Can't these follow normal WebKit naming conventions? I don't see any reason to
> > > use a different naming style here.
> >
> > They are used in tokenizer.flex where underscored names are used.
> >
> > I can change them to stringCaller, etc., if you prefer.
>
> Yes, I would like you to make that change.
>
> > > > + BEGIN(string_caller == uri ? uri_pending : string_caller);
> > >
> > > I'm not sure that "caller" is the clearest term we could use use here. Maybe
> > > "token" would be clearer (or perhaps "context" or "type"). I don't really
> > > understand what these represent, which I suppose is why I don't get what the
> > > names should be.
> >
> > http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
> > uses *_caller naming. That's why I named the variables that way.
> > I'm open to changing the names if you prefer otherwise.
>
> Yes, I think you should use some other name. I do see that identifier named
> comment_caller in the example in the Flex manual, but I think it's not really
> clear.
Renamed string_caller stringPreState, etc.
I hope the meaning is clearer this way.
Also, I've changed the variables to CSSParser instance variables.
I believe it must not be static variable as in the previous patch.
>
> > > > + default:
> > > > + yyterminate();
> > >
> > > I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
> > > this code can be reached.
> > >
> > > Do the new test cases cover all the code paths here? If I put an
> > > ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
> > > test?
> >
> > The default case is reached if the start condition is either
> > INITIAL, mediaquery, or forkeyword.
>
> I don't understand how this sentence answers my question.
>
> Do the test cases cover all these code paths or not?
Yes. yyterminate is called when the tests run.
Attachment 54534[details] did not pass style-queue:
Failed to run "['WebKitTools/Scripts/check-webkit-style', '--no-squash']" exit_code: 1
WebCore/css/CSSParser.h:277: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.h:278: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2 in 9 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 54534[details]
Fix unclosed string/url handling.
Sigh. Not sure how to make progress here. I wish the CSS spec defined a parsing algorithm in the same level of detail as the HTML spec. In any case, we need a CSS parsing expert to review this change.
Drive-by:
WebCore/css/CSSParser.h:266
+ void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
Surely the parenthesis aren't needed here now that this isn't a macro.
Comment on attachment 54534[details]
Fix unclosed string/url handling.
LayoutTests/fast/css/parsing-unclosed-string-expected.txt:6
+ Test 1(ref) Test 1(test)
I don't understand these messages. You should rephrase the messages to make clear what they're supposed to explain.
WebCore/css/maketokenizer:57
+ #define YY_START (((yy_start) - 1) / 2)
This meaning is unclear.
WebCore/css/maketokenizer:58
+ #define yytext_ptr yytext
This seems unused.
WebCore/css/tokenizer.flex:79
+ yyleng--; // Remove the '\0' representing EOF.
// Remove the ...
--yyleng;
Comment should go on the line before.
WebCore/css/CSSParser.h:266
+ void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
I don't get this concept. yymore() gets called by the lexer, but all it does is setting CSSParsers yy_more_flag member variable -- the variable seems not used at all to me.
WebCore/css/CSSParser.h:278
+ int yy_more_len;
This is completly unused.
Please clear up these issues.
Hi, thank you for the reviews.
(In reply to comment #57)
> (From update of attachment 54534[details])
> Sigh. Not sure how to make progress here. I wish the CSS spec defined a parsing algorithm in the same level of detail as the HTML spec. In any case, we need a CSS parsing expert to review this change.
>
> Drive-by:
>
> WebCore/css/CSSParser.h:266
> + void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
> Surely the parenthesis aren't needed here now that this isn't a macro.
Done.
(In reply to comment #58)
> (From update of attachment 54534[details])
> LayoutTests/fast/css/parsing-unclosed-string-expected.txt:6
> + Test 1(ref) Test 1(test)
> I don't understand these messages. You should rephrase the messages to make clear what they're supposed to explain.
Changed such that the tests are more self-explanatory.
>
> WebCore/css/maketokenizer:57
> + #define YY_START (((yy_start) - 1) / 2)
> This meaning is unclear.
This and other seemingly unused variables/functions are actually used in
piece of code generated by flex. Added comments.
>
> WebCore/css/maketokenizer:58
> + #define yytext_ptr yytext
> This seems unused.
>
>
> WebCore/css/tokenizer.flex:79
> + yyleng--; // Remove the '\0' representing EOF.
> // Remove the ...
> --yyleng;
>
> Comment should go on the line before.
Done.
>
> WebCore/css/CSSParser.h:266
> + void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
> I don't get this concept. yymore() gets called by the lexer, but all it does is setting CSSParsers yy_more_flag member variable -- the variable seems not used at all to me.
>
> WebCore/css/CSSParser.h:278
> + int yy_more_len;
> This is completly unused.
>
> Please clear up these issues.
Attachment 63869[details] did not pass style-queue:
Failed to run "['WebKitTools/Scripts/check-webkit-style']" exit_code: 1
WebCore/css/CSSParser.h:297: yy_more_flag is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
WebCore/css/CSSParser.h:298: yy_more_len is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4]
Total errors found: 2 in 9 files
If any of these errors are false positives, please file a bug against check-webkit-style.
2010-01-24 21:47 PST, Yuzo Fujishima
2010-01-24 21:57 PST, Yuzo Fujishima
2010-01-26 22:49 PST, Robert Blaut
2010-01-27 00:39 PST, Yuzo Fujishima
2010-01-27 04:31 PST, Robert Blaut
2010-01-28 03:46 PST, Yuzo Fujishima
2010-01-28 03:49 PST, Yuzo Fujishima
2010-01-28 23:58 PST, Yuzo Fujishima
2010-02-07 22:35 PST, Yuzo Fujishima
2010-02-11 21:39 PST, Yuzo Fujishima
2010-02-15 23:45 PST, Yuzo Fujishima
2010-02-17 00:49 PST, Yuzo Fujishima
2010-04-07 17:49 PDT, Yuzo Fujishima
2010-04-07 17:53 PDT, Yuzo Fujishima
2010-04-28 00:52 PDT, Yuzo Fujishima
2010-08-09 01:43 PDT, Yuzo Fujishima
2011-01-11 00:24 PST, Yuzo Fujishima