)]}' { "commit": "fa84233d2339c1be03a754d81a201a75f076184f", "tree": "8079417eb416f33ae39cff1151e21309ae7ec383", "parents": [ "4dcc8e2b937cda23e8f7b86a84727795cd55f706" ], "author": { "name": "Matt Giuca", "email": "mgiuca@chromium.org", "time": "Fri Aug 02 03:07:28 2019" }, "committer": { "name": "Commit Bot", "email": "commit-bot@chromium.org", "time": "Fri Aug 02 03:07:28 2019" }, "message": "Revert \"Make browser process own RenderView.\"\n\nThis reverts commit 55bc919aff4f9d30d03090859321050557407e85.\n\nReason for revert: Suspected cause of https://crbug.com/990192\n\nSince this changes the ownership of RenderWidget and the newly flaky\ntest (which started failing on MSAN 1 build after this landed) has a\nuse-after-free in RenderWidget, I am suspecting this CL.\n\nOriginal change\u0027s description:\n\u003e Make browser process own RenderView.\n\u003e \n\u003e Historically, RenderView and RenderWidget were 1:1, and their lifetimes were\n\u003e entwined.\n\u003e 1) RenderViewHost would create the RenderView.\n\u003e 2) RenderView would create a RenderWidget and pass ownership of itself to the\n\u003e RenderWidget.\n\u003e 3) RenderViewHost\u0027s destructor would destroy the RenderWidget, thus destroying\n\u003e the RenderView\n\u003e \n\u003e We want the lifetime of RenderView and RenderWidget to be decoupled. The first\n\u003e step of this is making RenderView explicitly owned by the browser. This means\n\u003e that instead of (3), RenderViewHost\u0027s destructor will destroy the RenderView,\n\u003e which will in turn destroy the RenderWidget.\n\u003e \n\u003e One subtlety is that prior to this CL, RenderWidget was always destroyed\n\u003e asynchronously. The original reason for supporting this -- dealing with\n\u003e re-entrancy from nested message loops -- is no longer applicable. The IPC that\n\u003e destroys RenderWidget is asynchronous, which means it can never be called from a\n\u003e re-entrant context. However, it is possible for a RenderWidget associated with a\n\u003e child-frame to be synchronously destroyed by JS. This can be re-entrant. This CL\n\u003e updates destruction of RenderWidget to be synchronous when called from IPC.\n\u003e \n\u003e Bug: 987731\n\u003e Change-Id: If4b319fab19d02c5495ba14e5cc929f441ca4d2e\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1717456\n\u003e Commit-Queue: Avi Drissman \u003cavi@chromium.org\u003e\n\u003e Reviewed-by: Avi Drissman \u003cavi@chromium.org\u003e\n\u003e Reviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\n\u003e Auto-Submit: Erik Chen \u003cerikchen@chromium.org\u003e\n\u003e Cr-Commit-Position: refs/heads/master@{#683247}\n\nTBR\u003davi@chromium.org,dcheng@chromium.org,erikchen@chromium.org\n\nChange-Id: I762230d0df57c6bcd75af80c1aa231d7b4d2183e\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nBug: 987731, 990192\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1731991\nReviewed-by: Matt Giuca \u003cmgiuca@chromium.org\u003e\nCommit-Queue: Matt Giuca \u003cmgiuca@chromium.org\u003e\nCr-Commit-Position: refs/heads/master@{#683457}\n", "tree_diff": [ { "type": "modify", "old_id": "0cda89d4695913c61281d41c3bb545fc2af77aa1", "old_mode": 33188, "old_path": "content/browser/renderer_host/render_view_host_impl.cc", "new_id": "f81232a4e5e110dcd04c08d8fc43dd03c19cfb1e", "new_mode": 33188, "new_path": "content/browser/renderer_host/render_view_host_impl.cc" }, { "type": "modify", "old_id": "0ba907f56d1c48fa6c207fd382d19a1f370ca273", "old_mode": 33188, "old_path": "content/browser/renderer_host/render_widget_host_impl.cc", "new_id": "af5be0a23cdcc2f117c959d0dc3a89f8c5b4679a", "new_mode": 33188, "new_path": "content/browser/renderer_host/render_widget_host_impl.cc" }, { "type": "modify", "old_id": "5ab1218167a0f72401eb9fa0887d216a970497a3", "old_mode": 33188, "old_path": "content/browser/renderer_host/render_widget_host_impl.h", "new_id": "ed6447bdc1ca280eb5f9251fec49a1601653aaa0", "new_mode": 33188, "new_path": "content/browser/renderer_host/render_widget_host_impl.h" }, { "type": "modify", "old_id": "e187617d5008865d46742eb7425151b8198a9039", "old_mode": 33188, "old_path": "content/browser/service_worker/embedded_worker_test_helper.cc", "new_id": "8698fcc407cc7a7b168022e444d5304644cf64f8", "new_mode": 33188, "new_path": "content/browser/service_worker/embedded_worker_test_helper.cc" }, { "type": "modify", "old_id": "6c83151be057b98eeabb3ac7256d939b3653a44e", "old_mode": 33188, "old_path": "content/common/renderer.mojom", "new_id": "462be9b716e559fedbcdd44686f1e95e4975d239", "new_mode": 33188, "new_path": "content/common/renderer.mojom" }, { "type": "modify", "old_id": "c7edf267a8794240946551727d01ea47951f50da", "old_mode": 33188, "old_path": "content/public/test/render_view_test.cc", "new_id": "b24af4e85e1832726343f7249ba0ad983deb3130", "new_mode": 33188, "new_path": "content/public/test/render_view_test.cc" }, { "type": "modify", "old_id": "cc82b0f8713a21d4277a0cc5a1d435511541e1de", "old_mode": 33188, "old_path": "content/renderer/input/widget_input_handler_manager.cc", "new_id": "a527fddc4ef1f5e8d301e8b10d854a32558fbee2", "new_mode": 33188, "new_path": "content/renderer/input/widget_input_handler_manager.cc" }, { "type": "modify", "old_id": "24c8d97c31a5677e5857a05e43b4a7848948709e", "old_mode": 33188, "old_path": "content/renderer/render_thread_impl.cc", "new_id": "ee1544db1007bb0a31403442f6d80814b0d4e8e8", "new_mode": 33188, "new_path": "content/renderer/render_thread_impl.cc" }, { "type": "modify", "old_id": "8128edd23a45e97d4c8e0c3521e71317b2181c17", "old_mode": 33188, "old_path": "content/renderer/render_thread_impl.h", "new_id": "82e05e9a41def5f1957fa142adfc5403d16dd9be", "new_mode": 33188, "new_path": "content/renderer/render_thread_impl.h" }, { "type": "modify", "old_id": "c5a0403f6711758e76e3ab09619453e862d55062", "old_mode": 33188, "old_path": "content/renderer/render_view_browsertest.cc", "new_id": "118a7dcf91409b2ee618b89e8c11cdadbe8bb2d5", "new_mode": 33188, "new_path": "content/renderer/render_view_browsertest.cc" }, { "type": "modify", "old_id": "1a91981df36ff5a247dc1d0644fd33399e18a082", "old_mode": 33188, "old_path": "content/renderer/render_view_impl.cc", "new_id": "035801fb8f3a7d8de924b697eb685ee8077fd376", "new_mode": 33188, "new_path": "content/renderer/render_view_impl.cc" }, { "type": "modify", "old_id": "3e525b05f8879a6d16f3f41fcef2cd1c48c53b1b", "old_mode": 33188, "old_path": "content/renderer/render_view_impl.h", "new_id": "caf21b45bf3aa60ebd7e5bb8fd3dee586eb41841", "new_mode": 33188, "new_path": "content/renderer/render_view_impl.h" }, { "type": "modify", "old_id": "67b20423fc9cc3ba1eb56c70a1d1efb81dec911d", "old_mode": 33188, "old_path": "content/renderer/render_widget.cc", "new_id": "799cc6449f04be358632e808a8a466e6fb6f6341", "new_mode": 33188, "new_path": "content/renderer/render_widget.cc" }, { "type": "modify", "old_id": "8f9dcda2d039767c8fe6cb1ce3d5687ecac7bca7", "old_mode": 33188, "old_path": "content/renderer/render_widget.h", "new_id": "72ab6536eaedb4c593f63648dadfba23bb7140c8", "new_mode": 33188, "new_path": "content/renderer/render_widget.h" }, { "type": "modify", "old_id": "f3db3ef34d02ca232f7bb353eebc7e755607a9ef", "old_mode": 33188, "old_path": "content/renderer/render_widget_unittest.cc", "new_id": "86699f8cd8426776b12284337a170372f7f0f462", "new_mode": 33188, "new_path": "content/renderer/render_widget_unittest.cc" } ] }