)]}'
{
  "commit": "d67bd4e6cc5bb4311ec00aae53ebda009ea5b142",
  "tree": "3396b2940b819ca50f4b9d5fff14fc6065e11db6",
  "parents": [
    "94eac62a049ebdb2c54e19b7a420499faa20fd27"
  ],
  "author": {
    "name": "Keren Zhu",
    "email": "kerenzhu@chromium.org",
    "time": "Wed Dec 15 01:19:58 2021"
  },
  "committer": {
    "name": "Chromium LUCI CQ",
    "email": "chromium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Dec 15 01:19:58 2021"
  },
  "message": "Reflect aura::Window\u0027s transient parent change in Widget::parent()\n\nAn aura::Window may get reparented by\nTransientWindowManager::AddTransientChild() without updating\nWidget::parent(). This may result in an UAF when Widget::parent() is\ndereferenced after destroyed. This CL updates Widget::parent() to\nreflect the transient parent change.\n\nNote that aura::Window may also get reparented, but that is not the\nwidget\u0027s logical parent. On ChromeOS, the application windows have a\ncommon native parent, but might have different transient(aka. logical)\nparent.\n\nAdds tests to exo_unittests and wm_unittests. The UAF issue seems most\nprominent on lacros ChromeOS, where exo provides a\nShellSurface::SetParentWindow() API.\n\nBug: 1242964\nChange-Id: Ie51c7e92ae94e9700aa0c4e158a16d03875aac05\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3324727\nReviewed-by: Mitsuru Oshima \u003coshima@chromium.org\u003e\nReviewed-by: Scott Violet \u003csky@chromium.org\u003e\nCommit-Queue: Keren Zhu \u003ckerenzhu@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#951765}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "02fe45d2a21d3381be1049d8cad6d282f211e44d",
      "old_mode": 33188,
      "old_path": "components/exo/shell_surface_unittest.cc",
      "new_id": "5e1ceee46cae3b4a3d311ca4a5ece6bda6cca816",
      "new_mode": 33188,
      "new_path": "components/exo/shell_surface_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "6ab9be02f3facbb3ce39a9e34e88f8aef02d060a",
      "old_mode": 33188,
      "old_path": "ui/views/widget/native_widget_aura.cc",
      "new_id": "70809b7568de95156b881cfca12e459386c49021",
      "new_mode": 33188,
      "new_path": "ui/views/widget/native_widget_aura.cc"
    },
    {
      "type": "modify",
      "old_id": "b8f6a95fe3eb5b75b6096116a96d3b6d61677e44",
      "old_mode": 33188,
      "old_path": "ui/views/widget/native_widget_aura.h",
      "new_id": "50edf929a9e483393c9380931bb04a7825cb7788",
      "new_mode": 33188,
      "new_path": "ui/views/widget/native_widget_aura.h"
    },
    {
      "type": "modify",
      "old_id": "6abb63703ba83083f2418924b7a5499ebe279b5e",
      "old_mode": 33188,
      "old_path": "ui/views/widget/native_widget_delegate.h",
      "new_id": "f3239499fe8afc072af768184bca9fe8cca48958",
      "new_mode": 33188,
      "new_path": "ui/views/widget/native_widget_delegate.h"
    },
    {
      "type": "modify",
      "old_id": "b96ce533db42025fb19c5cd7e8a73d6777e84e14",
      "old_mode": 33188,
      "old_path": "ui/views/widget/widget.cc",
      "new_id": "ef8434f61e00ed270d7a6605bf17485ac55561c3",
      "new_mode": 33188,
      "new_path": "ui/views/widget/widget.cc"
    },
    {
      "type": "modify",
      "old_id": "70d1930905e2c0cfd6b13f732e2ecec253c30443",
      "old_mode": 33188,
      "old_path": "ui/views/widget/widget.h",
      "new_id": "5225b04b609228dec815ee3a1e0c5636c8b8d57b",
      "new_mode": 33188,
      "new_path": "ui/views/widget/widget.h"
    },
    {
      "type": "modify",
      "old_id": "0bf41b42b99d01b0ffaa4c0502120c19530439de",
      "old_mode": 33188,
      "old_path": "ui/wm/core/transient_window_manager.cc",
      "new_id": "39219ef2126f1f626aac5f8d9a4f69200647ff45",
      "new_mode": 33188,
      "new_path": "ui/wm/core/transient_window_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "e6df623d85cfc5277cca1cebb09d28a653f62967",
      "old_mode": 33188,
      "old_path": "ui/wm/core/transient_window_manager_unittest.cc",
      "new_id": "2ba6910606427c0c8a18485b32c43483b192fea9",
      "new_mode": 33188,
      "new_path": "ui/wm/core/transient_window_manager_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "6a7a2e2ffe70506fc1b443f8db703e1cb44a2830",
      "old_mode": 33188,
      "old_path": "ui/wm/core/transient_window_observer.h",
      "new_id": "d935a808dc8f04f37ca66baa7e6acc7e6f7d4b9e",
      "new_mode": 33188,
      "new_path": "ui/wm/core/transient_window_observer.h"
    }
  ]
}
