)]}'
{
  "log": [
    {
      "commit": "d47070800d809b8a2a857786909168cde2df4a56",
      "tree": "26dff5abe89b0a98194c0783cf52bffd6eb31e34",
      "parents": [
        "b227199133f2d694414293697c67599a761f23be"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Jun 24 19:29:59 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Jun 24 23:09:33 2014"
      },
      "message": "Fix an outdated comment.\n\nThese arguments were already removed.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: If5b9804b9ad4515be671239783344272df32aa96\nReviewed-on: https://chromium-review.googlesource.com/205415\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "b227199133f2d694414293697c67599a761f23be",
      "tree": "2a7a2d080b01ae9f1018a4ca1eabc7fa4ae57cd4",
      "parents": [
        "b3b05446d3ef9620c90084e11cd1ae4eca20f4a2"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Jun 19 19:35:24 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Jun 24 20:13:10 2014"
      },
      "message": "UM: Make the evaluation timeout configurable.\n\nThis allows the client to construct the UpdateManager with a custom\nevaluation timeout for sync policy requests, which is in turn being\npassed to each EvaluationContext instance used for sync policy\nevaluation.\n\nBUG\u003dchromium:363790\nTEST\u003dUnit tests.\n\nChange-Id: I5a6ec02a3ca2a2c611276eacbcda6aac8304e929\nReviewed-on: https://chromium-review.googlesource.com/204687\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "b3b05446d3ef9620c90084e11cd1ae4eca20f4a2",
      "tree": "2e650384ba213f4cdaa75faca82c549d97a04104",
      "parents": [
        "d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri May 30 21:25:05 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Jun 24 20:13:04 2014"
      },
      "message": "UM: Policy for deciding download URL.\n\nThis adds a new private policy (UpdateDownloadUrl) for determining which\ndownload URL should be used for obtaining the update payload. We further\nextend an existing public policy (UpdateCanStart) to return the download\nURL details, based on the current URL index and the number of failures\nassociated with it. This renders the explicit notion of \"HTTP download\nallowed\" in the return value unnecessary: If HTTP is not allowed, then\nHTTP URLs will not be considered.\n\nWe also implement logic for logging the start/end of a policy\nevaluation, so that intermediate log messages emitted during evaluation\nhave a clear context.\n\nBUG\u003dchromium:358329\nTEST\u003dUnit tests.\n\nChange-Id: Ib5343417480d8825082f83bed2630a6611360b61\nReviewed-on: https://chromium-review.googlesource.com/203373\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6",
      "tree": "e34a511ee4068d8d9cd46a992a4e147f3afbd351",
      "parents": [
        "b683327ed3f50ef89324069fc87ee076b65bee46"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Mon Jun 16 20:19:00 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Jun 18 01:39:59 2014"
      },
      "message": "update_engine: fixed warnings from cpplint\n\nFixed all the cpplint warnings in update engine.\n\nBUG\u003dNone\nTEST\u003dUnit tests still pass.\n\nChange-Id: I285ae858eec8abe0b26ff203b99a42a200ceb71c\nReviewed-on: https://chromium-review.googlesource.com/204027\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    },
    {
      "commit": "b683327ed3f50ef89324069fc87ee076b65bee46",
      "tree": "43b4f0e2e8c3f86a3b15920dbd6effbf657dfe30",
      "parents": [
        "d1c4d2dd3daed1d507038046c0355fbafb85260c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Jun 11 01:59:22 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sun Jun 15 01:39:23 2014"
      },
      "message": "Fix lib flags on update_engine scons file.\n\nenv[\u0027LIBS\u0027] defines the list libraries that the binaries will be\nlinked against, passing -l and the name of the library. Instead of\nhardcoding the library names, we use pkg-config when available.\n\nBUG\u003dNone\nTEST\u003demerge-link update_engine ; sudo emerge update_engine\nTEST\u003dManually checked pkg-config for each one of the packages and compared with the former list.\n\nChange-Id: Ie962cac297d2b9eb41fb244b9edfb1e693e81523\nReviewed-on: https://chromium-review.googlesource.com/203335\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "d1c4d2dd3daed1d507038046c0355fbafb85260c",
      "tree": "c25e3f382d17439215294aacfaa7b18e5b8e2d9b",
      "parents": [
        "0a364bb65efa5c5cdcd49114080a646a39e030fc"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Jun 05 21:07:53 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Jun 13 05:34:28 2014"
      },
      "message": "Change ErrorCode into an enum class.\n\nThis change is needed in order for us to be able to import ErrorCode\nsymbols from chromeos_update_engine into chromeos_update_manager.\nUnfortunately, shifting from plain \u0027enum\u0027 into an \u0027enum class\u0027 means\nthat the compiler treats the new class as a distinct type from int,\nwhich in turn means that plenty of seamless arithmetic/bitwise\noperations we used for manipulating error code values throughout the\ncode needed to be retrofitted with static_cast operators.\n\nIn the future, we should consider imposing a proper abstraction on\nupdate engine error codes that\u0027ll prevent mingling with value encoding\ndirectly and prevent such nastiness. It\u0027ll also make things more\ncoherent (types, semantics) and safer.\n\nBUG\u003dchromium:358329\nTEST\u003dUnit tests.\n\nChange-Id: Ie55fa566b764cdab6c4785d995fb6daee4cb32d3\nReviewed-on: https://chromium-review.googlesource.com/203209\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "0a364bb65efa5c5cdcd49114080a646a39e030fc",
      "tree": "17377e9bd8ca1fafe00d3edd1f57e88767ac4a9a",
      "parents": [
        "a8262e23b4d94af58e8e92d2a4b6e15ae4b4cf50"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Wed Jun 11 01:18:24 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Jun 11 22:08:28 2014"
      },
      "message": "Fix ServerDiesTest and FailureTest which depended on you running apache.\n\nThis CL fixes the issue that URL in both of these tests defaulted to\nno-port which meaned the tests were going to http://localhost.\nOn some machines, that might point to an existing server running\non port 80 (for me it was apache2 configured by\nautotest). This CL changes FailureTest to use a different\nhostname that should never match. In the case of the ServerDiesTest,\nwe use the correct port of the server we kill during the test.\n\nI\u0027ve also added documentation to what these tests should actually do.\n\nBUG\u003dchromium:383200\nTEST\u003dRan unittests with and without apache up.\n\nChange-Id: I6b4168eada48dcd59fad23ed7ff6577b18e4ef81\nReviewed-on: https://chromium-review.googlesource.com/203347\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "a8262e23b4d94af58e8e92d2a4b6e15ae4b4cf50",
      "tree": "75a7d2de275e947079f0abb85d77208987de6359",
      "parents": [
        "dbf2d5f2a3e51e342c5b89fa138cea7608c07a83"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Jun 02 20:54:27 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Jun 11 19:06:00 2014"
      },
      "message": "UM: Relocate implementation of UpdateCurrentConnectionAllowed.\n\nThis is just a small change to make sure that the order of method\nimplementation matches the order of declaration (as advised by style).\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: I72db663c8543efcdb392afd825343e810ec1f2bb\nReviewed-on: https://chromium-review.googlesource.com/203208\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "dbf2d5f2a3e51e342c5b89fa138cea7608c07a83",
      "tree": "611933be1d9dde003cce7e43f0c95973b7c2fce4",
      "parents": [
        "77f79e876a77796fc248d099b6574f05bd23c954"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Jun 05 00:11:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Jun 06 01:17:40 2014"
      },
      "message": "Remove unused dm-bht dependency.\n\nUpdate engine doesn\u0027t use verity for anything. We must use the\nstatically linked /postinst on the new image to generate the hashes\nand we can\u0027t use the one on the current image.\n\nThis patch removes that unused dependency.\n\nBUG\u003dchromium:380893\nTEST\u003demerge-link update-engine\n\nChange-Id: Ifff63ab324a4cd5ecf8d2fadf23af579e12e70db\nReviewed-on: https://chromium-review.googlesource.com/202634\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "77f79e876a77796fc248d099b6574f05bd23c954",
      "tree": "e2b92a5d3bcdfb401efb96148bcf181605b98a0a",
      "parents": [
        "5665d0ced6812771559ca7bf938fa48f2b93ae48"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Tue Jun 03 01:16:24 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Jun 05 01:36:34 2014"
      },
      "message": "Only disable update downloads over expensive connections, not all transfers.\n\nPrevious to this CL, all network traffic was disabled from the update engine\nif an update wasn\u0027t allowed. Instead, in this CL, we switch to only disable\nthe update application portion (downloading and applying the payload). This\nis done by moving the detection logic from the mechanism (the network fetcher)\nto the user of said mechanism i.e. the omaha request/response actions.\n\nI have done a little refactoring of the unittests to make this CL easier to\ntest and found 1 bug in the http_fetcher_unittests where we weren\u0027t sending\neither the right URL or handling a server not existing correctly.\n\nThis CL comes with one caveat:\nTechnically in the previous impl if a download started over wifi then got\ndisconnected / retried and bounced to a different connection type that\nwe couldn\u0027t update over, we\u0027d stop the update. This would no longer be true\nhere if the http_fetcher recovered seamlessly.\n\nBUG\u003dchromium:379832\nTEST\u003dUnittests\n\nChange-Id: I6b1a76e4c030d4e384e8ba0b519424a35406aafb\nReviewed-on: https://chromium-review.googlesource.com/202435\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "5665d0ced6812771559ca7bf938fa48f2b93ae48",
      "tree": "9c128be29d5c811b6cf22e4bb25e14b51292ae0e",
      "parents": [
        "897b5e592cf64e3c04ed1151d19ce5cd51a90592"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 29 00:45:43 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat May 31 01:47:58 2014"
      },
      "message": "Fix memory leak on ConnectionManagerTest.\n\nConnectionManagerTest::SetServiceReply had a memory leak only present\non unittest code. This patch uses g_new0() and g_free() to manage the\nmemory of GValue objects on GValueNewString and GValueFree, which\nallows to use GValueFree to remove any GValue object.\n\nIt also replaces the GArray* by a GPtrArray which is what dbus-glib\nuses and what is being passed as the GType, as defined on the\nDBusWrapperInterface.\n\nBUG\u003dchromium:378548\nTEST\u003d`FEATURES\u003d\"test\" USE\u003d\"clang asan\" emerge-link update_engine` doesn\u0027t show ConnectionManager failures\nTEST\u003dtested on link the update_engine detects the current connection from shill.\n\nChange-Id: I328ba79e2d609ab1cfe3df8b99b82fa24262de08\nReviewed-on: https://chromium-review.googlesource.com/202060\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "897b5e592cf64e3c04ed1151d19ce5cd51a90592",
      "tree": "0afb03927a90ac153f2a6d2e60cfcb341bff5426",
      "parents": [
        "3d21b12092a0108f77c3332b85eaf81524fe7c32"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 21 16:37:18 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat May 31 01:47:05 2014"
      },
      "message": "PM: Blocking policy requests cannot be called synchronously.\n\nPolicy requests that may return EvalStatus::kAskMeAgainLater are\nconsidered blocking and should only be called asynchronously. It is\ntherefore an error to call a policy returning this value via\nUpdateManager::PolicyRequest(), and so we kill the program with an\nassertion (DCHECK) if this happens; for release builds, a warning log is\nemitted.\n\nNote: the associated death test builds and runs iff DCHECK is enabled.\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: I75e2f5e4498f85857aff41778df0300d7c8898e7\nReviewed-on: https://chromium-review.googlesource.com/200760\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "3d21b12092a0108f77c3332b85eaf81524fe7c32",
      "tree": "c42860fe84b6447065436d3e246d0729c5dc4c24",
      "parents": [
        "52146ceb3a52ac29584d11e5917e3eb02b42f33b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 29 15:37:05 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 30 09:29:36 2014"
      },
      "message": "Fix memory leak on ChromeBrowserProxyResolverTest.\n\nChromeBrowserProxyResolverTest.SuccessTest was creating a duplicate\nof the string returned by DBusMessageGetArgs_3() when the mocked\nChrome returns a proxy response. The caller of this interface\nshould not delete the returned pointers (as they are pointers to the\ndbus message) so the test ended up leaking those strings.\n\nThis patch fixes that and uses a StrickMock for the dbus interface\nto catch some unexpected calls also included on this fix. Finally,\ntesting::SetArgumentPointee() was deprecated in favor of\ntesting::SetArgPointee().\n\nBUG\u003dchromium:378548\nTEST\u003d`FEATURES\u003d\"test\" USE\u003d\"clang asan\" emerge-link update_engine` doesn\u0027t complain about ChromeBrowserProxyResolverTest.\n\nChange-Id: Ie348eeab964fbfdeaafa68db9016d7ab36835552\nReviewed-on: https://chromium-review.googlesource.com/202071\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "52146ceb3a52ac29584d11e5917e3eb02b42f33b",
      "tree": "551a3f8a355b5fc34f223c70e8e116208c8de67a",
      "parents": [
        "c4acdf40033fc7bedba3ec6449b7a750b1fe5f24"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 29 18:09:45 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 30 09:29:30 2014"
      },
      "message": "Fix memory leak on DeltaPerformerTest.\n\nThe ApplyDeltaFile() function creates a DeltaPerformer that should be\nfree\u0027d by the caller test. Although this is not the best design, we\nneed to first fix the memory leaks on the unittest code.\n\nBUG\u003dchromium:378548\nTEST\u003d`FEATURES\u003d\"test\" USE\u003d\"clang asan\" emerge-link update_engine` doesn\u0027t complain at all.\n\nChange-Id: I92d7ee0f7f9534c5631d4bc988f433ddd66173a0\nReviewed-on: https://chromium-review.googlesource.com/202068\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "c4acdf40033fc7bedba3ec6449b7a750b1fe5f24",
      "tree": "302c8ead92e4b163d156318c0e506b46b0b03964",
      "parents": [
        "3273d03562abb69b61e23fe6bfa3c7661905655e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 29 04:07:10 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 30 07:20:20 2014"
      },
      "message": "Fix memory leak on HttpFetcher and ProxyResolver.\n\nThe current HttpFetcher and ProxyResolver code uses\ngoogle::protobuf::Closure callbacks created with NewCallback. These\ncallbacks will self-delete them when you call Run(), leaking the\ncallback if that doesn\u0027t happens.\n\nThis patch replaces all the NewCallback() calls by\nNewPermanentCallback(), which won\u0027t delete the callback after running\nit. It then adds a new utils::GlibDestroyClosure() function to use in\nconjunction with the existing utils::GlibRunClosure() to schedule\ncallbacks from the glib main loop without leaking them.\n\nFinally, this patch fixes a use-after-free on the\nAbortingHttpFetcherTestDelegate class only affecting unit tests.\n\nOther minor linting errors fixed.\n\nBUG\u003dchromium:378548\nTEST\u003d`FEATURES\u003d\"test\" USE\u003d\"clang asan\" emerge-link update_engine` doesn\u0027t complain about HttpFetcher.\n\nChange-Id: Ica3265aca42f07811b7dff6131f9a43ab06269aa\nReviewed-on: https://chromium-review.googlesource.com/202062\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "3273d03562abb69b61e23fe6bfa3c7661905655e",
      "tree": "e1735b29bd60a439e7a4f1da4055fe8bcfded1a0",
      "parents": [
        "63784a578dd26880454d70797519358a2326291b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 29 02:29:52 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 30 01:26:02 2014"
      },
      "message": "Fix memory leak on UpdateManager\u0027s event loop wrapper.\n\nWhen an scheduled Closure is canceled, the memory associated with the\nClosure object wasn\u0027t removed, leaking its memory. This patch deletes\nthe Closure in both cases: when it is executed and when it is\ncanceled.\n\nBUG\u003dchromium:378548\nTEST\u003d`FEATURES\u003d\"test\" USE\u003d\"clang asan\" emerge-link update_engine` doesn\u0027t complain about RunFromMainLoopAfterTimeout.\n\nChange-Id: I10d8f58aaf0fb1fd746701a25f3ef0f8ccdf6c12\nReviewed-on: https://chromium-review.googlesource.com/202061\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "63784a578dd26880454d70797519358a2326291b",
      "tree": "1fff61945c436f8e9456eb2aa566a878dabf3731",
      "parents": [
        "ddd3fe38ba3cfcde68d9a2b3016d715094c7a5dc"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed May 28 17:46:14 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 29 02:11:20 2014"
      },
      "message": "Rename the PolicyManager to UpdateManager.\n\nThis change renames the PolicyManager class, directory, tests, etc,\nto avoid confusion with libpolicy and its classes.\n\nBUG\u003dchromium:373551\nTEST\u003demerged on link.\nCQ-DEPEND\u003dCL:I43081673c7ba409f02273197da7915537bde39c6\n\nChange-Id: Iffa76caa3b95ecbbdba87ab01006d1d8ce35a27f\nReviewed-on: https://chromium-review.googlesource.com/201876\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "ddd3fe38ba3cfcde68d9a2b3016d715094c7a5dc",
      "tree": "b712685559c45b446a6900d0e32521cb428db796",
      "parents": [
        "8d92529b1821dfc84ed4ed7a58b2142fe9cfc527"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu May 22 19:57:09 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 23 22:23:15 2014"
      },
      "message": "PM: Fix two comments.\n\nRemoves an old TODO and revises another comment.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I2342ae2a8af225246c57ae5c26b58be3985cc95a\nReviewed-on: https://chromium-review.googlesource.com/201108\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "8d92529b1821dfc84ed4ed7a58b2142fe9cfc527",
      "tree": "206d9730e9de3a5049d111fa28b1084124852c44",
      "parents": [
        "736fcb57ca2dcf09710a797e4c23a64f6cd64e16"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 22 02:15:25 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 23 09:32:44 2014"
      },
      "message": "Remove temp files left from unit tests.\n\nThis patch removes a few files that weren\u0027t removed by the test case\nafter completion. These files should go in the temp directory and not\nnext to it.\n\nBUG\u003dNone\nTEST\u003drun `ls /tmp | wc` before and after unittests. No change.\n\nChange-Id: I585bedbd9d939afdc087d6623076cbe152335de9\nReviewed-on: https://chromium-review.googlesource.com/201001\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "736fcb57ca2dcf09710a797e4c23a64f6cd64e16",
      "tree": "7b58b2095f4279d6fd678f897e34e914b23a7f4e",
      "parents": [
        "46eb5f6eabcbde324e059b48031eaa9af11ff236"
      ],
      "author": {
        "name": "Ben Chan",
        "email": "benchan@chromium.org",
        "time": "Thu May 22 01:28:22 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 23 05:01:30 2014"
      },
      "message": "update_engine: Update to build against libchrome-271506.\n\nBUG\u003dchromium:375032\nTEST\u003d`FEATURES\u003dtest emerge-$BOARD update_engine`\n\nChange-Id: Ia7be302c12b439ad8aece51c9cbe128086626620\nReviewed-on: https://chromium-review.googlesource.com/201045\nTested-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "46eb5f6eabcbde324e059b48031eaa9af11ff236",
      "tree": "2cc0f5960aa55edd11ed1dc63ef0ea085a4d00f5",
      "parents": [
        "76a11f6d1dc88db5d152283a224e83ed475ab6a9"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 20 20:21:25 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 10:34:27 2014"
      },
      "message": "PM: CopyVariable renamed PollCopyVariable.\n\nThis is in effect always used as a polled variable, so we restrict it to\nbe such.\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: I5a824e3140e461262f9f4e1f2b0ee14f0856713c\nReviewed-on: https://chromium-review.googlesource.com/200619\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "76a11f6d1dc88db5d152283a224e83ed475ab6a9",
      "tree": "fe719a96fc205cad73176403ddbe21743a7c9999",
      "parents": [
        "48e1361ae568032754aa9f297a0f29fda437ccfb"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 20 16:02:12 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 10:34:23 2014"
      },
      "message": "PM: OOBE prevents scattering.\n\nThis implements a TODO item whereas we can only scatter if OOBE was\ncompleted.\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: I55d95020d738cbba08b77bc580353e69256d1a7e\nReviewed-on: https://chromium-review.googlesource.com/200590\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "48e1361ae568032754aa9f297a0f29fda437ccfb",
      "tree": "ec5fdee2da91db5e6c23057bc9cb77ae9f290be8",
      "parents": [
        "c16fca2f1b263872e12503eab4621250ef1f1e1c"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri May 16 17:18:05 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 10:34:18 2014"
      },
      "message": "PM: New system provider variable for whether OOBE is complete.\n\nThis uses logic found in Hardware::IsOOBEComplete(). It is needed for\ndeciding whether scattering should be applied.\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: I745365e84fc09dd234cd5f65ec0a2012a9024cdd\nReviewed-on: https://chromium-review.googlesource.com/200571\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "c16fca2f1b263872e12503eab4621250ef1f1e1c",
      "tree": "9469ae1cc9027fd82b7cd4354a013c2b52f142a2",
      "parents": [
        "0adbc94a889cc2d1558dabf0c70ac3be8853051f"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue May 20 22:10:40 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 10:34:12 2014"
      },
      "message": "PM: Generic variable for copying the return value of a function call.\n\nThis is useful for quickly implementing variables that rely on calls to\nutility functions/methods.\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: I46040070c417b8c1f7b6081d4fe4d3b43a7a8101\nReviewed-on: https://chromium-review.googlesource.com/200659\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "0adbc94a889cc2d1558dabf0c70ac3be8853051f",
      "tree": "810e557c314c7c9acfeb899943f42fa1c2dce279",
      "parents": [
        "f62a4b81b66dfcb848191efe8470646a0c986f08"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 12 17:35:43 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 08:11:55 2014"
      },
      "message": "PM: Policy for checking whether an update may use the current connection.\n\nThis is based on logic currently found in\nConnectionManager::IsUpdateAllowedOver() and\nLibcurlHttpFetcher::IsUpdateAllowedOverCurrentConnection().\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: Ib1a73d3fbe603b8686294088e26bc2d04ee73877\nReviewed-on: https://chromium-review.googlesource.com/199540\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "f62a4b81b66dfcb848191efe8470646a0c986f08",
      "tree": "3a15430ac87d0c10103181532d319188ec0f9d0b",
      "parents": [
        "bc91a2743fd3ffabb3ead3181ad8da3060afe1f1"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu May 01 14:41:07 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 08:11:49 2014"
      },
      "message": "PM: Policy for checking whether an update can start.\n\nThis policy is based on existing logic found in the following locations\nthrough the current update engine code base:\n\n- UpdateAttempter::CalculateUpdateParams(), which applies various device\n  policy attributes and sets the update params.\n\n- UpdateAttempter::CalculateScatteringParams(), called by the former for\n  deciding the scatter wait period for the current update. Calls\n  UpdateAttempter::GenerateNewWaitingPeriod() to compute a new wait\n  period.\n\n- OmahaRequestAction::IsWallClockBasedWaitingSatisfied() and\n  OmahaRequestAction::IsUpdateCheckCountBasedWaitingSatisfied, which\n  check whether a scattering derived wait period has elapsed and whether\n  a check threshold counter was satisfied, respectively.\n\n- UpdateAttempter::CalculateP2PParams() and\n  P2PManagerImpl::IsP2PEnabled(), which decide whether P2P can be used.\n\n- PayloadState::ComputeCandidateUrls(), where there\u0027s logic for deciding\n  whether HTTP downloads are allowed.\n\nNote that this policy request is based on two others. One is the public\nUpdateCheckAllowed(), whose positive return value invalidates the\ncurrent update attempt. The second is a private policy\nUpdateScattering() that decides whether the current update attempt is\nsubject to scattering.\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: I889a3d1c10e1722585fdc1aa87fb6f9d627b60c7\nReviewed-on: https://chromium-review.googlesource.com/198781\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "bc91a2743fd3ffabb3ead3181ad8da3060afe1f1",
      "tree": "a5a1436d958b0ebe0bc406a2af7b5db5f9ec6ab7",
      "parents": [
        "7dc4c50c0b11a8865c1dc9542a3e8f5016bebb9b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue May 20 23:45:33 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 04:58:12 2014"
      },
      "message": "Replace std::tr1::shared_ptr by std::shared_ptr.\n\nThis patch replaces C++ Technical Report 1 additions to C++03 with\nthe newer C++11 name.\n\nIncludes and using statements updated accordingly.\n\nBUG\u003dNone\nTEST\u003dBuild and unittests.\n\nChange-Id: I9bdad6d39684545c786f5c76fb598a15b557d6eb\nReviewed-on: https://chromium-review.googlesource.com/200665\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "7dc4c50c0b11a8865c1dc9542a3e8f5016bebb9b",
      "tree": "53db02ed33d6b748b3591e41368e705b871aaa27",
      "parents": [
        "1f0237181ffb92c3ffab0bd5eaa5868af3c83541"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed May 21 03:09:58 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 04:57:25 2014"
      },
      "message": "Move IsDir() to utils.\n\nThis patch moves the generic IsDir() function to the utils.cc file\nwhere other similar functions reside. It also adds unit tests for it.\n\nBUG\u003dNone\nTEST\u003dAdded unittests.\n\nChange-Id: Iba05059f72a1156bb5f19ae0624ae7025af4c522\nReviewed-on: https://chromium-review.googlesource.com/200691\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "1f0237181ffb92c3ffab0bd5eaa5868af3c83541",
      "tree": "732e5dfff4f9acd3bd99ecaa7ace531491fe189c",
      "parents": [
        "7d623ebf9eee346fdeee71f1ccb32ebaf4bd3318"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed May 21 02:19:23 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 04:57:22 2014"
      },
      "message": "Add usage message to the delta_generator\n\nThis patch removes a warning from gflags about SetUsageMessage() not\nbeing called, providing a description for the binary.\n\nBUG\u003dNone\nTEST\u003d./delta_generator --help shows the message.\n\nChange-Id: Ifec0f123871d442bb9cab4a8bb27d09bf43b36be\nReviewed-on: https://chromium-review.googlesource.com/200667\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "7d623ebf9eee346fdeee71f1ccb32ebaf4bd3318",
      "tree": "20560fa297acf0cdc377d135a7fa5d829c22f80f",
      "parents": [
        "13a824344dd7b3502ca79d60545e22dd2e435d69"
      ],
      "author": {
        "name": "Nam T. Nguyen",
        "email": "namnguyen@chromium.org",
        "time": "Tue May 13 23:06:28 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 22 02:14:32 2014"
      },
      "message": "update_engine: Remove GPIO support.\n\nWe have not used GPIO since Jan 2013. This CL removes the GPIO handling code.\nAs a side effect, it also removes dependency on libudev.\n\nBUG\u003dchromium:221725\nCQ-DEPEND\u003dCL:199683\nTEST\u003dunittest\nTEST\u003dAU end2end test on real device from older version to a version that\nhas CL applied, then from that to another newer version (need not have\nthis CL applied).\n\nChange-Id: I4352488ec360b44a44b137c40a3ae4ec35c6fe9d\nReviewed-on: https://chromium-review.googlesource.com/199626\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Nam Nguyen \u003cnamnguyen@chromium.org\u003e\nTested-by: Nam Nguyen \u003cnamnguyen@chromium.org\u003e\n"
    },
    {
      "commit": "13a824344dd7b3502ca79d60545e22dd2e435d69",
      "tree": "d93f3676ca1e046afa07bf3737903a9df8f0c426",
      "parents": [
        "c850b4ff170ddabe6b49178a1aa29fe9ec702799"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon May 19 19:52:44 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed May 21 04:18:31 2014"
      },
      "message": "PM: Fix PolicyManager calls with multiple variadic template arguments.\n\nWe\u0027ve been using a pattern among PolicyManager calls whereas a single\nvariadic template argument was used to describe the types of first-class\narguments to the template method, but also the type signature of\na method that is another argument. This was causing issues where\ntemplate type inference was unable to resolve automatic casting / type\npromotion among these two (otherwise compatible) type lists.\n\nInstead, we now use a separate variadic template argument for these two\ninstances: ExpectedArgs... represents the types of arguments expected by\nthe policy methods, whereas ActualArgs... represents the types of\narguments that are actually provided to the PolicyManager. This allows\ntemplate type inference to succeed. To ensure that type\nincompatibilities do not propagate far, resulting in cryptic compiler\nerrors, we further use explicit instantiation of subsequent templates in\nthe two public methods, PolicyREquest and AsyncPolicyRequest. This\nensures early on that the actual arguments can be converted to the\nexpected types.\n\nAlso, this removes parameter names from the declaration of function\narguments; they are not needed and decrease clarity.\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: Ia5552714477c3f30f6ff1717461ba4461bea38be\nReviewed-on: https://chromium-review.googlesource.com/200570\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "c850b4ff170ddabe6b49178a1aa29fe9ec702799",
      "tree": "3c92bc88c5d52a6ef58dd95a08473cfad4a9ea99",
      "parents": [
        "b5ba9e41b98ccdeacf069bb5036d98e76a574cc4"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon May 19 18:06:41 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue May 20 07:33:51 2014"
      },
      "message": "PolicyManager: Dump EvaluationContext on test failure.\n\nThis patch dumps the value of the used variables on a test when the\nExpectPolicyStatus() call fails.\n\nBUG\u003dNone\nTEST\u003dModified a test to make it fail and dump the results.\n\nChange-Id: I0ce7768256ac05cd2522c36569d74312463ac293\nReviewed-on: https://chromium-review.googlesource.com/200434\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "b5ba9e41b98ccdeacf069bb5036d98e76a574cc4",
      "tree": "b2bd6c8d3e74d69c48dd3ad5a98cd7aaf777ee69",
      "parents": [
        "161c4a132743f15fc4757112b673085c2a7a7f29"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri May 16 20:17:21 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Mon May 19 23:06:46 2014"
      },
      "message": "Fix includes on FileWriter.\n\nBUG\u003dNone\nTEST\u003dCode builds.\n\nChange-Id: I796abca91a79a65a2ad37224199cb54079000f13\nReviewed-on: https://chromium-review.googlesource.com/200288\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "161c4a132743f15fc4757112b673085c2a7a7f29",
      "tree": "97af3e16c8c6c553fc2aa364df26c91f84bfb1a8",
      "parents": [
        "bcee2ca34ebcd3b0abc7bc611370d323e55fa62c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri May 16 22:56:21 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Mon May 19 23:06:17 2014"
      },
      "message": "Move payload generator files to payload_generator/ directory.\n\nThis creates a new subdirectory payload_generator/ with all the\npayload generator specific files.\n\nThe SConstruct file is updated to continue building all the files\ntogether, including those in the subdirectories, since some parts\nof the update_engine are using parts of the payload generation code.\n\nTo reduce this code coupling, a new payload_constants.h file is\nintroduced, with few constants used on the payload definition by both\nthe payload generation and the payload performer.\n\nFinally, includes are updated and in some cases removed when they\nweren\u0027t used. Order of includes is also fixed to comply with the\nstyle guide.\n\nBUG\u003dchromium:374377\nTEST\u003dBuild and unittests still pass. delta_generator still present on base directory.\n\nChange-Id: I454bbc7a66c70ebb19fd596c352c7be40a081f3d\nReviewed-on: https://chromium-review.googlesource.com/200325\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "bcee2ca34ebcd3b0abc7bc611370d323e55fa62c",
      "tree": "b5a991b4af0fcb74173dc50a1026e84e4693d7eb",
      "parents": [
        "a03a6910f2bad3bcdcc3eb5a8140bb607854f2fe"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed May 14 20:28:23 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 15 23:52:53 2014"
      },
      "message": "use IGNORE_EINTR w/close\n\nHANDLE_EINTR is both not safe and not useful on Linux systems.\nSwitch to IGNORE_EINTR like Chromium has done everywhere.\n\nSee http://crbug.com/269623 for details.\n\nBUG\u003dchromium:373154\nTEST\u003d`cbuildbot {arm,amd64,x86}-generic-full` passes\n\nChange-Id: Ia2ee7db803366f1305919c4c40c2709e62faae20\nReviewed-on: https://chromium-review.googlesource.com/199823\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "a03a6910f2bad3bcdcc3eb5a8140bb607854f2fe",
      "tree": "c9afe9e6f22b117f987d289e98d4ace72713946b",
      "parents": [
        "e12188119330a6508d542684f10ac29323df2d74"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@chromium.org",
        "time": "Mon May 12 22:35:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed May 14 22:51:29 2014"
      },
      "message": "update_engine: Rename policy_manager.conf file to an example configuration\n\nThe actual configuration is now installed by the virtual update-policy package.\n\nBUG\u003dchromium:352739\nTEST\u003dbuild update_engine\n\nCQ-DEPEND\u003dCL:199413\n\nChange-Id: I6db9b2b6603de6e972bc4492a31d3a3baf42837b\nReviewed-on: https://chromium-review.googlesource.com/199421\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Gaurav Shah \u003cgauravsh@chromium.org\u003e\nCommit-Queue: Gaurav Shah \u003cgauravsh@chromium.org\u003e\n"
    },
    {
      "commit": "e12188119330a6508d542684f10ac29323df2d74",
      "tree": "c69786cf15ba498fa44e65c5326fa3e66c93299e",
      "parents": [
        "f967ebeb1851548a37c01db2bc4f78b8db2d2f99"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed May 07 19:21:36 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 09 00:28:01 2014"
      },
      "message": "PM: Get a random value between [min, max].\n\nThis is required for generating random values used for scattering. In\ndoing so, we shift to using an STL provided generator and distribution\nfunction.\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: I6e758605f1d8123ab73a81906ecf7ad83c5e6cb9\nReviewed-on: https://chromium-review.googlesource.com/198780\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "f967ebeb1851548a37c01db2bc4f78b8db2d2f99",
      "tree": "9bea7d79f07979ca1263ca6040a82a60c5e8e0da",
      "parents": [
        "7e8ac06833aba4d851257fe287b38c98af4e226b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon May 05 21:46:17 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed May 07 17:52:59 2014"
      },
      "message": "PolicyManager: Move payload_size to int64_t.\n\nCode style encourages signed types instead of unsigned types and the\nvalue being exposed is already signed. This patch fixes that for the\npayload_size variable and adapts the BoxedValue::ValuePrinter\nimplementations to use the int64_t and uint64_t types.\n\nBUG\u003dNone\nTEST\u003dUnit tests updated\n\nChange-Id: I21310c59d8c2654c43cac27265055c8577341562\nReviewed-on: https://chromium-review.googlesource.com/198269\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "7e8ac06833aba4d851257fe287b38c98af4e226b",
      "tree": "b833d955a0c9a13cacc92dd7d0e0ba93ea9367b5",
      "parents": [
        "c14902888be0b8d41759e6ff0a7100af4097fd09"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu May 01 19:56:58 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat May 03 04:04:51 2014"
      },
      "message": "Use update_engine_service_new() from main().\n\nThis a simple fix that uses the update_engine_service_new() function\nto create an UpdateEngineService.\n\nBUG\u003dNone\nTEST\u003dgmerge on the device; restart update-engine; tested the DBus interface works with:\ndbus-send --system --dest\u003dorg.chromium.UpdateEngine --print-reply /org/chromium/UpdateEngine org.chromium.UpdateEngineInterface.GetStatus\n\nChange-Id: I862007d9bb6cb0dff5c8e3f35580b6471758be40\nReviewed-on: https://chromium-review.googlesource.com/197852\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "c14902888be0b8d41759e6ff0a7100af4097fd09",
      "tree": "274156f750cc89191d5361fdc01bd67560d2dffe",
      "parents": [
        "fe225c1034778b07d7ac4ad6849a3bd21f9b72c1"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Tue Apr 29 23:25:03 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat May 03 04:04:07 2014"
      },
      "message": "PM: Add EvaluationContext::DumpContext() method.\n\nThis generates a JSON-formatted string with all the variables and the\nevaluation start-time.\n\nBUG\u003dchromium:355724\nTEST\u003dNew unit test + Unit tests pass.\n\nChange-Id: Iaa1439b6589b54536aedd59b8f81a58d5c6663ad\nReviewed-on: https://chromium-review.googlesource.com/197548\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "fe225c1034778b07d7ac4ad6849a3bd21f9b72c1",
      "tree": "98f2f0ae2361ade0a67de5ddbc739d4a9fcef453",
      "parents": [
        "0d11c602430f1d6ba474bdf35317197963083e7c"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Tue Apr 29 17:37:35 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat May 03 04:04:00 2014"
      },
      "message": "PM: Add BoxedValue::ToString() method.\n\nThis will be used to dump variables in the EvaluationContext.\n\nBUG\u003dchromium:355724\nTEST\u003dNew unit test + Unit tests pass.\n\nChange-Id: I82a3fb5d2636fd124dfbf63bf130fcd3c5726bcd\nReviewed-on: https://chromium-review.googlesource.com/197524\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "0d11c602430f1d6ba474bdf35317197963083e7c",
      "tree": "0ac06b0ba3fd39b01e5a7a28507aba3b8ffd9903",
      "parents": [
        "a6dab94046bcd6c560c822e0175c75427368ab20"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 24 03:12:20 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri May 02 10:51:37 2014"
      },
      "message": "PolicyManager: UpdateCheckAllowed policy initial implementation.\n\nThis patch implements the UpdateCheckAllowed policy for ChromeOS\nusing the same logic we had on update_check_scheduler.cc. It checks\nfor updates onces every 45 minutes and does an exponential backoff\nup to 4 hours when the update check fails. Some other parts of the\npolicy are not implemented, such as retry an update check with a\nshort delay on certain failures.\n\nBUG\u003dchromium:358269\nTEST\u003dUnittests added to the policy.\n\nChange-Id: Ief8deff47fd6490bd70a22ba20abed05fcc37ab4\nReviewed-on: https://chromium-review.googlesource.com/197595\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "a6dab94046bcd6c560c822e0175c75427368ab20",
      "tree": "fc384474686b646f23ab5ebc560c8721d69820aa",
      "parents": [
        "4e1d1495c034c8a81c989622481b6cdf94a50c3c"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Apr 25 18:46:03 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu May 01 05:46:28 2014"
      },
      "message": "PM: UpdaterProvider reports the number of consecutive failed update checks.\n\nThis adds a new variable to UpdaterProvider, along with the necessary\nbits of implementation in UpdateAttempter, to track and report this\nnumber.\n\nBUG\u003dchromium:367006\nTEST\u003dUnit tests.\n\nChange-Id: I819dc5c9d4d351e5bfe1373dba0993e3f622b0e0\nReviewed-on: https://chromium-review.googlesource.com/197092\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "4e1d1495c034c8a81c989622481b6cdf94a50c3c",
      "tree": "fad53ff8ed1e773eb8ae3f2c587db9e3ed41cb54",
      "parents": [
        "edfa1d48cb185f83b9274d07e5b359abd1ec62b4"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Fri Apr 25 20:12:27 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 21:05:38 2014"
      },
      "message": "metrics: Emit kAbnormalTermination if last update attempt failed.\n\nThis allows us to track how many update attempts terminates\nabnormally, for example if the device is rebooted in the middle of an\nupdate or if update_engine crashes. We use a marker state variable\n(aka a \"prefs\" file) to keep track of this.\n\nNote that we don\u0027t currently report any of the other metrics in the\nUpdateEngine.Attempt.* namespace. If necessary, this can be changed in\nthe future - I left a TODO item in the code with more details.\n\nBUG\u003dchromium:357676\nTEST\u003dNew unit tests + Unit tests pass + Manual tests.\n\nChange-Id: I83fe284c7c46917c0c55b92314c58098e2fd1789\nReviewed-on: https://chromium-review.googlesource.com/197175\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "edfa1d48cb185f83b9274d07e5b359abd1ec62b4",
      "tree": "5e92fa939ca23dfd61276456358012572d38ecc6",
      "parents": [
        "c7ab6168dc9ccb72b9057fd7452c2a9eaf993269"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Apr 28 23:53:51 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 12:47:55 2014"
      },
      "message": "PolicyManager: New PRNG to use together with the RandomProvider\u0027s seed.\n\nThe RandomProvider gives you a single random value that you can use\nto generate more unsecure random numbers on policies in a\ndeterministic way.\n\nBUG\u003dchromium:358269\nTEST\u003dUnittest added.\n\nChange-Id: Ie344014c55cc56e7dbdf3ce679eb3ca37be52678\nReviewed-on: https://chromium-review.googlesource.com/197441\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "c7ab6168dc9ccb72b9057fd7452c2a9eaf993269",
      "tree": "d4296c08f3c65c045c0e299714a6f4273e0010ff",
      "parents": [
        "df632d17329738d977494625c7819c9d4a123567"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Sat Apr 26 01:32:50 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 12:47:51 2014"
      },
      "message": "PolicyManager: Add a variable to tell when the Updater was started.\n\nThis patch adds a new const variable stating when was the updater\nstarted in wallclock time. This value is required to schedule an\nupdate check shortly after the update_engine starts, but use a\nhigher interval after the first update check.\n\nBUG\u003dchromium:358269\nTEST\u003dAdded unittest.\n\nChange-Id: Ife04c280207b5ccbf3a4a7828593cf01d1551a00\nReviewed-on: https://chromium-review.googlesource.com/197200\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "df632d17329738d977494625c7819c9d4a123567",
      "tree": "9c4796c4f914007d59c328df17ecec8831789e54",
      "parents": [
        "5708ecdc44ed0b78a72d5605d691476fd9907778"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Apr 30 03:04:36 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 12:41:22 2014"
      },
      "message": "Fix linter issues on HardwareInterface.\n\nBUG\u003dNone\nTEST\u003dPassed cpplinter and unit tests.\n\nChange-Id: I0eafef46a1cde54c62f4fa4ffbe13df5cf73e795\nReviewed-on: https://chromium-review.googlesource.com/197586\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "5708ecdc44ed0b78a72d5605d691476fd9907778",
      "tree": "32ca0ca1c4918973000dbd0c48e888ead98f6c26",
      "parents": [
        "af2f6ae066a8117113f6ff3d112c8d00eb5d8c67"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Wed Apr 30 02:44:50 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 12:41:16 2014"
      },
      "message": "Move IsBootDeviceRemovable() to the HardwareInterface.\n\nThe UpdateCheckScheduler class had a IsBootDeviceRemovable method to\nmock out the value during testing of that class. Instead, this patch\nuses the HardwareInterface to mock out that value.\n\nBUG\u003dchromium:358269\nTEST\u003dUnittests updated.\n\nChange-Id: Ib20f70fa0468aaa4bc8bb1b674084bd9a61e5085\nReviewed-on: https://chromium-review.googlesource.com/197598\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "af2f6ae066a8117113f6ff3d112c8d00eb5d8c67",
      "tree": "136f40a4a370a6c6fa62d0d8819adb8100189209",
      "parents": [
        "680d022b08b1368ddbea970a75ebff7c642f2621"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Apr 28 21:14:52 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 30 10:00:38 2014"
      },
      "message": "PM: New (stub) policy for whether an update can be applied.\n\nThere\u0027s no implementation for this policy yet, and so it always returns\ntrue.\n\nBUG\u003dchromium:358323\nTEST\u003dUnit tests.\n\nChange-Id: Id3a0d13cf8c2e9061b800b114d8476c11f998df0\nReviewed-on: https://chromium-review.googlesource.com/197376\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "680d022b08b1368ddbea970a75ebff7c642f2621",
      "tree": "cbd2145701df39e64784351bbe15ea5127357177",
      "parents": [
        "77a7fa79240edfab54ca25b3851e1d3b23a3329b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Apr 25 04:00:08 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 26 02:46:14 2014"
      },
      "message": "PolicyManager: Remove unnecessary Init() methods.\n\nThe PolicyManager::Init() method always return true as it can\u0027t\nreally fail. This patch removes it and simplifies the interface\non the FakePolicyManager to make it easier to use it on Policy\nunit testing exposing the FakeState there.\n\nBUG\u003dchromium:358269\nTEST\u003dBuild and unittests.\n\nChange-Id: Ib27dd41a483b10f164810e18585a8e4b4cb92f5a\nReviewed-on: https://chromium-review.googlesource.com/196968\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "77a7fa79240edfab54ca25b3851e1d3b23a3329b",
      "tree": "25331773f33aa868ccd887911adffaa939d64a49",
      "parents": [
        "1f01291c91ba75102868a76c826a6318f55fb098"
      ],
      "author": {
        "name": "Ben Chan",
        "email": "benchan@chromium.org",
        "time": "Fri Apr 25 06:15:30 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 26 01:02:49 2014"
      },
      "message": "update_engine: explicitly link against libmetrics-${BASE_VER}\n\nlibmetrics is a slotted library that depends on libchrome. update_engine\nshould link against the same slotted version of libchrome and\nlibmetrics.\n\nBUG\u003dNone\nTEST\u003d`FEATURES\u003dtest emerge-$BOARD update_engine`\nTEST\u003dVerify that update engine binaries all depend on libmetrics-242728.so\n\nChange-Id: I363efaba78283aefeb93f68c7508279eb82b0693\nReviewed-on: https://chromium-review.googlesource.com/197011\nTested-by: Ben Chan \u003cbenchan@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "1f01291c91ba75102868a76c826a6318f55fb098",
      "tree": "7856ac4dde74b4dce97532dbdd3f8d8cf6cfb821",
      "parents": [
        "42c30c376cb7b0b459ff0cbf3ac23fe87ea64f4d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Apr 25 02:08:04 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 26 01:02:43 2014"
      },
      "message": "PolicyManager: Include what you use.\n\nThis patch fixes the includes of scoped_ptr. They are now included\nfrom the files that need it, with the sole exception of the .cc files\nwhere it is already included on the corresponding .h file.\n\nOther minor fixes included here.\n\nBUG\u003dNone\nTEST\u003dBuild and unit test passing.\nTEST\u003d\u0027grep scoped_ptr *\u0027 shows that it is included where it is used.\n\nChange-Id: Ic429f2835ae1c867eeb07280c289bca1fe88d4dd\nReviewed-on: https://chromium-review.googlesource.com/196972\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "42c30c376cb7b0b459ff0cbf3ac23fe87ea64f4d",
      "tree": "784ee2c353bfdc8f2459f1424eb695c14204fa79",
      "parents": [
        "bdcac92b7c11c74a17930df927e0a71831d825ff"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Apr 25 01:41:18 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 26 01:02:38 2014"
      },
      "message": "PolicyManager: Move Init() from the Provider class to the classes that require it.\n\nNot all the providers require an Init() method, and not all of them\ncan fail. For example, none of the Fake version of the providers\nrequire an special initialization on a separated method.\n\nThis patch moves those Init() methods from the base Provider class\nto the classes that require it. When you create a class Foo instance,\nit is your responsibility to call Foo::Init(), and since you know the\ntype of the instance you are creating, you know what to expect from\nits Init() method. This patch simplifies the FakeState class while\nremoving the Init() methods from those classes.\n\nInit() methods are simply a way to have a constructor that can fail\nwithout using exceptions and it is the style\u0027s guide recommended way\nto have the same functionality.\n\nBUG\u003dchromium:358269\nTEST\u003dBuild and unit test still passing.\n\nChange-Id: Ida7d2cc1a494998144ca5c488513c85223def626\nReviewed-on: https://chromium-review.googlesource.com/196971\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "bdcac92b7c11c74a17930df927e0a71831d825ff",
      "tree": "afff76de23decf3ac0a36109bd503d8e79133ea9",
      "parents": [
        "000ecb31bc1ebb569ecc5847fc429f74517c0886"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Apr 21 18:53:31 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:53:16 2014"
      },
      "message": "Link update_engine with --gc-sections to remove unused code.\n\nThis patch adds -Wl,--gc-sections to LDFLAGS to instruct the linker\nto remove all the unused functions. It also adds -ffuntion-sections\nto CFLAGS in order to have each function on its own section and thus\nallowing the linker to remove them. Finally, libxml2 include\ndirectory is derived from pkg-config and other minor formating is\nadjusted.\n\nThis reduces the update_engine size from 1.1MB to 800KB and the\nupdate_engine_client from 755KB to only 119KB. This is because we\ninclude all the delta generation code on the link step, altough we\nonly need parts of it, also the update_engine_client doesn\u0027t use\nmuch of the update_engine code.\n\nThe flags are added before the environment provided flags, so this\ncan be disabled passing:\nLDFLAGS\u003d-Wl,--no-gc-sections emerge-${BOARD} update_engine\n\nBUG\u003dchromium:359343\nTEST\u003demerge-link update_engine (with and without the LDFLAGS passed)\nTEST\u003dgmerged on link, restarted, run update from it to my desktop.\n\nChange-Id: Ic185a3c46bdc4b1c5f97e16f3ae520a44a9307da\nReviewed-on: https://chromium-review.googlesource.com/196379\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "000ecb31bc1ebb569ecc5847fc429f74517c0886",
      "tree": "5ba4f817d2be303ca6ce2cbe86a25a471af69633",
      "parents": [
        "67ed78d1f0fcf22e26afc11b6cb597f3b04ffacf"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Wed Apr 23 19:21:18 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:50:56 2014"
      },
      "message": "Don\u0027t run postinstall script from untrusted rootfs as part of rollback.\n\nDuring Rollback, we don\u0027t currently verify the other partition is actually\na Chrome OS image. Given that, we can\u0027t trust their postinstall (yet).\nThis CL just has us run our own postinstall which switches partitions.\n\nBUG\u003dchromium:366207\nTEST\u003dUnittests + integration run in a VM.\n\nChange-Id: I2d267f8a5eaa7c3c56a18f4aaefdda2709deb0fd\nReviewed-on: https://chromium-review.googlesource.com/196665\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "67ed78d1f0fcf22e26afc11b6cb597f3b04ffacf",
      "tree": "e7c3e847a937c25f108e3ee84282ae30402c0ff2",
      "parents": [
        "075248bffd57c4d2f13019ca75b6b63d7a0c9717"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 23 20:17:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:50:49 2014"
      },
      "message": "PM: Move Variable content testing logic into a common unittest module.\n\nTesting the content of variables is done frequently when testing various\nproviders. This results in plenty of boilerplate code, as well as\nnumerous friend declarations in the different FooVariable class\ndefinitions.\n\nThis CL introduces a PmTestUtils helper class providing common Variable\ntesting methods that test fixtures can use.\n\nBUG\u003dchromium:366259\nTEST\u003dUnit tests.\n\nChange-Id: I7bb1cea080c3b79c203607550259f4c277e84f3b\nReviewed-on: https://chromium-review.googlesource.com/196529\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "075248bffd57c4d2f13019ca75b6b63d7a0c9717",
      "tree": "ea98fcf5d6c77fe86ba2c8cbcf15aa991a0cb103",
      "parents": [
        "4e89e2cfcf17ddc8412e6eee7b91a31954f55f54"
      ],
      "author": {
        "name": "Ben Chan",
        "email": "benchan@chromium.org",
        "time": "Thu Apr 24 19:04:14 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:50:25 2014"
      },
      "message": "update_engine: replace scoped_ptr_malloc with scoped_ptr\n\nscoped_ptr_malloc\u003cT, D\u003e has been deprecated and will be removed. This CL\nupdates update_engine to use the equivalent scoped_ptr\u003cT, D\u003e instead.\n\nBUG\u003dchromium:366763\nTEST\u003d`FEATURES\u003dtest emerge-$BOARD platform2 update_engine`\n\nChange-Id: If59103b1f1a7dceb1daa7b54af799af88518e6a4\nReviewed-on: https://chromium-review.googlesource.com/196878\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Ben Chan \u003cbenchan@chromium.org\u003e\nTested-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "4e89e2cfcf17ddc8412e6eee7b91a31954f55f54",
      "tree": "b30f649254a6d116c01dd64218aafdbd5d6f15bb",
      "parents": [
        "cc0e5cf2bc2c480196692b76d8ce5c4268de8e72"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Thu Apr 24 18:47:00 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:50:02 2014"
      },
      "message": "PM: Make State an abstract interface.\n\nSimilar to CL:196656, move getters/variables to concrete\nsubclasses. In this case, also introduce a RealState type to achieve\nthis.\n\nBUG\u003dchromium:364763\nTEST\u003dUnit tests pass.\n\nChange-Id: Ic12cd872e576c9690d32359474f3528cf706633d\nReviewed-on: https://chromium-review.googlesource.com/196885\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "cc0e5cf2bc2c480196692b76d8ce5c4268de8e72",
      "tree": "27b5fd2926647b4e417c8573c0f1a5c0e880b5f2",
      "parents": [
        "21716e2da121769b4d473c30360e88ef3061de15"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 24 03:20:11 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 23:49:46 2014"
      },
      "message": "PolicyManager: EvaluationContext caches null values.\n\nWhen a variable fails during an evaluation, we don\u0027t want to retry it\non that evaluation. That would imply that the same policy could get\nmore than one value for that variable (one null and one not null)\nwhich can make bugs harder to find.\n\nConst variables that fail, should fail during the whole program, and\nreflect that a given subsystem isn\u0027t present on the build.\n\nBUG\u003dNone\nTEST\u003dunittest modified.\n\nChange-Id: Icb69623318d31883e0a857ce0d1fb900ca68290f\nReviewed-on: https://chromium-review.googlesource.com/196704\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "21716e2da121769b4d473c30360e88ef3061de15",
      "tree": "e4e2f785c552be44196477264a6c57476d1a0b86",
      "parents": [
        "b22a84994e7aed0703c607bc0b97a4eb3a7ea942"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Apr 23 22:42:05 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 21:58:35 2014"
      },
      "message": "PM: Move the getters/variables on provider base classes to abstract methods.\n\nAlso make all DoInit() overrides in subclasses private, not protected\nand ensure that all the abstract Provider interface classes has\nvirtual destructors.\n\nAdditionally, remove inlining of virtual methods in derived classes\nsince it won\u0027t matter much in our application. This is because we\u0027ll\ncall these methods only indirectly e.g. through a vtable dispatch via\na method call on the interface class.\n\nBUG\u003dchromium:364763\nTEST\u003dUnit tests pass.\n\nChange-Id: I7f6a10d9c0b01c4f5c035125755ef132738e72aa\nReviewed-on: https://chromium-review.googlesource.com/196656\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "b22a84994e7aed0703c607bc0b97a4eb3a7ea942",
      "tree": "9741adca9833305884c973d49bfb976f4dea88e4",
      "parents": [
        "f9f1263f37b72c950ea443a162b3e71c33a05d0d"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Thu Apr 24 00:38:44 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 24 21:57:48 2014"
      },
      "message": "PM: Add stock policy_manager.conf file.\n\nThe idea is that this file can be provided by a board-specific\npackage. To make it easy for such developers to figure out what they\ncan tweak, provide a helpful, well-documented configuration file.\n\nAnother CL will modify the update_engine ebuild so that it gets\ninstalled (in /etc) along with the other files needed.\n\nBUG\u003dchromium:352739\nTEST\u003dNone\n\nChange-Id: I3d1045dbb9f5fd5d3ba31ef43c50addcf824fc96\nReviewed-on: https://chromium-review.googlesource.com/196700\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "f9f1263f37b72c950ea443a162b3e71c33a05d0d",
      "tree": "9a984f8a66d9edd3cbc32534b3380ad0f4fc3102",
      "parents": [
        "d3df25fb62011b3f76d33545467c71de3aca771d"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 17 20:51:26 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 23 23:00:23 2014"
      },
      "message": "PolicyManager: New Config provider.\n\nThis patch adds a new Config provider to the Policy Manager. This\nprovider reads a fixed set of config options from a file on /etc.\nOn dev mode, if the file is present on the stateful partition, it\nwill read it from there instead.\n\nCurrently, the only enabled setting consists on the OOBE enabled bit.\nThis setting states whether the board/device has an OOBE or not.\n\nBUG\u003dchromium:359674\nTEST\u003dUnit tests added and passing.\n\nChange-Id: I86c64ab4c447409ef7aeccf0ed374906edf450e7\nReviewed-on: https://chromium-review.googlesource.com/195542\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "d3df25fb62011b3f76d33545467c71de3aca771d",
      "tree": "d971edeaae30345c7ca0a606dc854a42c7ec7bf9",
      "parents": [
        "ef120fac0ff6364aaa8c6d05339065f118be25ac"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Apr 22 15:39:48 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 23 07:02:48 2014"
      },
      "message": "PM: Switch RealShillprovider to use AsyncCopyVariables.\n\nThis change makes sense because shill values are now tied to\nasynchronous DBus notifications. It also reduces much of the logic for\nguarding attribute values, which is now handled internally by the\nAsyncCopyVariable.\n\nBUG\u003dchromium:364997\nTEST\u003dUnit tests.\n\nChange-Id: Ief5fffba821013f192a4029c2765c48bc2ed91c5\nReviewed-on: https://chromium-review.googlesource.com/196216\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "ef120fac0ff6364aaa8c6d05339065f118be25ac",
      "tree": "360a642aadb2141cd9d3b41c3036e42553b51b11",
      "parents": [
        "e485ff904198f53d16ab7703796cb9a58292fa3c"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 09 19:52:10 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 23 07:02:44 2014"
      },
      "message": "PM: ShillProvider now provides the connection tethering mode.\n\nThis adds a connection tethering variable to the RealShillProvider.  In\ndoing so, we:\n\n* Query the default service attributes (type, tethering) eagerly, as\n  soon as a default service signal is received (but only if the default\n  service has actually changed).\n\n* All variables are reduced to CopyVariable instances, migrating all\n  DBus communication logic into the RealShillProvider and eliminating\n  the ShillConnector helper class. This also allows us to turn variables\n  into contained members and initialize them during construction.\n\nBUG\u003dchromium:355732\nTEST\u003dUnit tests.\n\nChange-Id: I8d9798075a4bd5b9e2cec65cb437d0018654d2c6\nReviewed-on: https://chromium-review.googlesource.com/193927\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "e485ff904198f53d16ab7703796cb9a58292fa3c",
      "tree": "fcea21b87fbaf4f5c5c7aafde8ce1d47e498c865",
      "parents": [
        "c83baf63f764104e9472e74f293baf0982ac0280"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Mon Apr 21 18:54:58 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 22 00:47:06 2014"
      },
      "message": "metrics: Remove unused metrics.\n\nBUG\u003dchromium:365385\nTEST\u003dUnit tests pass.\n\nChange-Id: I31a29e3e9a76567f9b365bfac82b6415ec776842\nReviewed-on: https://chromium-review.googlesource.com/195840\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "c83baf63f764104e9472e74f293baf0982ac0280",
      "tree": "b4e0d8272d6c3c52f860c104211089eb19b92b47",
      "parents": [
        "59d378d16d72fe126526e9bdbef3f400ba28040e"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 00:43:35 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 19 03:36:37 2014"
      },
      "message": "PolicyManager: New DevicePolicy provider.\n\nThis provider gives access to the members of the DevicePolicy\nprotobuf using the libpolicy to access it. The libpolicy doesn\u0027t\nprovide a way to get a notification when the policy was updated, but\nthat could be fixed on the future monitoring the file on disk. This\npatch attempts to refresh the device policy every hour and updates\nall the variables accordingly.\n\nThe variables exposed by this provider are only those used by the\nupdate_engine code currently. If new variables need to be exposed\nthis can easily extended.\n\nTo achieve this, a new generic Variable class is introduce, named\nAsyncCopyVariable, that allows you to Set or Unset the current value\nof the variable and notify the subscribed observers while doing that.\n\nBUG\u003dchromium:358326\nTEST\u003dUnit tests added and pass.\n\nChange-Id: Ieee6c9b33160f7dfe40c033db685a79d8fd57fe7\nReviewed-on: https://chromium-review.googlesource.com/194179\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "59d378d16d72fe126526e9bdbef3f400ba28040e",
      "tree": "9c8bdb818183e518b4511ff4ba026925385501f7",
      "parents": [
        "ecc7f793ede87ef5789c554801e0533deda8acc0"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 17 19:53:43 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 19 03:36:34 2014"
      },
      "message": "PolicyManager: Don\u0027t schedule a callback when there are no observers.\n\nBaseVariable::NotifyValueChanged() will schedule a callback to call\nall the observers on that variable from the same call. This prevents\na corner case where the observer removes itself and is detroyed\nbetween the NotifyValueChanged() and the callback while it doesn\u0027t\nfire all observers from the same context that called\nNotifyValueChanged(). Nevertheless, this callback interferes with\nthe unittest code where Variables are created and removed all the\ntime, and the scheduled callback could remain on the main loop until\nother unittest runs it.\n\nThis patch only schedules the callback to the BaseVariable if there\nis any observer waiting for it, which helps to reduce this\nuninteresting callbacks during testing.\n\nBUG\u003dchromium:358326\nTEST\u003dUnit test still pass.\n\nChange-Id: I4f86d7eaf956afeebee91d27a80b9e3061bc56fb\nReviewed-on: https://chromium-review.googlesource.com/195447\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "ecc7f793ede87ef5789c554801e0533deda8acc0",
      "tree": "f3f65959c4cc9edf3ff6e370e23a0f1cb0937d97",
      "parents": [
        "df3dd2438aef108ac66dc42a4eabae8c79ee88a3"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 09 19:56:13 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 19 03:36:12 2014"
      },
      "message": "PM: RealShillProvider should properly cache the connection type.\n\nThis exposes (in unit test) and fixes a bug where the RealShillProvider\nneglected to update the cached value of the connection type, although it\nwas marking this value as valid and used it in subsequent calls.\n\nBUG\u003dNone\nTEST\u003dUnit test added; fails before, passes after.\n\nChange-Id: Ifbb206adcc82706a786ba1828220bb015badbfbc\nReviewed-on: https://chromium-review.googlesource.com/193872\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "df3dd2438aef108ac66dc42a4eabae8c79ee88a3",
      "tree": "a295e2faa81ce4a62ad794ef7c961d56f6b9dbb6",
      "parents": [
        "9f7ab3509e0bc4988d33bbb2b66f3dbd31dde91a"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 09 14:15:51 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 19 03:36:08 2014"
      },
      "message": "PM: RealShillProvider starts even when shill is not available.\n\nThe RealShillProvider used to query shill for the default connection\nstatus during its initialization, failing the latter if this query did\nnot go through. However, we would like this provider to initialize\nproperly even if shill is not responding (e.g. hasn\u0027t started yet). This\nchange relies on the assumption that, when shill comes up and detects\na connection, it will signal the detected properties via DBus and so\nthere\u0027s no need to reattempt querying.\n\nThat said, the RealShillProvider\u0027s variables need to be aware of the\npossibility that their underlying connection values are not available,\nand respond accordingly to GetValue queries. In doing so, we extend the\ngeneric CopyVariable class to also accept a flag (Boolean), indicating\nwhether the underlying value object is set and available for copying.\n\nBUG\u003dchromium:356949\nTEST\u003dUnit tests.\n\nChange-Id: Ibe29b6cd1fb8dce2e227418c721dbc47a75763be\nReviewed-on: https://chromium-review.googlesource.com/193748\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "9f7ab3509e0bc4988d33bbb2b66f3dbd31dde91a",
      "tree": "bb81bd3d0b87db12befa456863063df98b246761",
      "parents": [
        "a7658449213d3141ff11e4aee3531fa35ba0970d"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Apr 16 22:27:37 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 19 03:36:04 2014"
      },
      "message": "PM: CopyVariable can determine whether the source value was set.\n\nCopyVariable is now capable of checking an (optional) flag to see\nwhether the referenced value is set, instead of blindly copying it. This\npreserves the existing interface, which defaults to an \"always set\"\nstate. The general interface also accepts a error message that is\nreturned to the caller of GetValue() in the case where a requested value\nwas not set.\n\nBUG\u003dNone\nTEST\u003dUnit tests.\n\nChange-Id: I983ea7b8c3985853cecce7a7b44f208b8b968e21\nReviewed-on: https://chromium-review.googlesource.com/195594\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "a7658449213d3141ff11e4aee3531fa35ba0970d",
      "tree": "576c24293718e16733521196af5d3a103eb33cfa",
      "parents": [
        "f5c0b9cfe82a93968ebdc798f6f42e3aacb9d021"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 17 22:49:37 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 18 09:23:48 2014"
      },
      "message": "Revisit the simple_key_value_store into a class.\n\nThe simple_key_value_store was implemented as two separated functions\nto parse and assemble a string containing several lines of key\u003dvalue\npairs. The representation of that was passed to the caller as a\nmap\u003cstring, string\u003e who would use the map operations to modify it.\nAlso, the inteded use for these strings was to parse and write text\nfiles on the filesystem.\n\nThis key\u003dvalue store is used to store strings and boolean values,\nand will be reused for the policy manager config provider.\n\nThis patch reworks those functions as a class and adds support for\nreading and writing boolean values and does the file read and write\noperations as well.\n\nBUG\u003dchromium:359674\nTEST\u003dUnittest extended.\n\nChange-Id: I4890c4a4ca81c1a4857e9893ea827c3fa7815aab\nReviewed-on: https://chromium-review.googlesource.com/195489\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f5c0b9cfe82a93968ebdc798f6f42e3aacb9d021",
      "tree": "b5d2572eee1c9280b2733251c4ea827a0fc45e80",
      "parents": [
        "41a75a7ca3f0252f2c9f991dd465aa332e7ce4d1"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Thu Apr 17 23:12:03 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 18 03:07:14 2014"
      },
      "message": "Exit with 1 if can_rollback returns UNAVAILABLE.\n\nBUG\u003dchromium:356898\nTEST\u003dupdate_engine_client -can_rollback\n\nChange-Id: I1c357f5543abe83f00bb386f3e0226a97c4f44a3\nReviewed-on: https://chromium-review.googlesource.com/195459\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "41a75a7ca3f0252f2c9f991dd465aa332e7ce4d1",
      "tree": "1a86297d0f5605220d6fbc1cee1a4c978d261a67",
      "parents": [
        "608a36586dd4a990b63b0e7a195bfef191db5c69"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Apr 15 22:36:22 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 17 16:44:01 2014"
      },
      "message": "PolicyManager: Extend the EvaluationContext to handle IsTimeGreaterThan()\n\nThe EvaluationContext needs to know the point in time where the\ncurrent evaluation of a policy request started to be able to handle\ntime based values like IsTimeGreaterThan() efficiently and the\ntimeout for the current evaluation. This patch adds such method to\nthe EvaluationContext class and exposes a new ResetEvaluation()\nmethod to allow restart an evaluation. The restart of an evaluation\nis independent from the notification mechanism implemented by\nRunOnValueChangeOrTimeout().\n\nThe documentation on the header file is updated and extended with an\nexample of the workflow.\n\nBUG\u003dchromium:358451\nTEST\u003dUnittests added.\n\nChange-Id: I50b6ef9d582434d6ba0f466f7e650e4a2b442249\nReviewed-on: https://chromium-review.googlesource.com/195230\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "608a36586dd4a990b63b0e7a195bfef191db5c69",
      "tree": "244bff0dce817b8aa2fd00465c8493d4e290320d",
      "parents": [
        "96197df73f6c804d96eb3a1390eb817f354089d2"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Apr 15 20:26:35 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 17 16:39:20 2014"
      },
      "message": "FakePrefs implementation.\n\nThis patch implements a PrefsInterface subclass suitable for testing\nthat performs some checkings on the input/output. This class is\nintended to be used in testing where currently the real Prefs class\nis used on a temporary directory.\n\nBUG\u003dchromium:356906\nTEST\u003dIncluded in unit test build. Not used in any test.\n\nChange-Id: I49ba4a687d4fd8fcafd27ad6cfbb1a61b94c1dd0\nReviewed-on: https://chromium-review.googlesource.com/195240\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "96197df73f6c804d96eb3a1390eb817f354089d2",
      "tree": "08ba33cb0476a51fe82c9ad8cf95624634a9cf3f",
      "parents": [
        "afed4a1a355c8416d496901234932e99864d6215"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Apr 16 19:22:39 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Thu Apr 17 16:39:16 2014"
      },
      "message": "metrics: Add UpdateEngine.Rollback.Result metric.\n\nAdd a metric to track if rollback succeeds or fails. The main use case\nfor this metric is to record how often rollback actually happens.\n\nRight now we only track success/failure but if we see a lot of\nfailures in the future, we could add a new metric, for example\n\n UpdateEngine.Rollback.FailureErrorCode\n\nto convey more detail.\n\nBUG\u003dNone\nTEST\u003dNew unit test + unit tests pass.\n\nChange-Id: I5c32d8585dc8e4b6d38c540d2f754ede5b2ad50b\nReviewed-on: https://chromium-review.googlesource.com/195203\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "afed4a1a355c8416d496901234932e99864d6215",
      "tree": "9d2841a9c8bcf43d6d5618aff862038d0bf27073",
      "parents": [
        "5bb4c90b8bdf931426d1926b21b0316a86b4b4e4"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Apr 09 22:28:44 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 15 21:45:28 2014"
      },
      "message": "Don\u0027t report metrics when rolling back.\n\nWhile reviewing histograms for the new metrics, some of the values for\nthe UpdateEngine.Attempt.* metrics had bogus values. For example, the\nDownloadSource and ConnectionType metrics had values in their overflow\nbuckets. This is weird as the code carefully tries to ensure that\nvalues outside the respective enum classes are never used.\n\nHere\u0027s how this can happen: If we\u0027re rolling back, the UpdateAttempter\nclass calls PayloadState::Rollback() instead of PayloadState::UpdateResumed()\nor PayloadState::UpdateRestarted().\n\nCrucially, PayloadState::Rollback() never calls the AttemptStarted()\nmethod so the attempt_*_ member variables are left uninitialized.\n\nThen later on UpdateAttempter::ProcessingDone() calls\nPayloadState::UpdateSucceeded() or PayloadState::UpdateFailed() which\nends up calling PayloadState::CollectAndReportAttemptMetrics() and we\nreport the uninitialized attempt_*_ members.\n\nThis CL fixes this problem by making PayloadState::Rollback() call\nAttemptStarted() and then keep track of whether it\u0027s a rollback or\nnot.  In the affirmative we don\u0027t report metrics. There\u0027s also a unit\ntest to verify this.\n\nAdditionally, this CL also fixes the oversight that the attempt_*_\nmembers were not initialized in the constructor, per policy.\n\nIt would probably be better if rollback was implemented in another way\n(so it didn\u0027t trigger codepaths like this) but that\u0027s not how it was\ndone. We should probably also think about reporting metrics specific\nto rollback.\n\nBUG\u003dchromium:355745\nTEST\u003dNew unit test + Unit tests pass.\n\nChange-Id: Id2e606f02797714520290c4cbe34a056ccdae053\nReviewed-on: https://chromium-review.googlesource.com/193950\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "5bb4c90b8bdf931426d1926b21b0316a86b4b4e4",
      "tree": "a2add7388db2df241f826b5d670601a20279c1cf",
      "parents": [
        "1f84723f499b3b309efac11324ed4e6c937341b6"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Apr 10 19:32:13 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 15 03:49:33 2014"
      },
      "message": "Rename MockSystemState into FakeSystemState.\n\nThis class is no longer a mock. The change also includes renaming the\nappropriate files and the instances of this class.\n\nBUG\u003dchromium:358278\nTEST\u003dUnit tests.\n\nChange-Id: Ifc20ead0d624eddf8827a6e6f39cd9b9207dcabf\nReviewed-on: https://chromium-review.googlesource.com/194088\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "1f84723f499b3b309efac11324ed4e6c937341b6",
      "tree": "a4813465cd58b6d243d1618123f8925e73e3da13",
      "parents": [
        "ae47a9a77704bbf2b1b271e306dbde90babd9f55"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Apr 07 19:07:49 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 15 03:49:30 2014"
      },
      "message": "Revise the SystemState hierarchy.\n\n* Removed all #includes from SystemState; added includes in .cc files\n  that use the various objects (MetricsLibrary, DevicePolicy, etc).\n\n* MockSystemState:\n\n  - Regulated the set of getters/setters: foo() returns the current Foo\n    object interface; this object can be overridden by set_foo();\n    mock_foo() or fake_foo() returns the default (internal) mock/fake\n    equivalent, and fails if it is different from foo() (safety).\n\n  - Make member declaration order consistent with that of API.\n\n  - Removed MOCK_METHOD declarations for two methods and replaced them\n    with fake getter/setter. This means that MockSystemState is now\n    reduced to a fake, and can be renamed (separate CL). This also means\n    that a few tests have a slightly different semantics now.\n\n* All virtual overrides are qualified as such. However, removed the\n  \u0027const\u0027 method qualified from all getters: it made little sense,\n  especially when considering that getters are handing addresses of\n  internal mock members.\n\n* Made the UpdateAttempter a contained member of both\n  {Real,Mock}SystemState, resolving initialization dependencies. In\n  general, the invariant is that all members of the SystemState that\n  rely on it being fully populated by the time of their initialization,\n  need to export a separate Init() method, that will be called (by the\n  SystemState implementation constructor or Init() method) only after\n  all members are set.\n\n* Made the mock GPIO handler and connection manager contained members of\n  MockSystemState; the destructor could safely be moved.\n\n* Cleanup in UpdateAttempter (part of resolving dependencies):\n\n  - Ordinary member initialization done via default initializers\n    (constants) or initializer list in the constructor (parameters).\n\n  - Init() method only does work that cannot be done during\n    construction, with appropriate comment documenting the need for it.\n\n  - Better reuse via constructor delegation.\n\nBUG\u003dchromium:358278\nTEST\u003dUnit tests.\n\nChange-Id: I96ff6fc7e7400b0a9feb6cc8d4ffe97a51000f91\nReviewed-on: https://chromium-review.googlesource.com/193587\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "ae47a9a77704bbf2b1b271e306dbde90babd9f55",
      "tree": "ec027d5036a10d35834e5b603201c53ad2c7df35",
      "parents": [
        "7cb12f980c7f9eafcb295ebd7996334b75afd5bc"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Wed Mar 26 19:16:47 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sun Apr 13 11:42:18 2014"
      },
      "message": "PM: Add an update engine provider.\n\nThe UpdaterProvider exports variables for querying the status of an\nupdate process and related settings. Includes a concrete implementation\n(RealUpdaterProvider), which currently links directly with update engine\ncode and pulls information through the SystemState object.  Also\nincluded is a fake implementation (FakeUpdaterProvider) for testing\npurposes.\n\nBUG\u003dchromium:346914\nTEST\u003dUnit tests.\n\nChange-Id: I6ed5b40f21e43537e78aebf4217d811e149f745b\nReviewed-on: https://chromium-review.googlesource.com/192232\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "7cb12f980c7f9eafcb295ebd7996334b75afd5bc",
      "tree": "b2a26d9949085d39a29bcfe17e3f6b5bbe4e9dbd",
      "parents": [
        "e75e02563ddd1c48db5489149bd935efc62551a4"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Tue Apr 08 17:35:39 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 09 05:40:24 2014"
      },
      "message": "Unbreak \u0027update_engine_client -watch_for_updates\u0027.\n\nIn CL:186384 we started relying on GLib\u0027s ability to use a generic\nmarshaller when NULL is passed. This was manually tested but\nunfortunately the wrong codepath was being tested so\n\n $ update_engine_client -watch_for_updates\n\nhas been broken since. The problem is that dbus-glib\u0027s\ndbus_g_object_register_marshaller() function does still not support a\nNULL marshaller. This is easily fixed by passing\ng_cclosure_marshal_generic() instead of NULL.\n\nBUG\u003dNone\nTEST\u003dVerified that \u0027update_engine_client -watch_for_updates\u0027 works again.\n\nChange-Id: Ia038d89fcec8d650fc2ac48f348811e5a363022b\nReviewed-on: https://chromium-review.googlesource.com/193605\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "e75e02563ddd1c48db5489149bd935efc62551a4",
      "tree": "0ff760eb072e08c25d62cf5f2990cc708a4874fe",
      "parents": [
        "9d73a72522b0c0e4ef84aeba55a7c284cfa460d5"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Apr 08 21:00:11 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 09 05:37:30 2014"
      },
      "message": "PolicyManager: Specify the full Policy method type on the PM interface.\n\nThis patch replaces the template parameter \"typename T\" used to pass\nthe policy_method with its actual type, which can be inferred from\nthe remaining types, removing this template parameter.\n\nThis makes the C++ error messages more meaningful when the wrong\nparameters are passed to a policy request.\n\nBUG\u003dNone\nTEST\u003dBuild. Manual test passing the wrong type for \"result\" and getting a meaningful error message.\n\nChange-Id: I98cda8782a0db8642f1e6636af286a97a2df56a3\nReviewed-on: https://chromium-review.googlesource.com/193675\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "9d73a72522b0c0e4ef84aeba55a7c284cfa460d5",
      "tree": "8e8f2795d0f4251d295887ab7864374aacf98c65",
      "parents": [
        "c0dd0210d01406df4b88086ea1349a75b8fe0584"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Fri Apr 04 21:52:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 09 02:30:16 2014"
      },
      "message": "update_engine_client: Make it easy to write a reboot manager.\n\nThis CL adds options -block_until_reboot_is_needed and -is_reboot_needed\nflags to update_engine_client. This makes it easy to write a simple\nscript that can be used to reboot the device when an update has been\napplied. For example, something like this:\n\n while true;\n   update_engine_client -block_until_reboot_is_needed\n   if \"$?\" !\u003d \"0\"; then\n     log -p user.critical \"update_engine_client failed!\"\n   else\n     # TODO: app-specific logic to figure out if now is a good time to reboot\n     reboot\n   fi\n   sleep 1\n done\n\nBUG\u003dchromium:353871\nTEST\u003dManually tested.\n\nChange-Id: I8399498911b5eb68ceb0c493926ef685a8b89e82\nReviewed-on: https://chromium-review.googlesource.com/193651\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "c0dd0210d01406df4b88086ea1349a75b8fe0584",
      "tree": "c688481d9a3b5013915bf26a2f0531e88bc20155",
      "parents": [
        "76b2b4822d57360d0c77f070bd8fc25bc08fd93e"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Fri Apr 04 21:49:49 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sun Apr 06 04:17:37 2014"
      },
      "message": "metrics: Use sparse histogram for metrics::DownloadErrorCode values\n\nThis was pointed out by asvitkine@ when reviewing the histograms.xml\nchange. Thanks!\n\nBUG\u003dchromium:355745\nTEST\u003dUnit tests pass.\n\nChange-Id: I3bb49210d0e9bc443546d05f3597590ec7814841\nReviewed-on: https://chromium-review.googlesource.com/193274\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "76b2b4822d57360d0c77f070bd8fc25bc08fd93e",
      "tree": "84e6fecc4862f55a513b3255f9f5b009661719f4",
      "parents": [
        "51e04997c5501c2af50fb1f2bbb7763ebf6eafe2"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Tue Apr 01 20:32:43 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Sat Apr 05 00:01:35 2014"
      },
      "message": "Fix/extend unit test related functionality.\n\n* Adds mock methods to UpdateAttempterMock and turning corresponding\n  base methods into a virtual (needed for subsequent unit testing).\n\n* Adds a setter to OmahaRequestParams.\n\n* Limited general cleanup.\n\nBUG\u003dchromium:346914\nTEST\u003dUnit tests.\n\nChange-Id: I0519ad5c43ddebabc1aff6585cf43a290a2081dc\nReviewed-on: https://chromium-review.googlesource.com/192660\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "51e04997c5501c2af50fb1f2bbb7763ebf6eafe2",
      "tree": "85b9c22ba677fd92fb3f79e5dd2d9c8797cac737",
      "parents": [
        "bccbc387ed23ec18adcd0ef8b50d958ef38cd619"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 21:06:29 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 20:27:27 2014"
      },
      "message": "Missing delete on MockSystemState.\n\nThe MockSysteState object leaks the UpdateAttempterMock every time\nyou create an instance, not only leaking the memory but also\nskiping the mock expectations verification step. This patch fixes\nthat.\n\nBUG\u003dchromium:358278\nTEST\u003dUnit tests pass.\n\nChange-Id: I13a3378c61bc9b108fcff7f4b6ed89397e96bd9d\nReviewed-on: https://chromium-review.googlesource.com/193112\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "bccbc387ed23ec18adcd0ef8b50d958ef38cd619",
      "tree": "98acd5a354c10a7ef4e13a65de684a125f23c05b",
      "parents": [
        "f9c599920bd41a6a245d7fa645ffe14b51e96c14"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 20:38:55 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 20:27:16 2014"
      },
      "message": "Move IsOOBEComplete to HardwareInterface.\n\nThis patch moves the mockable IsOOBEComplete to the HardwareInterface\nwhich already has a fake implemented. This is required as a first\nstep to make it available on the PolicyManager.\n\nThis patch also passes a null pointer when the timestamp isn\u0027t\nrequired.\n\nBUG\u003dchromium:358269\nTEST\u003dUnittests adjusted and passing.\n\nChange-Id: I620e0f4521832b3f2c0170811116251cdfe58f26\nReviewed-on: https://chromium-review.googlesource.com/193101\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f9c599920bd41a6a245d7fa645ffe14b51e96c14",
      "tree": "22bc6f05873bbfb0e351c096ac68f792793d4d8b",
      "parents": [
        "7984bf0ef36c92fa5cd3b23e307e1c1656497950"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 04:16:59 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 20:27:12 2014"
      },
      "message": "Remove useless code from HttpFetcher unittests.\n\nThis code has no action, other than read the passed memory.\n\nBUG\u003dNone\nTEST\u003dBuild.\n\nChange-Id: I19e8b99b5daaa82e1f77ad327161f7bbe39c2bc4\nReviewed-on: https://chromium-review.googlesource.com/192967\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "7984bf0ef36c92fa5cd3b23e307e1c1656497950",
      "tree": "03f741e9eae27d927dae821db05d2d283fac2750",
      "parents": [
        "2447c67957a652cbece2e73fd295dc975571d67f"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 03:41:57 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 20:27:08 2014"
      },
      "message": "Remove IsOfficialBuild() from other singleton interfaces.\n\nIsOfficialBuild() is replicated on other singleton interfaces as a\nshortcut for accessing the new HardwareInterface. These shortcuts\nwere used for testing when it wasn\u0027t possible to fake out this value\nin a more standard way.\n\nThis patch removes the IsOfficialBuild() method from all the\nsingleton interfaces and uses HardwareInterface directly, which\ncan be faked via the default FakeHardware on MockSystemState.\nThis helps reduce the actual dependencies on the\nUpdateCheckScheduler before migrate it to the PolicyManager.\n\nSome minor linter issues are also solved on this patch.\n\nBUG\u003dchromium:358269\nTEST\u003dUnittests still pass.\n\nChange-Id: I19d5add04b8cdc679e918cbc7fe27f688e8da64e\nReviewed-on: https://chromium-review.googlesource.com/192974\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "2447c67957a652cbece2e73fd295dc975571d67f",
      "tree": "0908779b8717cdd8af0a323e90eb321197cad324",
      "parents": [
        "44b9b7ed0a702e54afccb86228668c59151859be"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Thu Apr 03 04:09:10 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 20:27:03 2014"
      },
      "message": "Put http_common functions on the UE namespace.\n\nThis patch simply moves all the global symbols in http_common.* to\nthe chromeos_update_engine namespace.\n\nBUG\u003dNone\nTEST\u003dBuild.\n\nChange-Id: I38b3ffe20b5eec4fe124aa54d9952614081b57d9\nReviewed-on: https://chromium-review.googlesource.com/192966\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "44b9b7ed0a702e54afccb86228668c59151859be",
      "tree": "54c691fb6ed273d2260bd36d559f614a778dee80",
      "parents": [
        "b281f0768f4d95afcf7378229a1a9f9ec9bd69ab"
      ],
      "author": {
        "name": "Chris Sosa",
        "email": "sosa@chromium.org",
        "time": "Wed Apr 02 20:53:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 04:58:48 2014"
      },
      "message": "Fix rollback crash while previous rollback is in progress.\n\nThe CHECK in Rollback is wrong. We should not be crashing the update_engine\njust because we have a previous rollback in progress. This CL changes the\nCHECK to a if/else and cleans up the Rollback() logic to be easier to follow\nand removes a redundant check for partitions (since CanRollback already\ncovers this problem).\n\nThis CL also cleans up a couple rollback-related unittests.\n\nBUG\u003dchromium:356975\nTEST\u003dunittests + on device\n\nChange-Id: Iee8de65eabcddd1dbe6c6413e33a15bf75302260\nReviewed-on: https://chromium-review.googlesource.com/192909\nTested-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Chris Sosa \u003csosa@chromium.org\u003e\n"
    },
    {
      "commit": "b281f0768f4d95afcf7378229a1a9f9ec9bd69ab",
      "tree": "874a7efcbe07e3b4edd9564e470d025f57ffd6a6",
      "parents": [
        "1cac5aa8265d9d34e7a1a45d86594429222f82bb"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Apr 02 17:20:19 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Apr 04 04:57:02 2014"
      },
      "message": "Add UpdateEngine.Attempt.ConnectionType metric.\n\nThis adds a new metric so we can track the how the device is connected\nto the Internet when an attempt starts.\n\nBUG\u003dchromium:358339\nTEST\u003dNew unit test + unit tests pass.\n\nChange-Id: Ic5c2f50e2396e6baa288aca70906f7112ef7bca9\nReviewed-on: https://chromium-review.googlesource.com/192864\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "1cac5aa8265d9d34e7a1a45d86594429222f82bb",
      "tree": "b0c560e6a34a458b81c6f2ed473a0223b6402f5c",
      "parents": [
        "f3f85bb699e3893e08886f8935385f8c9f517ebc"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Apr 02 17:18:00 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Apr 02 23:42:40 2014"
      },
      "message": "MockSystemState: Initialize connection_manager_ member.\n\nTurns out this is not initialized so any code using\nconnection_manager() will get a garbage pointer when using\nMockSystemState (unless set_connection_manager() has been used, of\ncourse).\n\nBUG\u003dchromium:358339\nTEST\u003dUnit tests pass.\n\nChange-Id: Ib528613b61130c2ad167999b6d084b12b3883c89\nReviewed-on: https://chromium-review.googlesource.com/192863\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "f3f85bb699e3893e08886f8935385f8c9f517ebc",
      "tree": "9abeda5c8d0671ad291d44e91e89888e52e32f7b",
      "parents": [
        "a5856e431d7be09dbbde0ab274fdddca868bb269"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Wed Mar 26 23:36:35 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 01 21:37:28 2014"
      },
      "message": "Added support for generic loopback partition name parsing\n\nChanged SplitPartitionName/MakePartitionName functions to\nsupport generic device partition names where partition number\nis separated from the disk name with \u0027p\u0027. This used to be the\ncase only for MMC devices (/dev/mmcblk). But now, as long\nas the disk name ends with a digit, then the following partition\nname is assumed to be separated by \u0027p\u0027.\n\nAlso added special case for NAND devices (/dev/ubiblock) to\nbe split and merged too, in order to make it possible to\nuse the split/merge functions with KernelDeviceOfBootDevice().\n\nUpdated KernelDeviceOfBootDevice() and GetInstallDev() to use\nthe SplitPartitionName/MakePartitionName functions.\n\nFinally, updated the unit tests for ubiblock devices and added\nunit tests for MakePartitionName function.\n\nBUG\u003dchromium:354494\nTEST\u003dAdded/updated unit tests. All unit tests pass.\n\nChange-Id: I8a813e13b315d118027bd84f179a0e569d0d4014\nReviewed-on: https://chromium-review.googlesource.com/191785\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    },
    {
      "commit": "a5856e431d7be09dbbde0ab274fdddca868bb269",
      "tree": "37534fa6b5b42b0e776a1ad1952f3c1c379583a3",
      "parents": [
        "0bc10fafd1bb55186fe1f87805967d157e6d18ad"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Tue Apr 01 01:01:36 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 01 21:36:39 2014"
      },
      "message": "PolicyManager: Call all the ValueChanged() on the same main loop call.\n\nThis patch calls the ValueChanged() method on all the observers from\nthe same main loop calling, fixing a possible free after use if the\nobserver gets removed and deleted between the NotifyValueChanged()\ncall and the ValueChanged() calls.\n\nBUG\u003dchromium:355132\nTEST\u003dUnittest added.\n\nChange-Id: I6365c3b86fe0b85502bfa81bbd18a86c55caa009\nReviewed-on: https://chromium-review.googlesource.com/192526\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "0bc10fafd1bb55186fe1f87805967d157e6d18ad",
      "tree": "2a7add842d24a54f30017039ab22bd48b0778eb6",
      "parents": [
        "33bae491eded4ef4f1eb4f4ef0f01ef0e5463f3a"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Fri Mar 28 20:09:03 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 01 00:49:06 2014"
      },
      "message": "PM: Removing redundant comments.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I25773f04f9e7c61fecd6895168fd98453fd7c0a5\nReviewed-on: https://chromium-review.googlesource.com/192231\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "33bae491eded4ef4f1eb4f4ef0f01ef0e5463f3a",
      "tree": "0692f393085319335bad05834439e95da1998d80",
      "parents": [
        "94c0616c9f81b65154953ac31e488cc87191e17c"
      ],
      "author": {
        "name": "David Zeuthen",
        "email": "zeuthen@chromium.org",
        "time": "Wed Feb 26 00:16:18 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Mon Mar 31 22:45:23 2014"
      },
      "message": "Add new metrics.\n\nThe current metrics (Installer.* namespace) have several shortcomings,\nfor example it\u0027s not immediately clear when and how frequent each\nmetric is reported. This CL introduces new metrics that addresses this\nand other problems. The new metrics are all in the UpdateEngine.*\nnamespace and fall into five categories\n\n UpdateEngine.Daily.*               Reported daily.\n UpdateEngine.Check.*               On every check.\n UpdateEngine.Attempt.*             On every attempt.\n UpdateEngine.SuccessfulUpdate.*    With every successful update.\n UpdateEngine.*                     Miscellaneous\n\nMost of the new metrics mimic existing metrics and also leverage the\nexisting code, book-keeping and unit tests. The plan is to remove the\nInstaller.* metrics once we\u0027re happy with the new ones.\n\nI\u0027ve also tested this manually by performing updates and verifying\nthat chrome://histograms looks correct.\n\nBUG\u003dchromium:355745\nTEST\u003dNew unit tests + unit tests pass + manual testing.\n\nChange-Id: I7a3f68d75910384b116c7e4664776e25d3997584\nReviewed-on: https://chromium-review.googlesource.com/191314\nReviewed-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nTested-by: David Zeuthen \u003czeuthen@chromium.org\u003e\nCommit-Queue: David Zeuthen \u003czeuthen@chromium.org\u003e\n"
    },
    {
      "commit": "94c0616c9f81b65154953ac31e488cc87191e17c",
      "tree": "89d426d763b9bdb8cbbb76a8581aef4e80f15854",
      "parents": [
        "8970420a263ef152fedd9acebb089a4eec54d267"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Sat Mar 22 03:34:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Mon Mar 31 22:41:57 2014"
      },
      "message": "Create a PolicyManager instance on the SystemState.\n\nThis patch creates the PolicyManager object on the update engine\u0027s\nSystemState class, which aggregates all the singleton classes.\n\nThis patch doesn\u0027t add any functionality, other than initialize and\ndestroy the PolicyManager, State and Providers from the SystemState.\n\nBUG\u003dchromium:354079\nTEST\u003dBuild.\n\nChange-Id: Ib06d9c3d24926eaca43de2d11770ef6da7d16985\nReviewed-on: https://chromium-review.googlesource.com/191502\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "8970420a263ef152fedd9acebb089a4eec54d267",
      "tree": "c1ebc30b2d4058cad0aff915c7ccacb31e570ec4",
      "parents": [
        "2bddadd17e31ca1341604f8652432a8619557688"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Mar 28 17:56:54 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Mar 28 23:11:44 2014"
      },
      "message": "drop unused setup_dev_packages\n\nI can\u0027t see anything using this so drop it.\n\nBUG\u003dchromium:329920\nTEST\u003dNone\n\nChange-Id: I80b0b910889863189218564da28d51afa105054d\nReviewed-on: https://chromium-review.googlesource.com/192150\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "2bddadd17e31ca1341604f8652432a8619557688",
      "tree": "226f7f40cdef3863aff282cb6180c149ca0787dd",
      "parents": [
        "9a423ff19e3a7503cd8128998b3a10d65c499fdc"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Thu Mar 27 20:23:46 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Mar 28 23:11:38 2014"
      },
      "message": "update_engine: Added more logging and debugging for rollback checking\n\nTo help troubleshoot issues similar to http://crbug.com/356975 I added\nmore logging in DBus methods of update_engine to trace various stages\nof determining available boot partitions, etc.\n\nAlso added two more DBus methods - to get the suggested rollback\npartition name (and switched CanRollback to use this method) and\nthe list of availavle kernel partitions along with the \u0027bootable\u0027\nflag for each.\n\nChanged update_engine_client to show the name of avaiable rollback\npartition with --can_rollback and also added --show_kernels to\noutput list of available kernel partitions and whether each partition\nis bootable or not.\n\nBUG\u003dNone\nTEST\u003dUnit tests pass\n\nChange-Id: Ib7f92a6460c578953ea1ba9b23bd0669acb0e22f\nReviewed-on: https://chromium-review.googlesource.com/191949\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    },
    {
      "commit": "9a423ff19e3a7503cd8128998b3a10d65c499fdc",
      "tree": "da3cf4e00b876ee90267b1dfc380d484fff1d447",
      "parents": [
        "b6a039fd3f601db455e2990e157eefb10f5c724e"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Mar 27 22:27:35 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Mar 28 17:05:29 2014"
      },
      "message": "Removed redundant clause in conditional.\n\nBUG\u003dNone\nTEST\u003dNone\n\nChange-Id: I9f61e480c09b10e7ff4c7bf5d0f3630e91b678ec\nReviewed-on: https://chromium-review.googlesource.com/192011\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    }
  ],
  "next": "b6a039fd3f601db455e2990e157eefb10f5c724e"
}
