)]}'
{
  "log": [
    {
      "commit": "5688d16057d34b770c070e2b4a27841092003a4e",
      "tree": "7fea2289ebf922763b2c110094bb8e394b9e08f9",
      "parents": [
        "e5f6f2571d43eb65e0b27dd8d50f2c1f0b3fe30f"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Jun 06 13:09:06 2017 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Jun 06 13:09:22 2017 -0700"
      },
      "message": "Revert \"Add functions to allow update over cellular (including tethered connection)\"\n\nThis reverts commit 4b0d6032cbb86ce488c03b31936cda31283f97e3.\n\nBug: 62366504\nTest: GmsCore sees the old status code (i.e. UPDATED_NEED_REBOOT \u003d\u003d 6).\nChange-Id: I9185614a41bd621ad85e7f773b0f96919b0f70d5\n"
    },
    {
      "commit": "4b0d6032cbb86ce488c03b31936cda31283f97e3",
      "tree": "aa79f951ea4f50fcd33d613aa1991b6c30b00869",
      "parents": [
        "d6803aa21c1fcd2c8cce9b82fa73b5f9e3200b59"
      ],
      "author": {
        "name": "Weidong Guo",
        "email": "weidongg@chromium.org",
        "time": "Mon Apr 17 10:08:38 2017 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed May 31 15:56:02 2017 -0700"
      },
      "message": "Add functions to allow update over cellular (including tethered connection)\n\n- Add an update state NEED_PERMISSION_TO_UPDATE which is broadcasted along\nwith the update info (version and size) when |OmahaRequestAction| aborts\nupdate due to cellular connection. So the state transition will be:\nIDLE-\u003eCHECKING_FOR_UPDATE-\u003eNEED_PERMISSION_TO_UPDATE-\u003eREPORTING_ERROR_EVENT\n-\u003eIDLE\n(The Chrome UI prompts an alert window showing update size and asks user\nwhether to proceed upon receiving this state.)\n\n- Add a dbus interface to set update over cellular target\n(kPrefsUpdateOverCellularTargetVersion and kPrefsUpdateOverCellularTargetSize).\nThe target is the one received by Chrome UI in NEED_PERMISSION_TO_UPDATE\nbroadcast. By sending the target back with the dbus call, update engine can\ndouble check the target with the server to make sure there\u0027s no new server\npush after NEED_PERMISSION_TO_UPDATE is broadcasted to Chrome UI.\n(This dbus call is invoked when the user chooses to proceed to update at the\nalert window. The dbus call is followed by another dbus call |AttemptUpdate|)\n\n- So, the the decision tree as to whether to allow update over cellular\nconnection has changed to:\nIF (device policy DeviceUpdateAllowedConnectionTypes set)\n  follow device policy\u0027s decision\nELSE IF (kPrefsUpdateOverCellularPermission set to true)\n  allow update\nELSE IF (Either kPrefsUpdateOverCellularTargetVersion or\n    kPrefsUpdateOverCellularTargetSize is not set, or they are set but do not\n    match the version and size in |OmahaResponse| retrieved by\n    |OmahaRequestAction|)\n  disallow update, and broadcast NEED_PERMISSION_TO_UPDATE\nELSE\n  allow update\nENDIF\n\n- This decision making happens at |OmahaRequestAction| after |OmahaResponse| is\nretrieved. Since we want to separate the device policy check with the user\npreferences check which depends on |OmahaResponse| during checking for update,\nwe modify ConnectionManager::IsUpdateAllowedOver by moving the user preferences\ncheck to |OmahaRequestAction|. Thus, the function by default returns true for\ncellular connection if device policy is not set.\n\n- Corner case:\nAdding kPrefsUpdateOverCellularPermission and\nkPrefsUpdateOverCellularTargetSize seems to complicate the logic here. But\nthey could effectively solve a corner case where the target does not match\n|OmahaResponse| due to new server push after broadcasting\nNEED_PERMISSION_TO_UPDATE. In that case, we simply broadcast\nNEED_PERMISSION_TO_UPDATE again along with new update info.\n\nCQ-DEPEND\u003dCL:481102\nBUG\u003dchromium:691108\nTEST\u003d\u0027FEATURES\u003dtest emerge-link update_engine\u0027\n\n(cherry picked from commit 70063d9f7e229db8c5b42443ca96ac23a971a6dd)\nCherry-pick updated to compile on Android.\n\nReviewed-on: https://chromium-review.googlesource.com/479467\nCommit-Ready: Weidong Guo \u003cweidongg@chromium.org\u003e\nTested-by: Weidong Guo \u003cweidongg@chromium.org\u003e\nReviewed-by: Weidong Guo \u003cweidongg@chromium.org\u003e\nReviewed-by: Andrew de los Reyes \u003cadlr@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "f5bebaef8dd12ff71baaf6fb4d4543db3615a6b4",
      "tree": "baa7560fa8ed9660db02fb39b5438032e3358237",
      "parents": [
        "299128ee0f9009f79a62d5f57d75270f62353c9d"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Jun 03 15:36:54 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Mon Jun 13 13:28:11 2016 -0700"
      },
      "message": "Add ConnectionManagerAndroid.\n\nJust a stub implementation that always allow update right now.\n\nTest: mma\nBug: 28800946\n\nChange-Id: I4ff6164d459d142567d49a351f70128f5fc74b9f\n"
    },
    {
      "commit": "255e22b82af3a52218eaea66acc734ec25cfeab6",
      "tree": "4e06155b189999061af8238699a7ac93ac4fa906",
      "parents": [
        "a35896c0ab209488b347672e9c917355b3fd8f51"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri May 20 16:15:29 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Tue Jun 07 00:07:46 2016 +0000"
      },
      "message": "Move ParseConnection*() to connection_utils.\n\nWe don\u0027t need real_shill_provider if USE_DBUS is 0, but we still need\nthese functions, and they have a duplicate copy in connection_manager,\nso put them in utils and deduplicate.\n\nAlso moved StringForConnectionType() to connection_utils.\n\nBug: 28800946\nTest: mma\n\nChange-Id: If535fdc52bc8fb267921bea02b31d8d6580d5d54\n"
    },
    {
      "commit": "aea4c1cea20dda7ae7e85fc8924a2d784f70d806",
      "tree": "a8934ac4c258cf942ecc2423fe94f1458acfa64f",
      "parents": [
        "d2956cc4b5c60d3d670eb7bf0f1ba800c8a16d62"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "message": "Re-license update_engine to Apache2\n\nThis patch automatically replaced the license on all text files from\nChromium OS (BSD style) to AOSP (Apache2), keeping the original year as\na reference.\n\nThe license header was added to .gyp and .gypi files, the NOTICE was\nreplaced with a copy of the Apache2 license and MODULE_LICENSE_* file\nwas updated.\n\nBUG\u003db/23084294\nTEST\u003dgrep \u0027Chromium OS Authors\u0027 doesn\u0027t find anything.\n\nChange-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10\n"
    },
    {
      "commit": "305345001d85ca2282112c2a30fe75c7a4773491",
      "tree": "51b4eeaabb51f80eebe856f595b2d5bf21e0968f",
      "parents": [
        "b7ca096f98a43ebbf412f1b2d3d15bb184f871f8"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Jul 20 15:06:33 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Aug 14 02:25:54 2015 +0000"
      },
      "message": "update_engine: Switch to chrome-dbus for client requests in update_engine\n\nupdate_engine daemon acts as DBus client to send DBus calls to shill,\npower_manager and chrome, and to listen for signals from shill, chrome\nand login_manager. This patch migrates these calls and signals to use\nchrome-dbus framework instead of dbus-glib.\n\nAll references to dbus-glib code are removed.\n\nBUG\u003dchromium:419827\nTEST\u003dUpdated unittest. Deployed on a link device and tested interactions with shill and chromium.\n\nChange-Id: I31b389e0d1690cccb115ff3b6539c876ba81bd0e\nReviewed-on: https://chromium-review.googlesource.com/290990\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "f6ee0163504eaf1a7cc136ba2c075d77ae2b4dd5",
      "tree": "1ac88ce36185ac2e2a246123b4b80eb178d5d91c",
      "parents": [
        "75eac7e523f825afdb88508922d7dc65fa366b19"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jul 31 12:35:22 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Aug 01 02:53:04 2015 +0000"
      },
      "message": "update_engine: Move ConnectionManager to an abstract Interface.\n\nMockConnectionManager required to use one of ConnectionManager\nconstructors passing pointers that won\u0027t be use by the mock. This\npatch moves the interface to its own ConnectionManagerInterface class.\n\nBUG\u003dNone\nTEST\u003dunittests still pass.\n\nChange-Id: I9ed09daf8e4256304be7dab30cfbe751901dc24b\nReviewed-on: https://chromium-review.googlesource.com/290120\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    }
  ]
}
