- 29 Sep, 2011 2 commits
-
-
Robert Griesemer authored
R=rsc, r, nigeltao, r, dsymonds CC=golang-dev https://golang.org/cl/5146048
-
Russ Cox authored
R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/5141051
-
- 28 Sep, 2011 10 commits
-
-
Mike Samuel authored
HTML5 allows embedded SVG and MathML. Code searches show SVG is used for graphing. This changes transition to deal with constructs like <svg xmlns:xlink="http://www.w3.org/1999/xlink"> It changes attr and clients to call a single function that combines the name lookup and "on" prefix check to determine an attribute value type given an attribute name. That function uses heuristics to recognize that xlink:href and svg:href have URL content, and that data-url is likely contains URL content, since "javascript:" injection is such a problem. I did a code search over a closure templates codebase to determine patterns of custom attribute usage. I did something like $ find . -name \*.soy | \ xargs egrep perl -ne 'while (s/\b((data-|\w+:)\w+)\s*=//) { print "$1\n"; }' | \ sort | uniq to produce the list at the bottom. Filtering that by egrep -i 'src|url|uri' produces data-docConsumptionUri data-docIconUrl data-launchUrl data-lazySrc data-pageUrl data-shareurl data-suggestServerUrl data-tweetUrl g:secondaryurls g:url which seem to match all the ones that are likely URL content. There are some short words that match that heuristic, but I still think it decent since any custom attribute that has a numeric or enumerated keyword value will be unaffected by the URL assumption. Counterexamples from /usr/share/dict: during, hourly, maturity, nourish, purloin, security, surly Custom attributes present in existing closure templates codebase: buzz:aid data-a data-action data-actor data-allowEqualityOps data-analyticsId data-bid data-c data-cartId data-categoryId data-cid data-command data-count data-country data-creativeId data-cssToken data-dest data-docAttribution data-docConsumptionUri data-docCurrencyCode data-docIconUrl data-docId data-docPrice data-docPriceMicros data-docTitle data-docType data-docid data-email data-entityid data-errorindex data-f data-feature data-fgid data-filter data-fireEvent data-followable data-followed data-hashChange data-height data-hover data-href data-id data-index data-invitable data-isFree data-isPurchased data-jid data-jumpid data-launchUrl data-lazySrc data-listType data-maxVisiblePages data-name data-nid data-nodeid data-numItems data-numPerPage data-offerType data-oid data-opUsesEquality data-overflowclass data-packageName data-pageId data-pageUrl data-pos data-priceBrief data-profileIds data-query data-rating data-ref data-rentalGrantPeriodDays data-rentalactivePeriodHours data-reviewId data-role data-score data-shareurl data-showGeLe data-showLineInclude data-size data-sortval data-suggestServerType data-suggestServerUrl data-suggestionIndex data-tabBarId data-tabBarIndex data-tags data-target data-textColor data-theme data-title data-toggletarget data-tooltip data-trailerId data-transactionId data-transition data-ts data-tweetContent data-tweetUrl data-type data-useAjax data-value data-width data-x dm:index dm:type g:aspects g:decorateusingsecondary g:em g:entity g:groups g:id g:istoplevel g:li g:numresults g:oid g:parentId g:pl g:pt g:rating_override g:secondaryurls g:sortby g:startindex g:target g:type g:url g:value ga:barsize ga:css ga:expandAfterCharsExceed ga:initialNumRows ga:nocancelicon ga:numRowsToExpandTo ga:type ga:unlockwhenrated gw:address gw:businessname gw:comment gw:phone gw:source ng:controller xlink:href xml:lang xmlns:atom xmlns:dc xmlns:jstd xmlns:ng xmlns:og xmlns:webstore xmlns:xlink R=nigeltao CC=golang-dev https://golang.org/cl/5119041
-
Mike Samuel authored
The normalization that prevents element name and comment injection in <{{.}} by converting it to <{{.}} breaks <!DOCTYPE html> Instead of splitting states to have a start of document state and a text state, I whitelist <!DOCTYPE. R=nigeltao CC=golang-dev https://golang.org/cl/5131051
-
Russ Cox authored
*** This is a design review, not a code review. *** Feel free to reply to the mail instead of picking out individual lines to comment on in Rietveld. This command, go, will replace both gomake/make and goinstall. Make will stick around only for building our C commands and perhaps package runtime. In normal use while developing you'd run commands like go compile go test go clean go install which apply to the package in the current directory. To operate on code written by others, you add an explicit package path: go get gopath.googlecode.com/hg/oauth go test gopath.googlecode.com/hg/oauth The script.txt file is a script showing the output of the various help commands that the command has. (Right now, all the command can do is print help messages.) R=golang-dev, bradfitz, kevlar, r, edsrzf, gri, adg, rogpeppe, r CC=golang-dev https://golang.org/cl/5019045
-
Brad Fitzpatrick authored
This is just a new API to do many replacements at once. While the point of this API is to be faster than doing replacements one at a time, the implementation in this CL has the optimizations removed and may actually be slower. Future CLs will bring back & add optimizations. R=r, rsc, rogpeppe CC=golang-dev https://golang.org/cl/5081042
-
Brad Fitzpatrick authored
Fixes #2312 R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/5143049
-
Russ Cox authored
R=golang-dev, bradfitz, iant CC=golang-dev https://golang.org/cl/5127043
-
Russ Cox authored
MatchEasy0_1K 500000 4207 ns/op 243.35 MB/s MatchEasy0_1K_Old 500000 4625 ns/op 221.40 MB/s MatchEasy0_1M 500 3948932 ns/op 265.53 MB/s MatchEasy0_1M_Old 500 3943926 ns/op 265.87 MB/s MatchEasy0_32K 10000 122974 ns/op 266.46 MB/s MatchEasy0_32K_Old 10000 123270 ns/op 265.82 MB/s MatchEasy0_32M 10 127265400 ns/op 263.66 MB/s MatchEasy0_32M_Old 10 127123500 ns/op 263.95 MB/s MatchEasy1_1K 500000 5637 ns/op 181.63 MB/s MatchEasy1_1K_Old 10000 100690 ns/op 10.17 MB/s MatchEasy1_1M 200 7683150 ns/op 136.48 MB/s MatchEasy1_1M_Old 10 145774000 ns/op 7.19 MB/s MatchEasy1_32K 10000 239887 ns/op 136.60 MB/s MatchEasy1_32K_Old 500 4508182 ns/op 7.27 MB/s MatchEasy1_32M 10 247103500 ns/op 135.79 MB/s MatchEasy1_32M_Old 1 4660191000 ns/op 7.20 MB/s MatchMedium_1K 10000 160567 ns/op 6.38 MB/s MatchMedium_1K_Old 10000 158367 ns/op 6.47 MB/s MatchMedium_1M 10 162928000 ns/op 6.44 MB/s MatchMedium_1M_Old 10 159699200 ns/op 6.57 MB/s MatchMedium_32K 500 5090758 ns/op 6.44 MB/s MatchMedium_32K_Old 500 5005800 ns/op 6.55 MB/s MatchMedium_32M 1 5233973000 ns/op 6.41 MB/s MatchMedium_32M_Old 1 5109676000 ns/op 6.57 MB/s MatchHard_1K 10000 249087 ns/op 4.11 MB/s MatchHard_1K_Old 5000 364569 ns/op 2.81 MB/s MatchHard_1M 5 256050000 ns/op 4.10 MB/s MatchHard_1M_Old 5 372446400 ns/op 2.82 MB/s MatchHard_32K 200 7944525 ns/op 4.12 MB/s MatchHard_32K_Old 100 11609380 ns/op 2.82 MB/s MatchHard_32M 1 8144503000 ns/op 4.12 MB/s MatchHard_32M_Old 1 11885434000 ns/op 2.82 MB/s R=r, bradfitz CC=golang-dev https://golang.org/cl/5134049
-
Yasuhiro Matsumoto authored
Fixes #2243. R=rsc CC=golang-dev https://golang.org/cl/5146041
-
Brad Fitzpatrick authored
R=golang-dev, rsc, iant CC=golang-dev https://golang.org/cl/5136052
-
Mike Samuel authored
In {{$x := . | foo}} {{$x}} the first action is a variable assignment that contributes nothing to the output while the first is a use that needs to be escaped. This CL fixes escapeAction to distinguish assignments from interpolations and to only modify interpolations. R=nigeltao, r CC=golang-dev https://golang.org/cl/5143048
-
- 27 Sep, 2011 8 commits
-
-
Robert Griesemer authored
CL 5040041 (https://golang.org/cl/5040041) changed the use of []int to []int32 internally so that encoding/binary could be used. This is no longer needed (gobs can encode ints), and using []int is more in sync w/ the semantics of the data structure (the index elements are indices which are ints). Changing it back. R=r CC=golang-dev https://golang.org/cl/5141049
-
Mike Samuel authored
Does some TODOs and changes the term "div" in an error message to "division" to avoid confusion with "<div>". R=nigeltao, r CC=golang-dev https://golang.org/cl/5141047
-
Rob Pike authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5136047
-
Rob Pike authored
Error found by govet. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5142048
-
Russ Cox authored
Fixes #2308. R=agl, gri CC=golang-dev https://golang.org/cl/5121052
-
Russ Cox authored
TBR=bradfitz CC=golang-dev https://golang.org/cl/5124049
-
Ian Lance Taylor authored
Fixes #2309. R=rsc, bradfitz CC=golang-dev https://golang.org/cl/5128053
-
Robert Griesemer authored
- don't use range over string to copy string bytes - some code simplification R=mpvl CC=golang-dev https://golang.org/cl/5144044
-
- 26 Sep, 2011 17 commits
-
-
Russ Cox authored
R=golang-dev, r CC=golang-dev, ukai https://golang.org/cl/5140046
-
Russ Cox authored
R=golang-dev, r, r CC=golang-dev https://golang.org/cl/5123047
-
Russ Cox authored
Add copyright notice to nilptr.go. R=golang-dev, r CC=golang-dev https://golang.org/cl/5139048
-
Rob Pike authored
Fixes #2301. R=golang-dev, gri CC=golang-dev https://golang.org/cl/5134048
-
Russ Cox authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/5127042
-
Russ Cox authored
Case-insensitive strcmp without using ToLower. (Using ToLower is not always correct, and it allocates.) R=golang-dev, r CC=golang-dev https://golang.org/cl/5143044
-
Russ Cox authored
Also work around Mercurial issue 3023. If anyone has local changes in their repo (due to patch queues or whatever) stop them from leaking into the main repository. R=golang-dev, r CC=golang-dev https://golang.org/cl/5144043
-
Russ Cox authored
Also reject literal newline in " and ' quoted strings. R=golang-dev, r CC=golang-dev https://golang.org/cl/5139045
-
Russ Cox authored
The 512 MB array causes load delays on some systems. Now that we have recover, we can do all the tests in one binary, so that the delay is incurred just once. R=golang-dev, r CC=golang-dev https://golang.org/cl/5142044
-
Russ Cox authored
Alex Brainman reports that this is the only test that keeps us from running test/run. R=alex.brainman, lucio.dere, bradfitz, hectorchu CC=golang-dev https://golang.org/cl/4777043
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/5131044
-
Russ Cox authored
Fixes #2277. R=dvyukov, r CC=golang-dev https://golang.org/cl/5083044
-
Dave Cheney authored
R=agl CC=golang-dev https://golang.org/cl/5132041
-
Mike Samuel authored
This makes sure that all JS newlines are encoded in JSON. It also moots a TODO about possibly escaping supplemental codepoints. I served: Content-Type: text/javascript;charset=UTF-8 var s = "%s"; document.write("<p>", s, "</p><ol>"); for (var i = 0; i < s.length; i++) { document.write("<li>", s.charCodeAt(i).toString(16), "</li>"); } document.write("</l>"); where %s was replaced with bytes "\xf0\x9d\x84\x9e" to test straight UTF-8 instead of encoding surrogates separately. Recent Firefox, Chrome, and Safari all decoded it properly. I have yet to try it on IE or older versions. R=nigeltao CC=golang-dev https://golang.org/cl/5129042
-
Mike Samuel authored
The template "<a=" caused an infinite loop in escape text. The change to tTag fixes that and the change to escape.go causes escapeText to panic on any infinite loop that does not involve a state cycle. R=nigeltao CC=golang-dev https://golang.org/cl/5115041
-
Mike Samuel authored
HTML parsers may differ on whether <input id= onchange=f( ends in id's or onchange's value, <a class=`foo ends inside a value, <input style=font:'Arial' needs open-quote fixup. Per http://www.w3.org/TR/html5/tokenization.html#attribute-value-unquoted-state this treats the error cases in 8.2.4.40 Attribute value (unquoted) state as fatal errors. \> U+0022 QUOTATION MARK (") \> U+0027 APOSTROPHE (') \> U+003C LESS-THAN SIGN (<) \> U+003D EQUALS SIGN (=) \> U+0060 GRAVE ACCENT (`) Parse error. Treat it as per the "anything else" entry below. and emits ErrBadHTML. R=nigeltao CC=golang-dev https://golang.org/cl/5085050
-
Mike Samuel authored
R=nigeltao CC=golang-dev https://golang.org/cl/5128041
-
- 25 Sep, 2011 2 commits
-
-
Gustavo Niemeyer authored
R=golang-dev, rsc, adg CC=golang-dev https://golang.org/cl/5124044
-
David G. Andersen authored
The example incorrectly dereferenced an integer variable R=golang-dev, adg CC=golang-dev https://golang.org/cl/5129041
-
- 24 Sep, 2011 1 commit
-
-
Ian Lance Taylor authored
bug340.go:14:7: error: expected type bug340.go:15:4: error: reference to undefined field or method ‘x’ bug350.go:12:1: error: redefinition of ‘m’ bug350.go:11:1: note: previous definition of ‘m’ was here bug350.go:15:1: error: redefinition of ‘p’ bug350.go:14:1: note: previous definition of ‘p’ was here bug351.go:12:6: error: non-name on left side of ‘:=’ R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5127041
-