)]}'
{
  "log": [
    {
      "commit": "709ea197bba733b8d382a41a38d8b5f154f9e41c",
      "tree": "0bb2665aeab5821ba576f52102756c1e0843a305",
      "parents": [
        "d4c0d950f8850d3b6a6ad24d12793b531a27e52b",
        "9dd6aaefa3dee1774bfbed4c0968119a18cbdac1"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 10 04:30:42 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 10 04:30:43 2013 +0000"
      },
      "message": "Merge \"Add Google maven repository in pom\""
    },
    {
      "commit": "d4c0d950f8850d3b6a6ad24d12793b531a27e52b",
      "tree": "d9824cd54061d16163d8ce358b799551497408e1",
      "parents": [
        "14bee96f6e234fb69c2e2459459ca5349cc24db9"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Apr 09 20:06:31 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Apr 09 20:10:24 2013 -0700"
      },
      "message": "Fix bug in SafeHtml.replaceAll and bump to 1.3.4\n\nJoining an empty list produces the pattern (), which matches an infinite\nnumber of times, which is bad. Just short-circuit instead.\n\nChange-Id: I84266d1c82de9833a6477e39ecee99df4439a491\n"
    },
    {
      "commit": "9dd6aaefa3dee1774bfbed4c0968119a18cbdac1",
      "tree": "3e644bccd6efd27578e0a1c3c4d58878a4a6797f",
      "parents": [
        "14bee96f6e234fb69c2e2459459ca5349cc24db9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 10 11:48:52 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 10 11:51:16 2013 +0900"
      },
      "message": "Add Google maven repository in pom\n\nChange-Id: I961a5c7bd03d518f8adf9c69a16c4bcfcc93421d\n"
    },
    {
      "commit": "14bee96f6e234fb69c2e2459459ca5349cc24db9",
      "tree": "0a77a18ef2e838a3e2750f56feb08ec0ac70660d",
      "parents": [
        "52ca4e2bcc0e097bf9d1681b82077e27afcdbe0e"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 11:47:18 2013 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 09 23:35:23 2013 +0000"
      },
      "message": "Bump version to 1.3.4-SNAPSHOT\n\nChange-Id: Ib6fe61a5c78edaea0d8a48228e6e20ca7bab2f7b\n"
    },
    {
      "commit": "52ca4e2bcc0e097bf9d1681b82077e27afcdbe0e",
      "tree": "a22e7c1249071f4f3f9e106babbda4ecc3ae862e",
      "parents": [
        "bd240d4d6252d1b50370b2cb0edf3b568f1b569d"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 11:46:56 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 17:05:08 2013 -0700"
      },
      "message": "Release version 1.3.3\n\nChange-Id: Id2fa75ea7d1f4b80bd06cb8a363913b97e4bcc7c\n"
    },
    {
      "commit": "bd240d4d6252d1b50370b2cb0edf3b568f1b569d",
      "tree": "4a8420d7b702ef29f9fdbad786b2c4c52a99154f",
      "parents": [
        "5cf7afbd2fc648563b5b0df56a23cae8f92f33f3"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 10:22:58 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 17:05:08 2013 -0700"
      },
      "message": "Implement safe find/replace for user-provided links\n\nExtract an interface out of RegexFindReplace for replacement with\narbitrary types of sanitization or other munging. Implement a\nLinkFindReplace that knows how to sanitize links with SafeHtmlBuilder.\n\nPush the replacement into the FindReplace interface so implementations\ncan do sanitization _after_ regular expression replacement.\n\nChange-Id: I46383abd1921a11b4c90b80b2022051fc0c8e13c\n"
    },
    {
      "commit": "5cf7afbd2fc648563b5b0df56a23cae8f92f33f3",
      "tree": "06a4d224ec15322f97c0b4226a1ac6a29ff81526",
      "parents": [
        "6e3cd392cccf809ca7346b6c54fba41fee99fee6"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 11:41:32 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 16:48:22 2013 -0700"
      },
      "message": "Replace a list of RegexFindReplaces in a single pass\n\nReplacing in multiple passes, especially if each different\nRegexFindReplaces come from different sources (e.g. users), can lead\nto some confusing and likely dangerous behavior. Instead, replace in a\nsingle pass by unioning patterns together and re-exec\u0027ing the patterns\nto see which one matched.\n\nChange-Id: If218c9e47b3aca8ff665f1da844279aba3cbcc35\n"
    },
    {
      "commit": "6e3cd392cccf809ca7346b6c54fba41fee99fee6",
      "tree": "3deb70d24d2bcd254ac27725b72ae7b5b4f5242f",
      "parents": [
        "e7b70136574535eeb33c54e8fc5cb4000e598f55"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 11:46:38 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu Apr 04 11:46:44 2013 -0700"
      },
      "message": "Bump version to 1.3.3-SNAPSHOT\n\nChange-Id: I08b297e2b72493dd8c51c25885514bdc96fceb04\n"
    },
    {
      "commit": "e7b70136574535eeb33c54e8fc5cb4000e598f55",
      "tree": "63e01d02957ffb6fcc48ebcd6bc3b9c10d36f69a",
      "parents": [
        "b59fa04e890d67d7b641ed477e8ad2c3e7acab02"
      ],
      "author": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Wed Feb 20 11:43:52 2013 -0800"
      },
      "committer": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Wed Feb 20 11:52:57 2013 -0800"
      },
      "message": "Target links to new tabs/windows\n\nWhen making a URL a hyperlink target to a new tab or window. Within\nGerrit Code Review this permits reviewers to click on a link in a\ncomment and not lose their place.\n\nChange-Id: I3fe4477a6ca0bde2357b05856615226ef418e9e1\n"
    },
    {
      "commit": "b59fa04e890d67d7b641ed477e8ad2c3e7acab02",
      "tree": "fb1b7536cc9a13b39cdafbc5503628b1be98dacc",
      "parents": [
        "a23695719ef47e59357052a000dbb5bcc34bf979"
      ],
      "author": {
        "name": "Chris Harris",
        "email": "chris.harris@kitware.com",
        "time": "Mon Jan 28 13:26:35 2013 -0500"
      },
      "committer": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Tue Jan 29 09:14:10 2013 -0800"
      },
      "message": "Add check for IE9 and IE10 versions\n\nIf version \u003e\u003d 9000 return \"ie9\",\nif version \u003e\u003d 10000 return \"ie10\".\n\nBug: issue 926\nChange-Id: Ic9bb04f57b91d4ed785cd5e03c9390b523a5cba4\n"
    },
    {
      "commit": "a23695719ef47e59357052a000dbb5bcc34bf979",
      "tree": "7f6950a2108cbd3caea778e1ff3e8b1d608273a3",
      "parents": [
        "3145462d68e224672d2b7a50d28fbbebc3e0923d"
      ],
      "author": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Fri Jan 11 12:36:11 2013 -0800"
      },
      "committer": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Fri Jan 11 12:39:06 2013 -0800"
      },
      "message": "Use private caching on secure connections\n\nIf a user asks for a resource over a secure connection, only permit\nthe browser to cache the resource. This prevents a man in the middle\nproxy from accidentially caching a Set-Cookie header.\n\nDefine caching rules in a CacheHeaders helper class that can be\nused within Gerrit Code Review, enabling Gerrit to match behavior.\n\nChange-Id: Ibb9c3b6ccf0e16430f1adae96e8e2680f77925b0\n"
    },
    {
      "commit": "3145462d68e224672d2b7a50d28fbbebc3e0923d",
      "tree": "c8fa17f54768f147bb7d64bb505543c1d7c62da0",
      "parents": [
        "6786cb1a631b13ed62b8ced9184f03b1a9aca192"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Nov 21 13:10:03 2012 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Nov 21 13:37:29 2012 -0800"
      },
      "message": "gwtexpui 1.2.7\n\nChange-Id: Iaf2c1303afb326d540e329a958a2c41e8767afab\n"
    },
    {
      "commit": "6786cb1a631b13ed62b8ced9184f03b1a9aca192",
      "tree": "9817deb028d7a2b4aca597f99749e85327add23d",
      "parents": [
        "19636e02e448dc0c5137d68df9975192b25f9045"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Sun Oct 28 12:45:33 2012 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Oct 31 07:20:15 2012 +0100"
      },
      "message": "Enable highlighting in suggestions for multi word queries\n\nThe highlighting in suggestions only works if the display string of the\nsuggestions contains the full query string. If the query contains\nmultiple words the suggestions may correspond only to the last word. In\nthis case the display strings do not contain the full query.\n\nHaving a protected method that provides the query pattern allows\nsubclasses to highlight suggestions in multi word queries by\noverwriting this method.\n\nChange-Id: I0f82ee6dbd49b3b1192d1f62f74849659d17e281\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "19636e02e448dc0c5137d68df9975192b25f9045",
      "tree": "3bd22c5e0708a9f948af4a8666f6094cd138e747",
      "parents": [
        "226b657f88ed2d51fdd384ba90bd73b9a71e2a20"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 19 16:35:08 2012 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 19 16:58:06 2012 -0700"
      },
      "message": "gwtexpui 1.2.6\n\nChange-Id: I80def6dcbdb032c6272c2cf2a1957155d87c944c\n"
    },
    {
      "commit": "226b657f88ed2d51fdd384ba90bd73b9a71e2a20",
      "tree": "20a230984eff89c360120e4c66aa16d5a487381d",
      "parents": [
        "f301d9630606f8a6f667e5544f7fb49d31e04512"
      ],
      "author": {
        "name": "Keunhong Park",
        "email": "keunhong@codeaurora.org",
        "time": "Wed Jun 06 10:32:56 2012 -0600"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 19 16:34:52 2012 -0700"
      },
      "message": "Hide superfluous status text from clippy flash widget\n\nHide status text that says \"copy to clipboard\" when hovered over to save\nspace.\n\nChange-Id: Icb13a4ab23edbd869009f48a108d45af3c25a6ec\n"
    },
    {
      "commit": "f301d9630606f8a6f667e5544f7fb49d31e04512",
      "tree": "3f5e5978f40c945b7f48fa4946e3b067fc1848fb",
      "parents": [
        "2bd1d8d20e8927366ec67ee7972e034b94439fd5"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Dec 28 12:43:33 2011 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Dec 28 12:55:25 2011 +0100"
      },
      "message": "Fix diappearance of text in CopyableLabel when clicking on it\n\nWhen the user clicks on a CopyableLabel the displayed label is\nreplaced by an input box. In some cases the displayed input box has a\nvisible length of 0 so that the contained text is not displayed. This\nhappens when the text for the CopyableLabel is not set via the\nconstructor but with the setText(...) method. The problem is that the\nmember variable that holds the visible length is not updated when the\nsetText(...) method is invoked.\n\nBug: issue 1176\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "2bd1d8d20e8927366ec67ee7972e034b94439fd5",
      "tree": "9cd1564bdc4cc82be6e2b73db640bb10110eb43d",
      "parents": [
        "075b6470a5fc8c7379a9a3146213abc19f16cdb8"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Oct 27 08:14:13 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Oct 27 08:15:37 2011 -0700"
      },
      "message": "gwtexpui 1.2.5\n\nChange-Id: Iccbabf11d5572fc03c2e7cc4847a74cc1b88f86e\n"
    },
    {
      "commit": "075b6470a5fc8c7379a9a3146213abc19f16cdb8",
      "tree": "06c61c27b7de9623c9949952e73abb799c5dfb11",
      "parents": [
        "2b1078298c53135beafa6f7c5085cec41b10f151"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Oct 27 08:15:23 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Oct 27 08:15:37 2011 -0700"
      },
      "message": "Update Gerrit Code Review maven repository\n\nChange-Id: Ib3eb3aed0a9381b7f08d9c5d23b2535e55b42831\n"
    },
    {
      "commit": "2b1078298c53135beafa6f7c5085cec41b10f151",
      "tree": "89e15a1e07d0a7d0787d5f55a5e12b1c4f4af35a",
      "parents": [
        "742a56e31dcab7bb3314c47107ac00e7e47e6464"
      ],
      "author": {
        "name": "Gustaf Lundh",
        "email": "gustaf.lundh@sonyericsson.com",
        "time": "Mon Sep 12 12:51:38 2011 +0200"
      },
      "committer": {
        "name": "Gustaf Lundh",
        "email": "gustaf.lundh@sonyericsson.com",
        "time": "Mon Sep 12 12:52:54 2011 +0200"
      },
      "message": "Fix: Issue where Gerrit could not linkify certain URLs\n\nIn commit 742a56e31dcab7bb3314c47107ac00e7e47e6464\nsupport was added to allow Gerrit to linkify URLs\ncontaining \"~\".\n\nHowever, since the \"~\"-character was added after the\ndash \"-\" in the regex pattern:\n\n   742a56: [a-zA-Z0-9$_.+!*\u0027,%;:@\u003d?#/-~]\n                                      ^\n...it effectively changed the meaning of \"-\" from\na literal character to instead include the full range\nof characters between \"/\" and \"~\" (EXCLUDING\nthe actual \"-\" sign)\n\nThis patch allows Gerrit to again acknowledge the \"-\"\nto be a part of the url.\n\nChange-Id: Ia7754481daea103be0664891aa612d6a13d8e344\n"
    },
    {
      "commit": "742a56e31dcab7bb3314c47107ac00e7e47e6464",
      "tree": "5e2ebdea8b83294de88d37ad74dd20c8dfd07858",
      "parents": [
        "bd728215f6db84e539ec1612350c5b08c37105eb"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 20 08:33:28 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 20 08:35:52 2011 -0700"
      },
      "message": "Support ~ in URLs in linkfy()\n\nChange-Id: Ie2cbd43903f4f6e453adc52f5d4e543847788658\n"
    },
    {
      "commit": "bd728215f6db84e539ec1612350c5b08c37105eb",
      "tree": "ca1ca3fd3e46b9df3c8048a8c9a63b4c15b4f7bd",
      "parents": [
        "4ed98336b42a0bc4315c99581e5b7a5ea6513476"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 20 08:33:11 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 20 08:35:51 2011 -0700"
      },
      "message": "Update GWT to 2.3.0\n\nChange-Id: Ide36d952df68c6ef27616b8d0d67312c15a9eb69\n"
    },
    {
      "commit": "4ed98336b42a0bc4315c99581e5b7a5ea6513476",
      "tree": "c1f19c5b0a2edc0bd96e8bfcb9afe8b6de5dbf4a",
      "parents": [
        "db0205b56de7b7f50a67f7d9bc23b3e42301eddd"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 09:19:07 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 09:19:07 2011 -0700"
      },
      "message": "gwtexpui 1.2.3\n\nChange-Id: Ic1945c14fac3226cc11a775346bf94e71120b902\n"
    },
    {
      "commit": "db0205b56de7b7f50a67f7d9bc23b3e42301eddd",
      "tree": "a6856f2c54fc8e189b00fd3de5a4e9002ac5a218",
      "parents": [
        "4eaa92e82cf0dfd85e5c1e641b75ac985e4364f7"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 09:03:22 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 09:03:22 2011 -0700"
      },
      "message": "Fix bad help display of keyboard shortcuts\n\nWhen merging \"idential\" key commands onto a single help line,\nactually merge them onto the row that is common, rather than\nthe first row of the section. This prevents the \"u\" binding\nin Gerrit Code Review from sometimes showing up on the wrong\nhelp line, suggesting it does a different action.\n\nChange-Id: Ica4ff0f1e2165e92ccfbb9b238eeaf7da513d7c2\n"
    },
    {
      "commit": "4eaa92e82cf0dfd85e5c1e641b75ac985e4364f7",
      "tree": "838cdec610f9b9cf8d0acb88c493201945926000",
      "parents": [
        "eef07192d690b4ba6ee5ce23b5afb47a5b000bf9"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 08:23:47 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 08:23:47 2011 -0700"
      },
      "message": "Update GWT to 2.1.1\n\nChange-Id: Ief89db54d54b44e91e61dd6f548cb09f0908a176\n"
    },
    {
      "commit": "eef07192d690b4ba6ee5ce23b5afb47a5b000bf9",
      "tree": "226a4818a120988f19c6fe6c75bbebb9546f18d6",
      "parents": [
        "f258b54813e7694bf3a84046393ad16882dab867"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 08:22:37 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 13 08:22:37 2011 -0700"
      },
      "message": "assert: Include description of duplicate key registration\n\nThis way its easier to track down the problem during GWT debug\nsessions.\n\nChange-Id: Idab1f1163069cba7285f986dcfebd34391b9045c\n"
    },
    {
      "commit": "f258b54813e7694bf3a84046393ad16882dab867",
      "tree": "32a1375d91b9a1ed66c9010662eba5b459a468f5",
      "parents": [
        "2455901afc79bcc08de16b9e55ee8aa66194b85d"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Jun 01 13:57:46 2011 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Jun 01 13:57:46 2011 +0200"
      },
      "message": "Make background of CopyableLabel transparent\n\nThe flash animation to display a CopyableLabel has now a transparent\nbackground.\n\nIn Gerrit the background of the CopyableLabel will now always have\nthe color that is defined as background color in the theme. Before\nthis change the CopyableLabel always had a white background which\nlooked bad if a non-white background color for Gerrit was configured.\n\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@gmail.com\u003e\n"
    },
    {
      "commit": "2455901afc79bcc08de16b9e55ee8aa66194b85d",
      "tree": "7a9cee29ea1d6de03bd9009e4c6b4a15db1ae434",
      "parents": [
        "8e046b89368fc5b72826cd74bb538f95a6f884a6"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Aug 19 17:04:01 2010 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Aug 19 17:04:01 2010 -0700"
      },
      "message": "Always prevent default event delivery on keys\n\nIf we matched a key binding, we want to steal that from the\nbrowser agent and never permit it to use its default action.\n\nChange-Id: I245b99ab0d890573571184f89599718e1be70ce7\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "8e046b89368fc5b72826cd74bb538f95a6f884a6",
      "tree": "d587305eaa7ab5bbfc0b6149a43933f8768feba1",
      "parents": [
        "26901d02f1b614bc1bd0f64435786c560aa44e7a"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Feb 22 08:30:27 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Feb 22 08:30:27 2010 -0800"
      },
      "message": "gwtexpui 1.2.1\n\nChange-Id: I01eba05f9c02c1084ce30a6cc0247841fba69aa0\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "26901d02f1b614bc1bd0f64435786c560aa44e7a",
      "tree": "a0ac1e3302e492af1c364cd18a4974c34ed8078d",
      "parents": [
        "7865e3e2227391455ea83fed2a6a521b04852002"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 30 12:02:55 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 30 12:02:55 2010 -0800"
      },
      "message": "Expose SafeHtml.asString as a public member\n\nOtherwise its nearly impossible to run Prettify against a safe\nHTML string.\n\nChange-Id: Ic7532c53d1bf43bd8685acf91a3c3bd9fc5782cd\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "7865e3e2227391455ea83fed2a6a521b04852002",
      "tree": "2542cb7d10ce8be9a3a92815aad02a1a9ec480c8",
      "parents": [
        "f512d8251bc27b5487d52847b9ef82d47d59d5e6"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 30 12:02:22 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 30 12:02:22 2010 -0800"
      },
      "message": "Start 1.2.1 development\n\nChange-Id: If92327a79c25e9768789e87e9d0fefbbf978c259\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "f512d8251bc27b5487d52847b9ef82d47d59d5e6",
      "tree": "7c720b8d60ade638e550054f616cb76979653b72",
      "parents": [
        "f00998e978c067de331ff3d984d387896b62940b"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 02 13:09:39 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Jan 02 13:09:39 2010 -0800"
      },
      "message": "gwtexpui 1.2.0\n\nChange-Id: Id20a47d3b07cde8b5ec6f3368b20fa9d74520429\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "f00998e978c067de331ff3d984d387896b62940b",
      "tree": "7ae555331a3885deb998834252fc188f9e68dc6d",
      "parents": [
        "4da9d804b2994c8aced00d0972d4e10bbdaf05b1"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Dec 30 14:13:11 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Dec 30 15:13:44 2009 -0800"
      },
      "message": "Implement server-side GWT permutation selection\n\nRather than downloading and evaluating a large $module.nocache.js\npage into the browser, perform the module evaulation on the server\nside using the HttpServletRequest\u0027s headers.\n\nIn the case of Gerrit Code Review, which only has the 6 standard\nbrowser permutations, the $module.nocache.js file is 5179 bytes.\n\nPerforming server side selection and inlining the result into the\nhost page completely removes this HTTP request, its local disk\ncache space, and the network transfer costs.\n\nThe server side selected host page, including a single theme\nstylesheet reference, is about 519 bytes larger than the same\npage using a \u003cscript src\u003d\"$module.nocache.js\"\u003e reference.\n\nChange-Id: I9ae530fe7a3b32f14f29440736644e9e32d28f0c\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "4da9d804b2994c8aced00d0972d4e10bbdaf05b1",
      "tree": "b030cadd4fe016bd08f7170100cb98f9c323ca5e",
      "parents": [
        "fe4e819ca7421df20c83bf8274769469f007150b"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sun Dec 27 13:37:35 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sun Dec 27 13:37:39 2009 -0800"
      },
      "message": "Deploy snapshots to the gerrit snapshot repository\n\nChange-Id: Ibc8325c1b5c4af11d5d16521d7ac7841af11e6ef\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "fe4e819ca7421df20c83bf8274769469f007150b",
      "tree": "cda2cb4742158189993ac3df9410a4c79c982e4b",
      "parents": [
        "9116fcb301bca4aa53e69fc08a6cef7348ee822e"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Dec 21 15:47:33 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Dec 21 15:53:26 2009 -0800"
      },
      "message": "Restore the CSS linker\n\nThis reverts commit c9efa267db1c0f481c8a02e847fc758609e6903e.\n\nGWT 2.0 doesn\u0027t provide strong caching support for its own chrome\nCSS files, which means browsers may have to revalidate the CSS on\neach page load.\n\nRestore our CSS linker, as it provides strong names for the CSS\nassets and allows browers to cache the resources.\n\nChange-Id: I1fee469daeaf5369701c5930f0e5dffca1b6be61\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "9116fcb301bca4aa53e69fc08a6cef7348ee822e",
      "tree": "b37d3d1905326a830c40c4d85b13206de470b808",
      "parents": [
        "2172995543a09aa4e4e9c9fe91682d15c5dcbc93"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Dec 21 15:43:52 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Dec 21 15:43:52 2009 -0800"
      },
      "message": "Correct URL to apache license in CSS headers\n\nA bad global search-replace in the header text lead to\nthis particular damage, which copy-and-paste later put\nin more than one file.\n\nChange-Id: Id0cabb1c83935aa820e70cb4f951b8611057afef\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "2172995543a09aa4e4e9c9fe91682d15c5dcbc93",
      "tree": "8af113d60b0a92b9ca966d97f2415780b796d0b9",
      "parents": [
        "880abba733308d68882c07cdf9296ab2fedf62ec"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:57:56 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 21:00:01 2009 -0800"
      },
      "message": "CopyableLabel: Fix select all on Safari\n\nBy using a deferred command here for the select all and focus we\ncan better handle Safari\u0027s event model, which requires the UI to\nupdate before select all will work.\n\nChange-Id: Ie3a190f3567d3cb05beb3714d6e2b4b02ad520ac\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "880abba733308d68882c07cdf9296ab2fedf62ec",
      "tree": "3537431b96a7690cc38dc8c3f92a0bdaf64e78bd",
      "parents": [
        "48f0c8739d104a8fd4d8cf6ee4f052491893b2fa"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:57:20 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 21:00:00 2009 -0800"
      },
      "message": "CopyableLabel: Allow setting the preview text for the label\n\nWhen Gerrit Code Review puts the entire SSH host key into the\ncopyable label it causes the entire layout to fall apart as\nthe text is simply too wide for the screen, and the Clippy\nFlash movie runs off the edge.\n\nInstead allow the application to provide its own abbreviation\nstring for the preview you click on.\n\nChange-Id: I5aaaa7b4b41c2f461671955a7d82f09107e0e0a5\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "48f0c8739d104a8fd4d8cf6ee4f052491893b2fa",
      "tree": "c55fb54922e7bba58faffe4d951dea0e5ef5b5ad",
      "parents": [
        "a9af090222f495f8bd9c77ff399fb17584e3f89c"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:11:33 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 21:00:00 2009 -0800"
      },
      "message": "Change wiki preformat font to be more readable\n\nGerrit 2.1-rc1 changed its font for monospace to include\n\u0027Lucida Console\u0027, \u0027Lucida Sans Typewriter\u0027, and \u0027Monaco\u0027\nas these can often produce more readable monospace text,\nespecially when the string \"call11\" is used.\n\nChange-Id: I0420cf2613f12a5e7991ce7acf90a05ce28faddd\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "a9af090222f495f8bd9c77ff399fb17584e3f89c",
      "tree": "a03abaf8e7f5193457d2897650f0abe117457565",
      "parents": [
        "3a6622a110dd7127c3538f0df34b70d4866708b3"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:10:24 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:59:59 2009 -0800"
      },
      "message": "Switch all CSS to use CssResource\n\nChange-Id: I72600495e15c094afcd9bbb10b11469a2c096ece\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "3a6622a110dd7127c3538f0df34b70d4866708b3",
      "tree": "db5341666dba3b12395c57991eae2565f29a5735",
      "parents": [
        "c9efa267db1c0f481c8a02e847fc758609e6903e"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 18:58:53 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:59:58 2009 -0800"
      },
      "message": "Update to GWT 2.0.0\n\nChange-Id: I76f3cd2f546d35aca5183262956510ffa98b0243\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "c9efa267db1c0f481c8a02e847fc758609e6903e",
      "tree": "6286c6a585c8b10a2165b04cbd0d6109167dc60b",
      "parents": [
        "558d82774e096d8d1903344b636827c0322b07df"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 18:58:47 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:59:58 2009 -0800"
      },
      "message": "Drop the CSS linker, GWT 2.0 does a better job than this\n\nChange-Id: I128e6d85c1f96c311824b40eb3313eb35a457aba\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "558d82774e096d8d1903344b636827c0322b07df",
      "tree": "3b67fdda4b12b79b663eb0856d32c317455896db",
      "parents": [
        "f2cf7f4234f8a92504b8e7c33f4cc2172b4d13f1"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 18:57:07 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Dec 18 20:59:57 2009 -0800"
      },
      "message": "Begin gwtexpui 1.2.0 development\n\nChange-Id: I1ca9177c636f841152236572c143e67258061f20\n"
    },
    {
      "commit": "f2cf7f4234f8a92504b8e7c33f4cc2172b4d13f1",
      "tree": "688ca9e45b16501c4a1b488e8580b9e137da84f3",
      "parents": [
        "f82ab6c73957d886dae8aa7c22362555724b0ebe"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Dec 12 20:19:56 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Dec 12 20:19:56 2009 -0800"
      },
      "message": "gwtexpui 1.1.4\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "f82ab6c73957d886dae8aa7c22362555724b0ebe",
      "tree": "08586a6805f4710aa9d7581f165b63f8a311fe80",
      "parents": [
        "12ece5c6b4b864d2e6d78fab62a125a85260b95e"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:41:38 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:41:38 2009 -0800"
      },
      "message": "Add tests for SafeHtml.replaceAll(RegexFindReplace)\n\nChange-Id: Ibc2082b082713f201eb326c232d789330f58d822\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\nReviewed-by: Brad Larson \u003cbklarson@gmail.com\u003e\n"
    },
    {
      "commit": "12ece5c6b4b864d2e6d78fab62a125a85260b95e",
      "tree": "c7e19f7f9591246b8a1d5e2d12a5aa25b15153a8",
      "parents": [
        "a2d0d4cea9327af64d65c355cadd3ea066210d61"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:33:00 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:33:00 2009 -0800"
      },
      "message": "Fix Javadoc hyperlink in replaceAll documentation\n\nChange-Id: Ie0831ee76b494f866ac5e64d0eebe81eba4aeb11\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\nReviewed-by: Brad Larson \u003cbklarson@gmail.com\u003e\n"
    },
    {
      "commit": "a2d0d4cea9327af64d65c355cadd3ea066210d61",
      "tree": "6a5f08dc115a379da5f4b224e096cb2ce330c4cb",
      "parents": [
        "8f608ec926c3418d7c84f35bd0ef371acf5d18d0"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:19:45 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:19:45 2009 -0800"
      },
      "message": "Remove trailing whitespace during save in Eclipse\n\nChange-Id: I65c674ee8e0d8aa44613793d87e76c7ad9e98090\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "8f608ec926c3418d7c84f35bd0ef371acf5d18d0",
      "tree": "2f99bbd313c5e9459c3b3a5e5fe90169054c6611",
      "parents": [
        "96040217f6f7a2bfcc7d40e8ccbb38c3527a93ba"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:16:03 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 16:16:03 2009 -0800"
      },
      "message": "Fix auto-formatting of bullet lists\n\nPreviously we were bulleting the first line in a paragraph, even if\nit did not have a bullet marker.  E.g. if the user entered:\n\n  To see this bug, you have to:\n  * Be on IMAP or EAS (not on POP)\n\nthe first line was treated as though it had been \"* To see this bug\".\nThis was not what the author intended in this example.\n\nWe now make an exception for the first line(s) in the list paragraph,\nrendering them in their own \u003cp\u003e tag isolated from the list elements.\n\nBug: gerrit issue 293\nChange-Id: I7131bb845d2eeb9e208300ba9a09ec6c805b8df8\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "96040217f6f7a2bfcc7d40e8ccbb38c3527a93ba",
      "tree": "137daa97eb644402a5a92457405d01913aba1540",
      "parents": [
        "9aae468486433c1827ddeaa2b2c149c4c3fb0fd7"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 15:51:59 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 15:51:59 2009 -0800"
      },
      "message": "Add tests for SafeHtml linkify and wikify\n\nTest the common filter rules, as we have had some trouble with\nthese patterns in the past.\n\nChange-Id: I6c45e3bea762fa19a8042524799a8bae2fe94728\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "9aae468486433c1827ddeaa2b2c149c4c3fb0fd7",
      "tree": "145cf1c095c9726371666cf64fd394a2235c17e7",
      "parents": [
        "677f61c97c4ddb21fe95b1aca83bb6758cf665cf"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 15:26:27 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 15:26:27 2009 -0800"
      },
      "message": "Add simple tests for SafeHtmlBuilder\n\nValidates most of the SafeHtmlBuilder logic relating to escaping\nof text befor injecting into a block of raw HTML.\n\nChange-Id: I7f02c9548125b8538c318cb7f038ee1829b5d909\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "677f61c97c4ddb21fe95b1aca83bb6758cf665cf",
      "tree": "8fab013f810fe66ceac0e7a9f19c8c91c60edef3",
      "parents": [
        "cef685f6d047382f73325fca65dfdb0b717454bd"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 14:28:41 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 14:28:41 2009 -0800"
      },
      "message": "Update to GWT 1.7.0\n\nChange-Id: If53d51ea24b85c93a6702d828a47ee90d6e77658\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "cef685f6d047382f73325fca65dfdb0b717454bd",
      "tree": "592e2c0e78bbb160836397a18cab9f4305e3be87",
      "parents": [
        "d391c69030435ff333f74e34576884fb2eb324d1"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 13:01:12 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 13:01:12 2009 -0800"
      },
      "message": "Add JUnit test for RegexFindReplace\n\nThis test is really trivial, it only validates the container class\nholds data.  We\u0027ll come back later and add additional tests against\nthe SafeHtml.replaceAll method which uses it.\n\nChange-Id: Ie21e4d60de1e4464a5c57de27e1edc3a145f6cd6\nReviewed-by: Brad Larson \u003cbklarson@gmail.com\u003e\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "d391c69030435ff333f74e34576884fb2eb324d1",
      "tree": "cad699a554cc793df87872bd8a105fbd1a4785fe",
      "parents": [
        "62f411eb01ea6e8f6c5cab57d050294498293181"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 12:26:13 2009 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Nov 05 12:26:13 2009 -0800"
      },
      "message": "Always use UTF-8 when copying resources\n\nThis way the build isn\u0027t platform dependent.\n\nChange-Id: Ib8d4a48ede1c711e8c1b56e45c50428df436988f\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "62f411eb01ea6e8f6c5cab57d050294498293181",
      "tree": "0aad3a2fbdae3d32a981584c52f6f505f08a12f4",
      "parents": [
        "ccbb96132633d52385a9b9b8a636e57d56b339fc"
      ],
      "author": {
        "name": "Brad Larson",
        "email": "bklarson@gmail.com",
        "time": "Tue Nov 03 14:22:54 2009 -0600"
      },
      "committer": {
        "name": "Brad Larson",
        "email": "bklarson@gmail.com",
        "time": "Tue Nov 03 21:58:22 2009 -0600"
      },
      "message": "Add custom find/replace to SafeHtml\n\nApps can now specify a list of find/replace strings to SafeHtml.  This is\ncurrently used to turn string identifiers into links.\n\nSigned-off-by: Brad Larson \u003cbklarson@gmail.com\u003e\n"
    },
    {
      "commit": "ccbb96132633d52385a9b9b8a636e57d56b339fc",
      "tree": "51f19e8c8ad23bda579fa580ccc6fd6e1c081c72",
      "parents": [
        "6395daeec0d1648685fc1e3d559f9a3b61c7c750"
      ],
      "author": {
        "name": "Brad Larson",
        "email": "bklarson@gmail.com",
        "time": "Tue Nov 03 14:14:48 2009 -0600"
      },
      "committer": {
        "name": "Brad Larson",
        "email": "bklarson@gmail.com",
        "time": "Tue Nov 03 14:14:48 2009 -0600"
      },
      "message": "Start 1.1.4 development\n\nSigned-off-by: Brad Larson \u003cbklarson@gmail.com\u003e\n"
    },
    {
      "commit": "6395daeec0d1648685fc1e3d559f9a3b61c7c750",
      "tree": "a2802a7fd3dbae11a7b70c7fd257f7d3dd3581db",
      "parents": [
        "aeea78ab9cc53aa2fd9e1853ea6c2f32d5c9ffcc"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Sep 09 09:37:14 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Sep 09 09:37:14 2009 -0700"
      },
      "message": "gwtexpui 1.1.3\n\nChange-Id: Id03beed717927aa5a954bbc8f7b1f86d23963628\n"
    },
    {
      "commit": "aeea78ab9cc53aa2fd9e1853ea6c2f32d5c9ffcc",
      "tree": "6abb89a557e767638372edb4591ab026801fa250",
      "parents": [
        "a80e9a34012b7de569f10fffe357fcb28290756d"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Sep 03 10:18:52 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Sep 03 10:19:01 2009 -0700"
      },
      "message": "Teach SafeHtml.linkify() to ignore trailing \"\u003e\"\n\nBecause we are running linkify on the HTML safe URL, a string\nsuch as \"\u003chttp://foo\u003e\" is actually appearing to our regex as the\nstring \"\u0026lt;http://foo\u0026gt;\".  As \"\u0026gt;\" is a valid sequence of URL\ncharacters we were pulling the \"\u0026gt;\" into the URL, when in fact\nour intent was to leave it out.\n\nWe now skip \"\u0026lt;\" and \"\u0026gt;\" within a URL, as these are meant to\nbe read by the browser after parsing as \"\u003c\" and \"\u003e\", and these are\nnot considered to be part of the URL.\n\nBug: GERRIT-277\nChange-Id: Ide9a63c3c998eac6a3ce9f23066668c2e7a9aba6\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "a80e9a34012b7de569f10fffe357fcb28290756d",
      "tree": "b801c0783489d4debd1b63c9ff120ef128254f75",
      "parents": [
        "9c634d13dcbaf93857845fe397101abe2f86f9c5"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Sep 03 09:47:18 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Sep 03 09:47:18 2009 -0700"
      },
      "message": "Start 1.1.3 development\n\nChange-Id: Ia8118b3409c9b24824a95bd6364e1a84139c188d\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "9c634d13dcbaf93857845fe397101abe2f86f9c5",
      "tree": "24d2095f18bd130fb0035e90c8aad9cf0798354b",
      "parents": [
        "7e83c7ace01c68fbac8265d3d3526b1faad2e639"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jul 20 15:54:59 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jul 20 15:54:59 2009 -0700"
      },
      "message": "gwtexpui 1.1.2\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "7e83c7ace01c68fbac8265d3d3526b1faad2e639",
      "tree": "f518c09ec00a40a4c19905d72d6efc38606ad66a",
      "parents": [
        "1c6a51cb5b8301a38240456ef330954995b6c3bd"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jul 07 16:20:18 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Jul 10 08:39:42 2009 -0700"
      },
      "message": "Combine key groups with the same name\n\nIf two different KeyCommandSets have the same name for their\nsections, its likely because two different UI widgets wanted\nto register different bindings at once.  It looks better to the\nend-user if we only display one set.\n\nReviewed-by: Cedric Beust \u003ccbeust@google.com\u003e\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "1c6a51cb5b8301a38240456ef330954995b6c3bd",
      "tree": "0b52452fff8b9be8e260d33442092407f2503278",
      "parents": [
        "4dca6784c10476aaf9ec7c541a5eed8e60cce61c"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 02 08:34:27 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 02 08:34:27 2009 -0700"
      },
      "message": "Start 1.1.2 development\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "4dca6784c10476aaf9ec7c541a5eed8e60cce61c",
      "tree": "169298f89cf6e4d1b92278e4025b1f8d155ddb3f",
      "parents": [
        "339a1c50d294c11f0d4d28200f9f49e8dc26d239"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 02 08:32:39 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 02 08:32:39 2009 -0700"
      },
      "message": "gwtexpui 1.1.1\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "339a1c50d294c11f0d4d28200f9f49e8dc26d239",
      "tree": "c33f181a27b2d0bb1c600ccef118c34ffca8088d",
      "parents": [
        "a30ed6c13a230d7f60c99b5e1e1dfbb709137ceb"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 01 17:54:07 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Jun 01 17:54:07 2009 -0700"
      },
      "message": "Require balanced parens in hyperlinks, otherwise exclude it.\n\nThis makes links like \"(http://foo/)\" render more accurately,\nby skipping the parens the user placed around the link.\n\nBug: GERRIT-163\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "a30ed6c13a230d7f60c99b5e1e1dfbb709137ceb",
      "tree": "7906934f89548a29d1795e629e4f8127dbf6ebcb",
      "parents": [
        "5a6dc0fd74797d83b4d4ae70872302767c6bf964"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 30 11:08:28 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 30 11:08:28 2009 -0700"
      },
      "message": "Add SafeHtml.asis to prevent escaping existing HTML text\n\nThis can be useful when reading constants from a constants file,\nbut its risky as the text is not escaped.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "5a6dc0fd74797d83b4d4ae70872302767c6bf964",
      "tree": "1b9ee8c70d399fbd37b2906a4a851f9a901329e2",
      "parents": [
        "6657e694d911c6e6cf94b56626d980ef9cccabda"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 16:15:47 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 16:15:47 2009 -0700"
      },
      "message": "Fix View.isCurrentView to account for wrapping\n\nViewSite wraps View objects inside of other panels before it\ndisplays them, so we really need to consider unwrapping the\nparent a couple of levels in order to find the parent ViewSite\nand test for our instance.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "6657e694d911c6e6cf94b56626d980ef9cccabda",
      "tree": "679b973731bbfddd990a0f6b1bee6fbfaabdc95e",
      "parents": [
        "c52117cc59906aa3bb5a9aa4a669900f5d712b9a"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 15:48:42 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 15:56:43 2009 -0700"
      },
      "message": "Paper bag fix \u0027?\u0027 to close help dialog\n\nI failed to set the current dialog, which meant we never knew\nwhat dialog to close when \u0027?\u0027 was pressed when there was already\na dialog open.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "c52117cc59906aa3bb5a9aa4a669900f5d712b9a",
      "tree": "06c5fdfb1017a8da4efc13617ea9a2115299839e",
      "parents": [
        "c80a47113d887406d9733521a50cf9d5e2c817be"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 11:52:12 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 11:52:12 2009 -0700"
      },
      "message": "Make \u0027?\u0027 toggle the help dialog closed\n\nBug: GERRIT-184\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "c80a47113d887406d9733521a50cf9d5e2c817be",
      "tree": "25d7ab3212af17bcdffa4542e3a78b1373f70adb",
      "parents": [
        "42b27be34f41834f588c37d7e1afa18ecb7022a9"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 11:49:52 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 21 11:49:52 2009 -0700"
      },
      "message": "Expose the PopupPanel hide command used by GlobalKey\n\nThis way applications can setup a binding on the same key that is used\nto open the dialog to close it, making that key a toggle key.  By using\nthe same command class, the help for the dialog will show the various\ndifferent methods of closing the dialog aliased under a single entry.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "42b27be34f41834f588c37d7e1afa18ecb7022a9",
      "tree": "5c62d565ad357e79120de1c329f69ab1542ad91d",
      "parents": [
        "5bad647ffcf79e07da581ee4dba861db31d851f2"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 19 09:12:36 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 19 09:12:36 2009 -0700"
      },
      "message": "Fix assertion in hosted mode for GlobalKey.dialog\n\nWe must test isShowing here, not isVisible, as the popup may be added\nto the DOM tree, slated for display, but not yet visible as the code\nis still trying to compute the correct size and location before the\npopup is made visible to the user.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "5bad647ffcf79e07da581ee4dba861db31d851f2",
      "tree": "0eaf6c1569a43456515693bd83c7305481cb2e30",
      "parents": [
        "e8ad42a691613b3120067cbfd73fb76caf8760f6"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 19 09:11:26 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 19 09:11:26 2009 -0700"
      },
      "message": "Start gwtexpui 1.1.1 development\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "e8ad42a691613b3120067cbfd73fb76caf8760f6",
      "tree": "b5b1090cd9dcf01853c80ffb37bf7bd3c07e691a",
      "parents": [
        "62b1b64137391e8bb94e14c012d630e173bf52ed"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 18 10:22:44 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 18 10:22:44 2009 -0700"
      },
      "message": "gwtexpui 1.1.0\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "62b1b64137391e8bb94e14c012d630e173bf52ed",
      "tree": "331672621723cdee27d8bcb405be2b24f019be54",
      "parents": [
        "bc64308d6e566988f4fafecf60126b85f9cd3963"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 18 10:10:47 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 18 10:17:55 2009 -0700"
      },
      "message": "Support compound key combinations in GlobalKey\n\nCompound keys can now be formed by embedding a KeyCommandSet inside\nof a CompoundKeyCommand.  The set is only enabled for a short time\n(250 ms) after the activation key on the CompoundKeyCommand is hit\nby the user.  If the timeout expires, the set is disabled.  If a\nkey is selected, the set is disabled.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "bc64308d6e566988f4fafecf60126b85f9cd3963",
      "tree": "784a7ec99aec889b173abac350cb60fd8cfc4e7a",
      "parents": [
        "3ce91600087b20b08c92580ff9d2cf26bf40dcf3"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 19:14:41 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 19:14:41 2009 -0700"
      },
      "message": "Add support for one level deep dialogs to GlobalKey\n\nNow when a dialog is started we switch to a different key map, one\nthat is unique to the dialog.  Any KeyCommandSets that are installed\nwhile the dialog is still visible root in the dialog if they are in\nthe dialog\u0027s DOM tree, otherwise they root into the global set.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "3ce91600087b20b08c92580ff9d2cf26bf40dcf3",
      "tree": "26c0750c12b42b025538776eb763e1708a0d8e3c",
      "parents": [
        "bb18d91000763ced12881079b2a250a2748bc37a"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 18:37:57 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 18:37:57 2009 -0700"
      },
      "message": "Don\u0027t ever overwrite a key binding\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "bb18d91000763ced12881079b2a250a2748bc37a",
      "tree": "7b19c263f815e5bde811ff5a159f5739cf96acfb",
      "parents": [
        "7e64224ebdaabd3bcb3f2775d27426f2964e0035"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 17:10:30 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 17:10:30 2009 -0700"
      },
      "message": "Paper bag fix GlobalKey application group removal\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "7e64224ebdaabd3bcb3f2775d27426f2964e0035",
      "tree": "8686de719775694fe0e9fcc4e76b24c8d8609c96",
      "parents": [
        "bc6ac932acbfee71fa8c3fa98fe2caa65032f52e"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 10:50:50 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat May 16 10:50:50 2009 -0700"
      },
      "message": "Allow applications to disable clippy the flash movie\n\nSome users may wish to disable flash entirely, as it does slow down\nthe user interface, and may offer only very little, if any benefit,\nto the user.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "bc6ac932acbfee71fa8c3fa98fe2caa65032f52e",
      "tree": "8f5675f91e885b0242d3e833e9d1a9ef3e023c34",
      "parents": [
        "2eba320d0268c016a88c5479ffb60e1106bec8e6"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 21:10:17 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 21:10:17 2009 -0700"
      },
      "message": "Create text boxes which always stop event propagation\n\nThis is necessary to keep keys such as \u0027?\u0027 from carrying into the\nmain window global key listener, and firing events when the user\nmeant to type some text instead.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "2eba320d0268c016a88c5479ffb60e1106bec8e6",
      "tree": "c87229086b4b0821974f263a6d1f22161b28dbd7",
      "parents": [
        "e7f4f591552ef15d405047d90df54c3e97d4608c"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 18:20:55 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 18:20:55 2009 -0700"
      },
      "message": "Create a global keyboard focus in the document level\n\nThe GWT FocusPanel class can be very unreliable, especially\nwhen dealing with older browsers like WebKit that have to\nuse a hidden input trick to receive keyboard events.  Its\nmuch cleaner to install a onkeypress listener directly onto\nthe document object, but this is a window level listener and\nit gets every key event processed, and there is only one of\nthem for the entire window.\n\nThis new globalkey module supports creating sets of keys and\npaging them on or off as the application needs.  A popup is\nalso available, bound to \u0027?\u0027, showing the keyboard actions\nthat are currently available.  The keyboard table is created\non the fly, based on the current bindings.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "e7f4f591552ef15d405047d90df54c3e97d4608c",
      "tree": "cce750d4f19fd4982ddb62512d24fb0cd5148aa5",
      "parents": [
        "5e77caee6b54a58b59686575518726f9ce887ce8"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu May 14 17:54:07 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 15:41:08 2009 -0700"
      },
      "message": "Remove the FocusPanel wrapping hack we used to disable Safari\n\nUsing FocusPanel is generally just busted in GWT.  We are much better\nserved by registering a global keyboard handler for actions that we\nreally care about getting keystrokes for.  So this wrapper / not-wrap\nhack isn\u0027t a good idea.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "5e77caee6b54a58b59686575518726f9ce887ce8",
      "tree": "0f0796c8bfc5ff2987dde0b0a75df28a4c65d1fd",
      "parents": [
        "77f65d5148421f4e1b797e131a2b4cc2edce701d"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 15:40:57 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 15 15:41:08 2009 -0700"
      },
      "message": "Add methods to obtain the current HTML as a SafeHtml\n\nThis way an application can append more text onto the\nexisting, already safe HTML data, and then put it back\ninto the widget, without causing double escaping on the\nexisting content.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "77f65d5148421f4e1b797e131a2b4cc2edce701d",
      "tree": "a9b3ab0007d7b8b468671c7458dda6b7fcff49f6",
      "parents": [
        "d4d0a2c77869f1f1e76cd882072d08ac22da9465"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:28:52 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:34:42 2009 -0700"
      },
      "message": "Update CopyableLabel to GWT 1.6 handler model\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "d4d0a2c77869f1f1e76cd882072d08ac22da9465",
      "tree": "507bf64d8c40a439cbf04477a0a87c50d29869e0",
      "parents": [
        "a68c6df08dc35f74a40b69be6dc702512d3e8867"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:26:01 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:34:42 2009 -0700"
      },
      "message": "Replace deprecated WindowListener with ResizeHandler\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "a68c6df08dc35f74a40b69be6dc702512d3e8867",
      "tree": "0a96b3755b129058bba6aca58f0ed5974843a19c",
      "parents": [
        "167bb10ed8aa500e7800b7c29e3f0cbb2c87bc13"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:23:06 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 09:34:39 2009 -0700"
      },
      "message": "Add CSS linker module to create cacheable CSS references from modules\n\nThis linker module makes all CSS references within the entire\noutput module to be cached by a strongly computed name from\nthe CSS content.  This covers not just application CSS code,\nbut also any CSS code imported by GWT or other modules that\nthe application module inherits from.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "167bb10ed8aa500e7800b7c29e3f0cbb2c87bc13",
      "tree": "e4ee1d4f676b4ebaad258163dbee23b97f5f1734",
      "parents": [
        "04c495b3baca19930aa0ba791f0736439e126bed"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 08:51:23 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed May 13 08:51:23 2009 -0700"
      },
      "message": "Upgrade to GWT 1.6.4 and Java 1.6\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "04c495b3baca19930aa0ba791f0736439e126bed",
      "tree": "1eab479b3d9bb7d8406bd55966bf2fda1c912abd",
      "parents": [
        "17257884c72cdc901016edf88c0c060e8a902814"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 12 18:47:10 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 12 18:47:10 2009 -0700"
      },
      "message": "Include the \u0027Google Format\u0027 style we selected in our project settings\n\nWithout this format file available, developers outside of Google\ncan\u0027t actually make Eclipse format the code the same way that the\nrest of the code is already foramtted.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "17257884c72cdc901016edf88c0c060e8a902814",
      "tree": "a4e4e6adacd3b104a15579c25e379ccf3b4d2136",
      "parents": [
        "6fc24dcd07d080339672efdb2c3511922b448cbb"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 12 18:46:44 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 12 18:46:44 2009 -0700"
      },
      "message": "Start 1.1.0 development\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "6fc24dcd07d080339672efdb2c3511922b448cbb",
      "tree": "3695ca954359754d561509c00a9a5b2f2cf7223e",
      "parents": [
        "6eaa144e0ccc3850633589402b0cd16a6bcd1629"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 18:22:44 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 18:22:44 2009 -0700"
      },
      "message": "gwtexpui 1.0.5\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "6eaa144e0ccc3850633589402b0cd16a6bcd1629",
      "tree": "8798e3f164a2b64cd2aef7fdcadb87a3bbb3eac9",
      "parents": [
        "d28d95657fce3205d5690a00136fa5c9833f0000"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 17:46:08 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 17:46:08 2009 -0700"
      },
      "message": "Create a source target rather than embedding sources\n\nThis way server deployments can include only the binary bytecode,\nbut clients can add the source JAR to their maven dependency list:\n\n    \u003cdependency\u003e\n      \u003cgroupId\u003egwtexpui\u003c/groupId\u003e\n      \u003cartifactId\u003egwtexpui\u003c/artifactId\u003e\n      \u003cversion\u003e${gwtexpuiVersion}\u003c/version\u003e\n      \u003cscope\u003ecompile\u003c/scope\u003e\n      \u003ctype\u003ejar\u003c/type\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003egwtexpui\u003c/groupId\u003e\n      \u003cartifactId\u003egwtexpui\u003c/artifactId\u003e\n      \u003cversion\u003e${gwtexpuiVersion}\u003c/version\u003e\n      \u003cclassifier\u003esources\u003c/classifier\u003e\n      \u003cscope\u003eprovided\u003c/scope\u003e\n      \u003ctype\u003ejar\u003c/type\u003e\n    \u003c/dependency\u003e\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "d28d95657fce3205d5690a00136fa5c9833f0000",
      "tree": "06a1daba2f6925f42605f4c8b0215826143d7791",
      "parents": [
        "82b827cd80074ce8d23dde30bbb5d7ebc8529b15"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 17:45:10 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon May 04 17:45:10 2009 -0700"
      },
      "message": "Start 1.0.5 development\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "82b827cd80074ce8d23dde30bbb5d7ebc8529b15",
      "tree": "8ead16038e51e3ea6f72316946f345b7f0ae1939",
      "parents": [
        "2f61f90ed081f53aa451e90c3788992c43de9509"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 20 19:20:32 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 20 19:20:32 2009 -0700"
      },
      "message": "gwtexpui 1.0.4\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "2f61f90ed081f53aa451e90c3788992c43de9509",
      "tree": "db056a980f602c4d9dda03fb7df2c0f8734dd69b",
      "parents": [
        "f87129a1f940a6a953daa5d822f955bebd577f27"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Apr 15 15:44:18 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Apr 15 15:44:18 2009 -0700"
      },
      "message": "Improve wiki formatting for preformatted text and lists\n\nWe now format a paragraph that contains at least one line with\nmanual indentation as a pre-formatted text block.  This fixes\nthe case presented by dbort in GERRIT-134:\n\n\u003d\u003d\nkey_passwords[None] \u003d None # comment explaining why\nfor k in sorted(keylist):\n if not k:\n   continue\n p \u003d subprocess...\n\u003d\u003d\n\nThe entire block is now preformatted.\n\nWe also now format paragraphs that contain lines starting with \"- \"\nor \"* \" as a list, with each line being a unique item in that list.\n\nBug: GERRIT-134\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "f87129a1f940a6a953daa5d822f955bebd577f27",
      "tree": "bde1bf03bf83b83d009d15ebdf0020a6d18cac9d",
      "parents": [
        "ad5b134d1659082470e7a6997f3714ba22381556"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Apr 14 13:46:43 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Apr 14 13:46:43 2009 -0700"
      },
      "message": "Allow ViewSite subclasses to be notified of view swaps\n\nThis way an extension of a ViewSite can do magic, like update the\nwindow\u0027s title upon the change of the view within the view site.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "ad5b134d1659082470e7a6997f3714ba22381556",
      "tree": "386dc46d8500f762c6d6fe6c29e639036e301f5e",
      "parents": [
        "74456365f44f8bf956125dc8704a572a478739c0"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 13 19:47:50 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 13 19:47:50 2009 -0700"
      },
      "message": "Add View and ViewSite to simplify off screen DOM updating\n\nThese two classes can be used to implement an off-screen DOM update,\nwhere a widget is attached invisibly to the browser DOM, updated by\nRPC calls, and then swapped with a currently visible DOM node, thus\nmaking the new information visible instantly.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "74456365f44f8bf956125dc8704a572a478739c0",
      "tree": "511d09f5f061c317bf2ab44c7512e664a4844610",
      "parents": [
        "850dfb96419290503cb598fed94862cd745e9ad2"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 13 19:41:36 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Apr 13 19:41:36 2009 -0700"
      },
      "message": "Start 1.0.4 development\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "850dfb96419290503cb598fed94862cd745e9ad2",
      "tree": "d74f2b649aa97f0af5a8f863768f5c6b31f96d91",
      "parents": [
        "6085c82dd5bc68e4de7241ba5e5d43b81272fc71"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 30 16:07:03 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 30 16:07:03 2009 -0700"
      },
      "message": "Allow GWT *.nocache.js to be cached forever if ?content\u003d is supplied\n\nThis trick permits the host page to rewrite its \u003cscript\u003e reference\nto the *.nocache.js to include the SHA-1 or MD-5 hash of the file\ncontent.  By doing so we can allow the browser or edge proxy to\ncache the file indefinitely, as the host page would use another URL\nif the nocache file was regenerated on a different compilation.\n\nSince the host page for Gerrit (our primary customer) is smaller\nthan the corresponding *.nocache.js, and the host page can be sent\nwith gzip while few browsers support gzip encoding on JavaScript,\nwe can reduce the load time for each new site visit by fetching the\nlarger content from local cache.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "6085c82dd5bc68e4de7241ba5e5d43b81272fc71",
      "tree": "0a8f6524f377637e3f4b62969f9b03c12595e174",
      "parents": [
        "c2f68435bd373f04cbfbc6d2ac72181e38d9c534"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 30 07:52:50 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 30 07:52:50 2009 -0700"
      },
      "message": "gwtexpui 1.0.2\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "c2f68435bd373f04cbfbc6d2ac72181e38d9c534",
      "tree": "13b71fda7e6fe72241b55b7c3c30ea4c17d724ed",
      "parents": [
        "0a5ea94f86f01992652dd9960dbf82bcbe27ca19"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Mar 27 20:06:21 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Mar 27 20:06:21 2009 -0700"
      },
      "message": "Change copyright messages in file headers to AOSP\n\nAlthough the code is primarily authored by Google, we are supported\nunder the umbrella of the Android Open Source Project, which keeps\ntrack of all contributor agreements for gwtexpui, among the many\nother projects it hosts.\n\nSwitching the copyright header to a generic one pertaining to the\nAOSP simplifies things as additional non-Google authored changes\nare accepted into files.  The copyright is muddied as it is, as\nthe AOSP contributor agreement leaves copyright with the original\nauthor, but grants perpetual use and redistribution rights under\nthe Apache License.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "0a5ea94f86f01992652dd9960dbf82bcbe27ca19",
      "tree": "8c8a7cbd41ea96cdfc4b27e710edb9ebb6dbedc8",
      "parents": [
        "f3ace148651751a71f13d64605f7f8b238fc0c26"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Mar 26 14:08:42 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Thu Mar 26 14:08:42 2009 -0700"
      },
      "message": "Provide a hack to work around focus bugs in some browsers\n\nWebKit based browsers (Safari, Chrome) can\u0027t correctly handle a table\nthat sinks click events when the table is wrapped inside a FocusPanel.\nThe event queue gets confused and events are delivered to the table\nat the wrong coordinate, making it potentially impossible for the user\nto click on the row they intended to.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "f3ace148651751a71f13d64605f7f8b238fc0c26",
      "tree": "e4b9a3376d61030111c723b6c393addea232ccc4",
      "parents": [
        "d47eb0024afcb616dc9fc9403527c621f9cd31c3"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Mar 24 16:59:12 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Mar 24 16:59:12 2009 -0700"
      },
      "message": "Teach SafeHtml.linkify() to honor RFC 1738 and to skip trailing \")\"\n\nBy using a more faithful regexp to the RFC 1738 documentation\nwe automatically handle \u003chttp://foo\u003e style links better, by not\nincluding the leading/trailing \u003c\u003e, as these are not valid in a URL\nunless they are escaped.\n\nAlthough RFC 1738 says \"(\" and \")\" are valid in a URL, we skip the\ntrailing \")\" if present, assuming the reference was embedded inside\na comment, such as \"blah blah ... (See also http://foo)\".\n\nBug: GERRIT-108\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "d47eb0024afcb616dc9fc9403527c621f9cd31c3",
      "tree": "cd05c9fab1f7d60605a1413407a8b2639f18a479",
      "parents": [
        "0f16911816be83a640beb320353f9977ba9e08c8"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Mar 24 16:51:32 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Mar 24 16:51:32 2009 -0700"
      },
      "message": "Start gwtexpui 1.0.2\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "0f16911816be83a640beb320353f9977ba9e08c8",
      "tree": "14cc9fc4f6cc2b57c2961282081bc49c826441a4",
      "parents": [
        "2928a9b4e1cfaa72344f6b0ef8196c84e21c4a08"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 09 14:14:44 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Mar 09 14:14:44 2009 -0700"
      },
      "message": "gwtexpui 1.0.1\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    }
  ],
  "next": "2928a9b4e1cfaa72344f6b0ef8196c84e21c4a08"
}
