)]}'
{
  "commit": "711b2f1e6d912e6514b3a4f74068104ddd79a4b5",
  "tree": "df9391a71b16b4c4eecfa20a58e496bd19e7f3cb",
  "parents": [
    "751f4d3c32cbd11f0bfd44c5facf6c62173310bf"
  ],
  "author": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Tue Jan 26 15:51:21 2016 -0800"
  },
  "committer": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Tue Jan 26 15:51:21 2016 -0800"
  },
  "message": "Make Mozart view manager use the new compositor.\n\nThis patch updates the view manager to use the new compositor.\n\nIt also implements a few new features that were required to port all\nof the UI examples to Mozart:\n\n- Defined the ViewAssociate mechanism for offering services to views\n  and view trees such as input dispatch.\n- Added a skeleton implementation of an input manager service.  This\n  initial implementation simply passes events dispatched through the\n  view tree to the first view which registers to listen to them.\n  Later on, we\u0027ll add hit testing and give input events a complete\n  overhaul.\n- Changed how scenes are associated with views (previously surfaces)\n  to make the interface easier to use.  Clients only need to connect\n  to the ViewManager to register their views; they don\u0027t need to\n  connect to the Compositor since they can simply create the Scene\n  through the ViewHost.  This approach is also much friendlier for\n  multi-threaded clients.\n\nThe clients of the view manager are updated in following patches.\n\nSome things we\u0027ll do later: refactor the view registry, design a\nnew input event dispatch protocol, invert how layout occurs to take\nadvantage of Scene versioning capabilities to avoid stalls, make\nthe View interface work more like Scene.\n\nBUG\u003d\nR\u003dabarth@google.com\n\nReview URL: https://codereview.chromium.org/1552043002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf558aa63e05cae32a79f0e7da22802a65b09216",
      "old_mode": 33188,
      "old_path": "mojo/dart/packages/mojo_services/BUILD.gn",
      "new_id": "61a65418499e075f0b5fcee25de565ab022185d1",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e42a456192b807f4b626e18567fa46674f9ad88",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/input_connection.mojom.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14e45567c43096db1c2cd969106a4bb1014c7d0c",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/input_dispatcher.mojom.dart"
    },
    {
      "type": "modify",
      "old_id": "bc16ff7cd94f445a127443f083ca65e40020ef84",
      "old_mode": 33188,
      "old_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/layouts.mojom.dart",
      "new_id": "8e0786178034e4d536e8367c2e62fdcea65b24ed",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/layouts.mojom.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f23b7ef10d1a11649b9c8480accc724a833f11b",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/view_associates.mojom.dart"
    },
    {
      "type": "modify",
      "old_id": "a5d5f568b4ddd5e6ee22432e3fb8fcc1826e91b7",
      "old_mode": 33188,
      "old_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/view_manager.mojom.dart",
      "new_id": "4c90616ce3f64d517c2b454cdfa3d29e9cb8757c",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/view_manager.mojom.dart"
    },
    {
      "type": "modify",
      "old_id": "37bea0b710a1ab74c1bfd459ac30a356762a3c48",
      "old_mode": 33188,
      "old_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart",
      "new_id": "7e4a094344ea5dfc3d6ff1d16306a1cac4c6e242",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart"
    },
    {
      "type": "modify",
      "old_id": "33c3d136ca8414417bf9e22dacc345438d890145",
      "old_mode": 33188,
      "old_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/views.mojom.dart",
      "new_id": "3b79c70f0f627b61aeacea600519b3f6a43efd92",
      "new_mode": 33188,
      "new_path": "mojo/dart/packages/mojo_services/lib/mojo/ui/views.mojom.dart"
    },
    {
      "type": "modify",
      "old_id": "5b04f494ac4b61b2600008ceb2bf3920313ede10",
      "old_mode": 33188,
      "old_path": "mojo/services/mojo_services.gni",
      "new_id": "39672de5d1c0c4dbfb0683c053fd10f364e81e54",
      "new_mode": 33188,
      "new_path": "mojo/services/mojo_services.gni"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d122c9630e6c42d120139ec20434435454722073",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/input/interfaces/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2746cb771675e8e2a749f60719de1fd65dcef46c",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/input/interfaces/input_connection.mojom"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "75caef51fbfd8162e403be3f6d5978c9380db9d6",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/input/interfaces/input_dispatcher.mojom"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ada87b396a8966187dc9b41cb5e448d1742d2e6b",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/cpp/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e888bbe3c0dd890b630ed298add548ac97c2fd6",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/cpp/formatting.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "547a701f2ef401c39ec086382da9a50a087f428d",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/cpp/formatting.h"
    },
    {
      "type": "modify",
      "old_id": "747722d069b181d176ee6b3167b4684a5188f1b4",
      "old_mode": 33188,
      "old_path": "mojo/services/ui/views/interfaces/BUILD.gn",
      "new_id": "a81eab796731e68d70ba57484c93616c50215674",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "7a6a1779604fc2424cc50fd5d89d21f98462cadc",
      "old_mode": 33188,
      "old_path": "mojo/services/ui/views/interfaces/layouts.mojom",
      "new_id": "f9831cc45b275df6c5bfe9157a63b730cebc8304",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/layouts.mojom"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6dec347f3a4685e2cae8da62d3df5e78f98bb010",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/view_associates.mojom"
    },
    {
      "type": "modify",
      "old_id": "febf24acc0e303518bb1a8fb639b47c71c041270",
      "old_mode": 33188,
      "old_path": "mojo/services/ui/views/interfaces/view_manager.mojom",
      "new_id": "66f386111062e9054505e355c439bfbd52296987",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/view_manager.mojom"
    },
    {
      "type": "modify",
      "old_id": "ac3439c11b8e27677d3a0e5cf9cdbb1940a0581c",
      "old_mode": 33188,
      "old_path": "mojo/services/ui/views/interfaces/view_trees.mojom",
      "new_id": "ff7a426ec55a06bae9dc830300af807503e7942e",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/view_trees.mojom"
    },
    {
      "type": "modify",
      "old_id": "49ca8417fce08877926d6648a689cf5a7feccb82",
      "old_mode": 33188,
      "old_path": "mojo/services/ui/views/interfaces/views.mojom",
      "new_id": "9dbfd31fe6891128caedd176a8cdcf252cbc6266",
      "new_mode": 33188,
      "new_path": "mojo/services/ui/views/interfaces/views.mojom"
    },
    {
      "type": "modify",
      "old_id": "9480d5ef3e024ba46af5196ac4b59646b31b94c5",
      "old_mode": 33188,
      "old_path": "services/ui/BUILD.gn",
      "new_id": "7c3ea550503258b46a4c9bdd4e73e4e91a634003",
      "new_mode": 33188,
      "new_path": "services/ui/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "cccc9c3337d9b218eace3478a10ede0c46092318",
      "old_mode": 33188,
      "old_path": "services/ui/README.md",
      "new_id": "e67b89f907aabc56099c7ed370e0f0cd28a3930e",
      "new_mode": 33188,
      "new_path": "services/ui/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b869f3386106fde8bd8e656fe821915059e5ce12",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bcce55ff6bb71684d8b6bfd7d57948d31c4179ad",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d739bce2ca900201976440d36993777413bee8a",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/input_associate.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7f2fd7e0e87242c66f071963e90f24d4bfea02f3",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/input_associate.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c5db147a5824cb6f80353ffc8597dbe752a44c6",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/input_manager_app.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70ac70d82de3e6d98735b445c62f4553d9e89484",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/input_manager_app.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "286f898965c588b7cab3de8ec7a44e09df93cc0a",
      "new_mode": 33188,
      "new_path": "services/ui/input_manager/main.cc"
    },
    {
      "type": "modify",
      "old_id": "e85fda3d3118ac675946e134fec8ae43a355e800",
      "old_mode": 33188,
      "old_path": "services/ui/launcher/BUILD.gn",
      "new_id": "554c08e93ef3ec1c26c82f746bec70a846fabe28",
      "new_mode": 33188,
      "new_path": "services/ui/launcher/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "07e796fdb1df128e0cedfcce0c8a826cff0f095b",
      "old_mode": 33188,
      "old_path": "services/ui/launcher/launcher_app.cc",
      "new_id": "55a58bea03c85736a34cafc587521bd2eda43e3a",
      "new_mode": 33188,
      "new_path": "services/ui/launcher/launcher_app.cc"
    },
    {
      "type": "modify",
      "old_id": "d614956a969719fcdc71cd98cfa2892794b6dd23",
      "old_mode": 33188,
      "old_path": "services/ui/launcher/launcher_app.h",
      "new_id": "b6b5c2d80719baf67fe153b476af389a3b47c6ae",
      "new_mode": 33188,
      "new_path": "services/ui/launcher/launcher_app.h"
    },
    {
      "type": "modify",
      "old_id": "052b3c0750e0e0d0965c4eb4cad26029ae4a823f",
      "old_mode": 33188,
      "old_path": "services/ui/launcher/launcher_view_tree.cc",
      "new_id": "1c2beb6d6a0327930ca4837b0c4f1a9d403f8492",
      "new_mode": 33188,
      "new_path": "services/ui/launcher/launcher_view_tree.cc"
    },
    {
      "type": "modify",
      "old_id": "58ab563af6b5104c107300510f0b996f6c323254",
      "old_mode": 33188,
      "old_path": "services/ui/launcher/launcher_view_tree.h",
      "new_id": "4c4a3034cb78cf871fb1caff54f07a93345f3a86",
      "new_mode": 33188,
      "new_path": "services/ui/launcher/launcher_view_tree.h"
    },
    {
      "type": "modify",
      "old_id": "833582bc4d2a37e8e0e1432d511e061d5360e5aa",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/BUILD.gn",
      "new_id": "0a1432559777b8a381cc2a75f5585bc151b38701",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/BUILD.gn"
    },
    {
      "type": "delete",
      "old_id": "24ec899ed2b7d1d02e1f4897fbb60cc29b99ed9b",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/surface_manager.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d5d20680ea9565fac9c1b039147b3421673e856e",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/surface_manager.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bcfca3bc477bfa96eb4ffc7800d55b1e0d6608c9",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_associate_table.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cdc71b84eb78910e3eadde605baca78a690c6ae",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_associate_table.h"
    },
    {
      "type": "modify",
      "old_id": "fef8f0b5192eaa04ad8ce551157850d3166d8c95",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_host_impl.cc",
      "new_id": "976644efb8425043cb1de8d6d814a05982280a59",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_host_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "274d1f1c4166cdb744de0a9cc5e83e2ab4c4f41a",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_host_impl.h",
      "new_id": "907c8f1353a081935880afe21b36bfd7ab75a1b5",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_host_impl.h"
    },
    {
      "type": "modify",
      "old_id": "cbec836cabbb2bd4fe503308be8adc812596d679",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_layout_request.cc",
      "new_id": "9ff591c530ef1030b87bb3c3a47f4a7e931533d0",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_layout_request.cc"
    },
    {
      "type": "modify",
      "old_id": "8091d2fce621fa8894e033f524f9a259f413698f",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_layout_request.h",
      "new_id": "e2a63abceed5d0f9af25e76e741350769a77d9b9",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_layout_request.h"
    },
    {
      "type": "modify",
      "old_id": "2190590211927da938ae1b2e5c4282d0938a5cc6",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_manager_app.cc",
      "new_id": "98c545cac076f919e84df1eae19467a469a72cce",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_manager_app.cc"
    },
    {
      "type": "modify",
      "old_id": "ca37dea758e3d9f53f54b3e5474758bd41ceae45",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_manager_app.h",
      "new_id": "96cbab4359e9d35dbbc84be4e2e8c9b778af324f",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_manager_app.h"
    },
    {
      "type": "modify",
      "old_id": "38cf975eac27a83b86d8a34989a24e2a72fbac0f",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_manager_impl.cc",
      "new_id": "fa668689b46fbc2f304e04554c4b1f7239bbfadb",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_manager_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "db84e4f24f2e5115e1b578f18399ed5d18633ffd",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_manager_impl.h",
      "new_id": "89c463feedbe03e0b7399cc58ae4223146d44700",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_manager_impl.h"
    },
    {
      "type": "modify",
      "old_id": "9c691d9f932dee33ddef4c98ab8b1e8ef28d729b",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_registry.cc",
      "new_id": "a92c7f1d8f5a7bbc6e75ec28c4178c0690321cd4",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_registry.cc"
    },
    {
      "type": "modify",
      "old_id": "e4585d642f1398b4ce84546fbd9ca23e3096d36e",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_registry.h",
      "new_id": "c0562093b4cda5a11c15539da5b31406a0dbbc8d",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_registry.h"
    },
    {
      "type": "modify",
      "old_id": "cfccc564cdfe7cbf6e68340639928fce425a55db",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_state.cc",
      "new_id": "643f6f510f7cb35f5eaa68836fa1c558419ada5c",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_state.cc"
    },
    {
      "type": "modify",
      "old_id": "1f1d2a87af8eb2de8765d23c4bb23d487da8a689",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_state.h",
      "new_id": "2919f91334bf52d3687f29a759ace05baa322f1e",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_state.h"
    },
    {
      "type": "modify",
      "old_id": "e970a695990ef640d9b2643231ee09b47959cbaf",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_tree_host_impl.cc",
      "new_id": "654b4113abba59789ac2955546702640ea50996e",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_tree_host_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "9677d8123fd72aa3c42eb00f9848e16201541bc6",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_tree_host_impl.h",
      "new_id": "017ee8815582772f88cb49e98a602ebffedf6e4a",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_tree_host_impl.h"
    },
    {
      "type": "modify",
      "old_id": "e236c084f83eedface2abdb0befbf0ac09ca3436",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_tree_state.cc",
      "new_id": "4a69f2c318d7815e7c64c36b37269ce9c66826d3",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_tree_state.cc"
    },
    {
      "type": "modify",
      "old_id": "abcbad9ff8755ab66c04fdaa8c3078918039203b",
      "old_mode": 33188,
      "old_path": "services/ui/view_manager/view_tree_state.h",
      "new_id": "a6ea8457a7648de71b3387433a00206a28ed9525",
      "new_mode": 33188,
      "new_path": "services/ui/view_manager/view_tree_state.h"
    }
  ]
}
