Design doc by chrisha@: https://docs.google.com/document/d/1dkUXXmpJk7xBUeQM-olBpTHJ2MXamDgY_kjNrl9JXMs/edit#heading=h.swke19b7apg5 Implementation plan: https://docs.google.com/document/d/1rGeUzhfzIKwmBzUcqUEwxEpLQQRq3PulRuHwFBlVIYI/edit
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5e843acff129ab607e19539265a46617d7a4f92a commit 5e843acff129ab607e19539265a46617d7a4f92a Author: bashi <bashi@chromium.org> Date: Fri Jun 17 07:44:35 2016 Rename WebMemoryPressureListener -> WebMemoryCoordinator Rationale: We are implementing memory coordinator and memory pressure APIs will be deprecated once memory coordinator is readly. BUG= 617492 Review-Url: https://codereview.chromium.org/2071213002 Cr-Commit-Position: refs/heads/master@{#400391} [modify] https://crrev.com/5e843acff129ab607e19539265a46617d7a4f92a/content/renderer/render_thread_impl.cc [rename] https://crrev.com/5e843acff129ab607e19539265a46617d7a4f92a/third_party/WebKit/Source/web/WebMemoryCoordinator.cpp [modify] https://crrev.com/5e843acff129ab607e19539265a46617d7a4f92a/third_party/WebKit/Source/web/web.gypi [modify] https://crrev.com/5e843acff129ab607e19539265a46617d7a4f92a/third_party/WebKit/public/blink_headers.gypi [rename] https://crrev.com/5e843acff129ab607e19539265a46617d7a4f92a/third_party/WebKit/public/web/WebMemoryCoordinator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e9f7f82984084ef170e580cf6550154fbb585c6d commit e9f7f82984084ef170e580cf6550154fbb585c6d Author: bashi <bashi@chromium.org> Date: Tue Jun 21 06:57:14 2016 Move platform/MemoryPurgeController -> core/dom/MemoryCoordinator Reason for renaming: We are going to replace MemoryPressureListener with memory coordinator[1]. The role of this class will not be limited to purge caches but also handle other memory events like throttling. Reason for moving platform to core: MemoryCoordinator depends (and will depend) on things which live in core. For example, it needs to ask MemoryCache to prune caches. It would also ask StyleEngine to clear textToSheet and seetToText caches in the future. Putting MemoryCoordinator in platform is a source of unwanted indirections. Also, this CL removes MemoryPUrgeClient. It doesn't make sense to create an instance of MemoryCoordinator per-page because the current implementation doesn't do any per-page specific task. If we need to do a per-page specific task in the future we can iterate over ordinaryPages() in MemoryCoordinator to ask pages to execute the task. BUG= 617492 [1] https://docs.google.com/document/d/1dkUXXmpJk7xBUeQM-olBpTHJ2MXamDgY_kjNrl9JXMs Review-Url: https://codereview.chromium.org/2080813004 Cr-Commit-Position: refs/heads/master@{#400911} [modify] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/core/core.gypi [add] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/core/dom/MemoryCoordinator.cpp [add] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/core/dom/MemoryCoordinator.h [modify] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/core/page/Page.cpp [modify] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/core/page/Page.h [delete] https://crrev.com/97681440d6f680269022d9087fb524b8b75008a4/third_party/WebKit/Source/platform/MemoryPurgeController.cpp [delete] https://crrev.com/97681440d6f680269022d9087fb524b8b75008a4/third_party/WebKit/Source/platform/MemoryPurgeController.h [modify] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/platform/blink_platform.gypi [modify] https://crrev.com/e9f7f82984084ef170e580cf6550154fbb585c6d/third_party/WebKit/Source/web/WebMemoryCoordinator.cpp
Changed the summary because I'll working on browser side as well.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/456eef44d60c8cddc72f53d4e3d13ffd80158df3 commit 456eef44d60c8cddc72f53d4e3d13ffd80158df3 Author: bashi <bashi@chromium.org> Date: Fri Jul 08 09:36:37 2016 Make memory pressure notifier configurable In memory coordinator v0 we try to replace MemoryPressureListener with MemoryCoordinatorClient as described in [1]. This CL adds SetNotifier() method which takes a callback for dispatching memory pressure notifications. This allows us to replace MemoryPressureListener::NotifyMemoryPressure() with an arbitrary function. [1] https://docs.google.com/document/d/1rGeUzhfzIKwmBzUcqUEwxEpLQQRq3PulRuHwFBlVIYI/edit# BUG= 617492 Review-Url: https://codereview.chromium.org/2097753002 Cr-Commit-Position: refs/heads/master@{#404327} [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor.h [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_chromeos.cc [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_chromeos.h [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_mac.cc [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_mac.h [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_win.cc [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/base/memory/memory_pressure_monitor_win.h [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/chromecast/browser/cast_memory_pressure_monitor.cc [modify] https://crrev.com/456eef44d60c8cddc72f53d4e3d13ffd80158df3/chromecast/browser/cast_memory_pressure_monitor.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/066dcbbad57a70ba5380a4a8cdd0572d89bdc279 commit 066dcbbad57a70ba5380a4a8cdd0572d89bdc279 Author: bashi <bashi@chromium.org> Date: Thu Jul 14 02:03:35 2016 Add MemoryCoordinator This CL adds MemoryCoordinator mojo interface and its implementation. When --enable-features=MemoryCoordinator is specified the browser and renderers create their MemoryCoordinators. MemoryCoordinatorImpl (which lives in the browser process) creates a mojo message pipe when a renderer is launched. This CL doesn't add actual handling of memory events, which will be implemented in follow-up CLs. BUG= 617492 Review-Url: https://codereview.chromium.org/2094583002 Cr-Commit-Position: refs/heads/master@{#405402} [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator.gypi [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/DEPS [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/browser/memory_coordinator.cc [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/common/memory_coordinator_features.cc [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/public/interfaces/BUILD.gn [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/BUILD.gn [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/DEPS [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/browser_main_loop.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/browser_main_loop.h [add] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/content_browser.gypi [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/content_renderer.gypi [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/content_tests.gypi [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/renderer/BUILD.gn [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/renderer/DEPS [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/renderer/render_thread_impl.cc [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/renderer/render_thread_impl.h [modify] https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d0fc7bbda13afe0f382463970efb251518dd898c commit d0fc7bbda13afe0f382463970efb251518dd898c Author: bashi <bashi@chromium.org> Date: Thu Jul 14 02:36:02 2016 Revert of Add MemoryCoordinator (patchset #13 id:240001 of https://codereview.chromium.org/2094583002/ ) Reason for revert: Broke mac build Original issue's description: > Add MemoryCoordinator > > This CL adds MemoryCoordinator mojo interface and > its implementation. When --enable-features=MemoryCoordinator > is specified the browser and renderers create their > MemoryCoordinators. MemoryCoordinatorImpl (which lives in > the browser process) creates a mojo message pipe when a > renderer is launched. > > This CL doesn't add actual handling of memory events, which > will be implemented in follow-up CLs. > > BUG= 617492 > > Committed: https://crrev.com/066dcbbad57a70ba5380a4a8cdd0572d89bdc279 > Cr-Commit-Position: refs/heads/master@{#405402} TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 617492 Review-Url: https://codereview.chromium.org/2143353004 Cr-Commit-Position: refs/heads/master@{#405406} [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator.gypi [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/DEPS [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/browser/BUILD.gn [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/browser/memory_coordinator.cc [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/common/BUILD.gn [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/common/memory_coordinator_features.cc [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/components/memory_coordinator/public/interfaces/BUILD.gn [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/browser/BUILD.gn [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/browser/DEPS [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/browser/browser_main_loop.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/browser/browser_main_loop.h [delete] https://crrev.com/30add38fedb8b9bd44b931aa3adba40d7c79b929/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/content_browser.gypi [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/content_renderer.gypi [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/content_tests.gypi [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/renderer/BUILD.gn [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/renderer/DEPS [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/renderer/render_thread_impl.cc [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/renderer/render_thread_impl.h [modify] https://crrev.com/d0fc7bbda13afe0f382463970efb251518dd898c/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4 commit 1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4 Author: bashi <bashi@chromium.org> Date: Thu Jul 14 04:39:39 2016 Reland: Add MemoryCoordinator Original description: This CL adds MemoryCoordinator mojo interface and its implementation. When --enable-features=MemoryCoordinator is specified the browser and renderers create their MemoryCoordinators. MemoryCoordinatorImpl (which lives in the browser process) creates a mojo message pipe when a renderer is launched. This CL doesn't add actual handling of memory events, which will be implemented in follow-up CLs. BUG= 617492 TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org Review-Url: https://codereview.chromium.org/2139363006 Cr-Commit-Position: refs/heads/master@{#405434} [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator.gypi [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/DEPS [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/browser/memory_coordinator.cc [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/common/memory_coordinator_features.cc [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/public/interfaces/BUILD.gn [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/BUILD.gn [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/DEPS [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/browser_main_loop.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/browser_main_loop.h [add] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/content_browser.gypi [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/content_renderer.gypi [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/content_tests.gypi [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/renderer/BUILD.gn [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/renderer/DEPS [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/renderer/render_thread_impl.cc [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/renderer/render_thread_impl.h [modify] https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/315633845be45cf217c0d3001a463ab28fb7b9d9 commit 315633845be45cf217c0d3001a463ab28fb7b9d9 Author: bashi <bashi@chromium.org> Date: Thu Jul 14 05:21:15 2016 Revert of Reland: Add MemoryCoordinator (patchset #1 id:1 of https://codereview.chromium.org/2139363006/ ) Reason for revert: Broke build again :( Original issue's description: > Reland: Add MemoryCoordinator > > Original description: > > This CL adds MemoryCoordinator mojo interface and > its implementation. When --enable-features=MemoryCoordinator > is specified the browser and renderers create their > MemoryCoordinators. MemoryCoordinatorImpl (which lives in > the browser process) creates a mojo message pipe when a > renderer is launched. > > This CL doesn't add actual handling of memory events, which > will be implemented in follow-up CLs. > > BUG= 617492 > TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org > > Committed: https://crrev.com/1bb6fc3c4283aa25701f243bccb47ab97a3f6ee4 > Cr-Commit-Position: refs/heads/master@{#405434} TBR=chrisha@chromium.org,dcheng@chromium.org,haraken@chromium.org,jam@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 617492 Review-Url: https://codereview.chromium.org/2150843002 Cr-Commit-Position: refs/heads/master@{#405437} [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator.gypi [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/DEPS [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/browser/BUILD.gn [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/browser/memory_coordinator.cc [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/common/BUILD.gn [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/common/memory_coordinator_features.cc [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/components/memory_coordinator/public/interfaces/BUILD.gn [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/browser/BUILD.gn [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/browser/DEPS [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/browser/browser_main_loop.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/browser/browser_main_loop.h [delete] https://crrev.com/5580c3ab2104c612abf89283d76239e5c26ef672/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/content_browser.gypi [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/content_renderer.gypi [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/content_tests.gypi [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/renderer/BUILD.gn [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/renderer/DEPS [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/renderer/render_thread_impl.cc [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/renderer/render_thread_impl.h [modify] https://crrev.com/315633845be45cf217c0d3001a463ab28fb7b9d9/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9 commit 94d4a4349b199ffef3ee1c4a8616b05b225f7dc9 Author: bashi <bashi@chromium.org> Date: Thu Jul 14 09:58:36 2016 Re-reland: Add MemoryCoordinator This is second attempt. Hope GYP Mac is happy with this :( Original description: This CL adds MemoryCoordinator mojo interface and its implementation. When --enable-features=MemoryCoordinator is specified the browser and renderers create their MemoryCoordinators. MemoryCoordinatorImpl (which lives in the browser process) creates a mojo message pipe when a renderer is launched. This CL doesn't add actual handling of memory events, which will be implemented in follow-up CLs. BUG= 617492 TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org Review-Url: https://codereview.chromium.org/2149063002 Cr-Commit-Position: refs/heads/master@{#405460} [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator.gypi [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/DEPS [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/browser/memory_coordinator.cc [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/common/memory_coordinator_features.cc [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/public/interfaces/BUILD.gn [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/BUILD.gn [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/DEPS [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/browser_main_loop.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/browser_main_loop.h [add] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/content_browser.gypi [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/content_renderer.gypi [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/content_tests.gypi [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/renderer/BUILD.gn [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/renderer/DEPS [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/renderer/render_thread_impl.cc [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/renderer/render_thread_impl.h [modify] https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0e9b2dc4e1e523ef831b482fffece884c2ec1464 commit 0e9b2dc4e1e523ef831b482fffece884c2ec1464 Author: henrika <henrika@chromium.org> Date: Thu Jul 14 11:20:24 2016 Revert of Re-reland: Add MemoryCoordinator (patchset #2 id:20001 of https://codereview.chromium.org/2149063002/ ) Reason for revert: Seems to break building on Windows. See https://uberchromegw.corp.google.com/i/chromium/builders/Win/builds/45228/steps/compile/logs/stdio [11860/34084] CXX obj\components\memory_coordinator\child\memory_coordinator_child.child_memory_coordinator_impl.obj FAILED: obj/components/memory_coordinator/child/memory_coordinator_child.child_memory_coordinator_impl.obj ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\components\memory_coordinator\child\memory_coordinator_child.child_memory_coordinator_impl.obj.rsp /c ..\..\components\memory_coordinator\child\child_memory_coordinator_impl.cc /Foobj\components\memory_coordinator\child\memory_coordinator_child.child_memory_coordinator_impl.obj /Fdobj\components\memory_coordinator_child.cc.pdb c:\b\build\slave\win\build\src\services\shell\public\cpp\interface_provider.h(8): fatal error C1083: Cannot open include file: 'services/shell/public/interfaces/interface_provider.mojom.h': No such file or directory [11861/34084] CXX obj\mojo\gen\mojo\public\interfaces\bindings\tests\mojo_public_test_interfaces_blink.no_module.mojom-blink.obj Original issue's description: > Re-reland: Add MemoryCoordinator > > This is second attempt. Hope GYP Mac is happy with this :( > > Original description: > > This CL adds MemoryCoordinator mojo interface and > its implementation. When --enable-features=MemoryCoordinator > is specified the browser and renderers create their > MemoryCoordinators. MemoryCoordinatorImpl (which lives in > the browser process) creates a mojo message pipe when a > renderer is launched. > > This CL doesn't add actual handling of memory events, which > will be implemented in follow-up CLs. > > BUG= 617492 > TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org > > Committed: https://crrev.com/94d4a4349b199ffef3ee1c4a8616b05b225f7dc9 > Cr-Commit-Position: refs/heads/master@{#405460} TBR=chrisha@chromium.org,dcheng@chromium.org,haraken@chromium.org,jam@chromium.org,bashi@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 617492 Review-Url: https://codereview.chromium.org/2145403002 Cr-Commit-Position: refs/heads/master@{#405468} [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator.gypi [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/DEPS [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/browser/BUILD.gn [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/browser/memory_coordinator.cc [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/common/BUILD.gn [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/common/memory_coordinator_features.cc [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/components/memory_coordinator/public/interfaces/BUILD.gn [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/browser/BUILD.gn [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/browser/DEPS [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/browser/browser_main_loop.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/browser/browser_main_loop.h [delete] https://crrev.com/61f90bf18152e77deb2179c66ccbb06456080a38/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/content_browser.gypi [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/content_renderer.gypi [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/content_tests.gypi [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/renderer/BUILD.gn [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/renderer/DEPS [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/renderer/render_thread_impl.cc [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/renderer/render_thread_impl.h [modify] https://crrev.com/0e9b2dc4e1e523ef831b482fffece884c2ec1464/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c9dbbe31830fb0bc3014c21885880f3977323578 commit c9dbbe31830fb0bc3014c21885880f3977323578 Author: bashi <bashi@chromium.org> Date: Fri Jul 15 00:34:53 2016 Re-reland: Add MemoryCoordinator This is third attempt. `git cl try` doesn't help me :( Original description: This CL adds MemoryCoordinator mojo interface and its implementation. When --enable-features=MemoryCoordinator is specified the browser and renderers create their MemoryCoordinators. MemoryCoordinatorImpl (which lives in the browser process) creates a mojo message pipe when a renderer is launched. This CL doesn't add actual handling of memory events, which will be implemented in follow-up CLs. BUG= 617492 TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org Review-Url: https://codereview.chromium.org/2147333002 Cr-Commit-Position: refs/heads/master@{#405646} [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator.gypi [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/DEPS [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/browser/memory_coordinator.cc [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/common/memory_coordinator_features.cc [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/public/interfaces/BUILD.gn [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/BUILD.gn [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/DEPS [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/browser_main_loop.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/browser_main_loop.h [add] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/content_browser.gypi [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/content_renderer.gypi [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/content_tests.gypi [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/renderer/BUILD.gn [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/renderer/DEPS [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/renderer/render_thread_impl.cc [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/renderer/render_thread_impl.h [modify] https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26 commit b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26 Author: bashi <bashi@chromium.org> Date: Fri Jul 15 01:07:21 2016 Revert of Re-reland: Add MemoryCoordinator (patchset #2 id:20001 of https://codereview.chromium.org/2147333002/ ) Reason for revert: GYP!!! Original issue's description: > Re-reland: Add MemoryCoordinator > > This is third attempt. `git cl try` doesn't help me :( > > Original description: > > This CL adds MemoryCoordinator mojo interface and > its implementation. When --enable-features=MemoryCoordinator > is specified the browser and renderers create their > MemoryCoordinators. MemoryCoordinatorImpl (which lives in > the browser process) creates a mojo message pipe when a > renderer is launched. > > This CL doesn't add actual handling of memory events, which > will be implemented in follow-up CLs. > > BUG= 617492 > TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org > > Committed: https://crrev.com/c9dbbe31830fb0bc3014c21885880f3977323578 > Cr-Commit-Position: refs/heads/master@{#405646} TBR=chrisha@chromium.org,dcheng@chromium.org,haraken@chromium.org,jam@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 617492 Review-Url: https://codereview.chromium.org/2152713003 Cr-Commit-Position: refs/heads/master@{#405657} [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator.gypi [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/DEPS [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/browser/BUILD.gn [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/browser/memory_coordinator.cc [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/common/BUILD.gn [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/common/memory_coordinator_features.cc [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/components/memory_coordinator/public/interfaces/BUILD.gn [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/browser/BUILD.gn [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/browser/DEPS [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/browser/browser_main_loop.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/browser/browser_main_loop.h [delete] https://crrev.com/eb270c9af201e549f3e2e2b1016b6b99565f1706/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/content_browser.gypi [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/content_renderer.gypi [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/content_tests.gypi [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/renderer/BUILD.gn [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/renderer/DEPS [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/renderer/render_thread_impl.cc [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/renderer/render_thread_impl.h [modify] https://crrev.com/b1bd86ffa291c3843e0fb4ca4dacb03d7eb2fd26/content/test/BUILD.gn
Issue 498694 has been merged into this issue.
Issue 498696 has been merged into this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/77f19b3affd0f29a77d1db1eebb6cc00e5a45898 commit 77f19b3affd0f29a77d1db1eebb6cc00e5a45898 Author: bashi <bashi@chromium.org> Date: Tue Jul 19 11:19:43 2016 Re-reland: Add MemoryCoordinator This is fourth attempt... Pass InterfacePtr instead of InterfaceRegistry to avoid dependency from components/memory_coordinator to shell/services Original description: This CL adds MemoryCoordinator mojo interface and its implementation. When --enable-features=MemoryCoordinator is specified the browser and renderers create their MemoryCoordinators. MemoryCoordinatorImpl (which lives in the browser process) creates a mojo message pipe when a renderer is launched. This CL doesn't add actual handling of memory events, which will be implemented in follow-up CLs. BUG= 617492 TBR=chrisha@chromium.org,haraken@chromium.org,dcheng@chromium.org,jam@chromium.org Review-Url: https://codereview.chromium.org/2149413002 Cr-Commit-Position: refs/heads/master@{#406247} [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator.gypi [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/DEPS [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/browser/memory_coordinator.cc [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/common/memory_coordinator_features.cc [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/common/memory_coordinator_features.h [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/public/interfaces/BUILD.gn [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/components/memory_coordinator/public/interfaces/memory_coordinator.mojom [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/BUILD.gn [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/DEPS [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/browser_main_loop.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/browser_main_loop.h [add] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/content_browser.gypi [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/content_renderer.gypi [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/content_tests.gypi [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/renderer/BUILD.gn [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/renderer/DEPS [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/renderer/render_thread_impl.cc [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/renderer/render_thread_impl.h [modify] https://crrev.com/77f19b3affd0f29a77d1db1eebb6cc00e5a45898/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c commit ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c Author: bashi <bashi@chromium.org> Date: Thu Jul 21 00:20:47 2016 Extract client handing from ChildMemoryCoordinatorImpl Add ClientRegistry class which becomes a base class of both MemoryCoordinator and ChildMemoryCoordinatorImpl since client registration will be the same in both coordinators. BUG= 617492 Review-Url: https://codereview.chromium.org/2144163002 Cr-Commit-Position: refs/heads/master@{#406725} [modify] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator.gypi [modify] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/child/child_memory_coordinator_impl.h [modify] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/common/BUILD.gn [add] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/common/client_registry.cc [add] https://crrev.com/ca40bc98ac6e82800ed5b3fae78bfe0a224cff5c/components/memory_coordinator/common/client_registry.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b5cd9faee318026d791e608c563c7625b5a20bc4 commit b5cd9faee318026d791e608c563c7625b5a20bc4 Author: bashi <bashi@chromium.org> Date: Mon Jul 25 10:22:08 2016 Add memory pressure dispatching callback to MemoryCoordinator The callback will be used to route memory pressure notifications to MemoryCoordinator instead of MemoryPressureListener. When MemoryCoordinator receives memory pressure notifications, it translates them to memory state events. Specifically, "moderate" -> "throttled" and "critical" -> "suspended". This translation is a tentative workaround. When the priority tracker is implemented we will replace the logic. BUG= 617492 Review-Url: https://codereview.chromium.org/2150783003 Cr-Commit-Position: refs/heads/master@{#407443} [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/BUILD.gn [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/components_tests.gyp [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/memory_coordinator/browser/BUILD.gn [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/memory_coordinator/browser/memory_coordinator.cc [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/memory_coordinator/browser/memory_coordinator.h [add] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/memory_coordinator/browser/memory_coordinator_unittest.cc [modify] https://crrev.com/b5cd9faee318026d791e608c563c7625b5a20bc4/components/memory_coordinator/public/interfaces/child_memory_coordinator.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a4d2261bf464657d1a4f1b27bb7a1f50f19d503f commit a4d2261bf464657d1a4f1b27bb7a1f50f19d503f Author: bashi <bashi@chromium.org> Date: Tue Jul 26 05:59:20 2016 Use MemoryPressureListener in MemoryCoordinator MemoryCoordinator sets its memory pressure notification dispatcher in the constructor and sets back to MemoryPressureListener::NotifyMemoryPressure() in the destructor. This seems weird. Using MemoryPressureListener instance makes things simpler. BUG= 617492 Review-Url: https://codereview.chromium.org/2180843004 Cr-Commit-Position: refs/heads/master@{#407720} [modify] https://crrev.com/a4d2261bf464657d1a4f1b27bb7a1f50f19d503f/components/memory_coordinator/browser/memory_coordinator.cc [modify] https://crrev.com/a4d2261bf464657d1a4f1b27bb7a1f50f19d503f/components/memory_coordinator/browser/memory_coordinator.h [modify] https://crrev.com/a4d2261bf464657d1a4f1b27bb7a1f50f19d503f/components/memory_coordinator/browser/memory_coordinator_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1be61ae09f6df6838443c5e260923917cb4be87c commit 1be61ae09f6df6838443c5e260923917cb4be87c Author: chrisha <chrisha@chromium.org> Date: Wed Aug 17 20:12:30 2016 Create MemoryMonitor and Windows implementation. This defines the interface for the memory monitoring component of the MemoryCoordinator, and provides an implementation on Windows. BUG= 617492 Review-Url: https://codereview.chromium.org/2236983002 Cr-Commit-Position: refs/heads/master@{#412627} [modify] https://crrev.com/1be61ae09f6df6838443c5e260923917cb4be87c/components/memory_coordinator/browser/BUILD.gn [add] https://crrev.com/1be61ae09f6df6838443c5e260923917cb4be87c/components/memory_coordinator/browser/memory_monitor.h [add] https://crrev.com/1be61ae09f6df6838443c5e260923917cb4be87c/components/memory_coordinator/browser/memory_monitor_win.cc [add] https://crrev.com/1be61ae09f6df6838443c5e260923917cb4be87c/components/memory_coordinator/browser/memory_monitor_win.h [add] https://crrev.com/1be61ae09f6df6838443c5e260923917cb4be87c/components/memory_coordinator/browser/memory_monitor_win_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c4b4afcb34459e5f159667f80c385a06cf64b240 commit c4b4afcb34459e5f159667f80c385a06cf64b240 Author: bashi <bashi@chromium.org> Date: Tue Aug 23 06:37:52 2016 Add delegate and factory function for ChildMemoryCoordinator On Android we need to take immediate action when the OS sends critical memory pressure notifications [1]. This CL adds ChildMemoryCoordinatorDelegate and a factory function for ChildMemoryCoordinator to satisfy the requirement without adding "#if defined(OS_ANDROID)" in various place. In renderer, RenderThreadImpl becomes a delegate of ChildMemoryCoordinator so that it can trigger V8 GC. This CL doesn't implement Java part. Follow-up CLs will implement that part. [1] https://docs.google.com/document/d/1X2HglPS9zIOWAzmIdp7ghh0AGQsVa__sJbE_wim3RaY/edit#heading=h.xqzy4prx9j3x BUG= 617492 Review-Url: https://codereview.chromium.org/2260433006 Cr-Commit-Position: refs/heads/master@{#413680} [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/BUILD.gn [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/child_memory_coordinator_impl.h [add] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/child_memory_coordinator_impl_android.cc [add] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/child_memory_coordinator_impl_android.h [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/components/memory_coordinator/child/child_memory_coordinator_impl_unittest.cc [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/content/renderer/render_thread_impl.cc [modify] https://crrev.com/c4b4afcb34459e5f159667f80c385a06cf64b240/content/renderer/render_thread_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7056550d52a4e61bd120c24950d421fb0032dc55 commit 7056550d52a4e61bd120c24950d421fb0032dc55 Author: bashi <bashi@chromium.org> Date: Tue Aug 30 06:18:07 2016 Add a static getter for ChildMemoryCoordinator Currently ChildMemoryCoordinator is owned by RenderThreadImpl but some other components (like cc) would want to become clients of ChildMemoryCoordinator. Add a static getter to provide access to ChildMemoryCoordinator. BUG= 617492 Review-Url: https://codereview.chromium.org/2291473002 Cr-Commit-Position: refs/heads/master@{#415212} [modify] https://crrev.com/7056550d52a4e61bd120c24950d421fb0032dc55/components/memory_coordinator/child/child_memory_coordinator_impl.cc [modify] https://crrev.com/7056550d52a4e61bd120c24950d421fb0032dc55/components/memory_coordinator/child/child_memory_coordinator_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c7d2a617004376fad09c83e4845f59636ad0c185 commit c7d2a617004376fad09c83e4845f59636ad0c185 Author: bashi <bashi@chromium.org> Date: Wed Sep 14 08:56:05 2016 Add descriptions of MemoryState BUG= 617492 Review-Url: https://codereview.chromium.org/2341613002 Cr-Commit-Position: refs/heads/master@{#418515} [modify] https://crrev.com/c7d2a617004376fad09c83e4845f59636ad0c185/components/memory_coordinator/public/interfaces/child_memory_coordinator.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec commit 0cf58aaf5fd61c0047cbe51d3a484f01607b43ec Author: bashi <bashi@chromium.org> Date: Tue Sep 27 04:15:23 2016 Document memory coordinator The current headers lack explanations of thread guarantees, lifetime management, and how to implement MemoryCoordinatorClient. Add these explanations. Also, this CL stops exposing ClientList from MemoryCoordinatorClientRegistry. BUG= 617492 Review-Url: https://codereview.chromium.org/2363353002 Cr-Commit-Position: refs/heads/master@{#421099} [modify] https://crrev.com/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec/base/memory/memory_coordinator_client.h [modify] https://crrev.com/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec/base/memory/memory_coordinator_client_registry.cc [modify] https://crrev.com/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec/base/memory/memory_coordinator_client_registry.h [modify] https://crrev.com/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec/content/browser/memory/memory_coordinator.h [modify] https://crrev.com/0cf58aaf5fd61c0047cbe51d3a484f01607b43ec/content/child/memory/child_memory_coordinator_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/66264142bb289b0975682b0423685467cb2475f9 commit 66264142bb289b0975682b0423685467cb2475f9 Author: bashi <bashi@chromium.org> Date: Tue Sep 27 06:26:40 2016 Add MemoryMonitorAndroid Use ActivityManager.getMemoryInfo() to implement MemoryMonitor for android. Design doc: https://docs.google.com/document/d/1xHBD29Pi26cwXd7byJd7DhvdhJ8EzODP_uqUUI7J9e4/edit#heading=h.z8w4k8xdqow NO_DEPENDENCY_CHECKS=true BUG= 617492 Review-Url: https://codereview.chromium.org/2340293003 Cr-Commit-Position: refs/heads/master@{#421128} [modify] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/browser/BUILD.gn [modify] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/browser/android/browser_jni_registrar.cc [add] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/browser/memory/memory_monitor_android.cc [add] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/browser/memory/memory_monitor_android.h [add] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/browser/memory/memory_monitor_android_unittest.cc [modify] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/public/android/BUILD.gn [add] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/public/android/java/src/org/chromium/content/browser/MemoryMonitorAndroid.java [modify] https://crrev.com/66264142bb289b0975682b0423685467cb2475f9/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4939d8d105894827db5f63fd60ac4abf7bfd16d9 commit 4939d8d105894827db5f63fd60ac4abf7bfd16d9 Author: bashi <bashi@chromium.org> Date: Thu Sep 29 02:01:30 2016 Add a test for MemoryMonitorAndroid::GetFreeMemoryUntilCriticalMB BUG= 617492 Review-Url: https://codereview.chromium.org/2382623002 Cr-Commit-Position: refs/heads/master@{#421717} [modify] https://crrev.com/4939d8d105894827db5f63fd60ac4abf7bfd16d9/content/browser/memory/memory_monitor_android.cc [modify] https://crrev.com/4939d8d105894827db5f63fd60ac4abf7bfd16d9/content/browser/memory/memory_monitor_android.h [modify] https://crrev.com/4939d8d105894827db5f63fd60ac4abf7bfd16d9/content/browser/memory/memory_monitor_android_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/93362955b0109abee326322a952989fd5ee0d0f2 commit 93362955b0109abee326322a952989fd5ee0d0f2 Author: bashi <bashi@chromium.org> Date: Thu Oct 13 23:32:40 2016 Add MemoryCoordinatorDelegate Memory coordinator requires some information only avaiable in chrome/browser. One option to work around content -> chrome dependency is to put an abstract class in content/public/broser and an impl class in chrome/browser. However, We want to keep browser-agnostic things in content as much as possible. This CL introduces a delegate class to keep things in content but also provide ways to access information in chrome/browser. BUG= 617492 Review-Url: https://codereview.chromium.org/2399293002 Cr-Commit-Position: refs/heads/master@{#425202} [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/BUILD.gn [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/chrome_content_browser_client.h [add] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/memory/chrome_memory_coordinator_delegate.cc [add] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/memory/chrome_memory_coordinator_delegate.h [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/memory/tab_manager.cc [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/memory/tab_manager.h [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/chrome/browser/memory/tab_manager_browsertest.cc [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/browser/memory/memory_coordinator.cc [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/browser/memory/memory_coordinator.h [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/public/browser/BUILD.gn [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/public/browser/content_browser_client.cc [modify] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/public/browser/content_browser_client.h [add] https://crrev.com/93362955b0109abee326322a952989fd5ee0d0f2/content/public/browser/memory_coordinator_delegate.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/58dd2fac8722507277dad2615a0691e9dd77077d commit 58dd2fac8722507277dad2615a0691e9dd77077d Author: bashi <bashi@chromium.org> Date: Mon Oct 17 00:01:07 2016 Disable MemoryPressureListener when memory coordinator is enabled Memory coordinator is a replacement of MemoryPressureListener and MemoryPressureMonitor. They shouldn't be enabled at a same time because some components use both MemoryCoordinatorClient and MemoryPressureListener to handle memory pressure. BUG= 617492 Review-Url: https://codereview.chromium.org/2411423004 Cr-Commit-Position: refs/heads/master@{#425602} [modify] https://crrev.com/58dd2fac8722507277dad2615a0691e9dd77077d/content/browser/browser_main_loop.cc [modify] https://crrev.com/58dd2fac8722507277dad2615a0691e9dd77077d/content/browser/browser_main_loop.h [modify] https://crrev.com/58dd2fac8722507277dad2615a0691e9dd77077d/content/browser/devtools/protocol/memory_handler.cc [modify] https://crrev.com/58dd2fac8722507277dad2615a0691e9dd77077d/content/renderer/render_thread_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/529cb14c66359213f1d19b0450ff4d73b25c0e10 commit 529cb14c66359213f1d19b0450ff4d73b25c0e10 Author: bashi <bashi@chromium.org> Date: Mon Oct 17 21:53:57 2016 Add MemoryCoordinatorImpl This CL adds actual implementation of memory coordinator. The idea is from chrisha@ and a basic strategy is: * There is only one global state. All processes share the same state. * The state level calculation is determined by the amount of free memory and the median of renderer size (platform-dependent). BUG= 617492 Review-Url: https://codereview.chromium.org/2374343002 Cr-Commit-Position: refs/heads/master@{#425786} [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/BUILD.gn [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/browser_main_loop.cc [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator.cc [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator.h [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator_browsertest.cc [add] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator_impl.cc [add] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator_impl.h [add] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator_impl_unittest.cc [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_coordinator_unittest.cc [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/browser/memory/memory_monitor.cc [modify] https://crrev.com/529cb14c66359213f1d19b0450ff4d73b25c0e10/content/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/efbf745f1739de118eb193f24e8e9ed9a6f7cc9f commit efbf745f1739de118eb193f24e8e9ed9a6f7cc9f Author: bashi <bashi@chromium.org> Date: Tue Oct 25 00:10:28 2016 memory coordinator: Observe renderer visibility to update state Memory coordinator should update renderers' memory state when their visibility have changed. For a visible (foreground) renderer, the state is set to NORMAL. For background renderers, the states are set to the global state. BUG= 617492 Review-Url: https://codereview.chromium.org/2443093002 Cr-Commit-Position: refs/heads/master@{#427185} [modify] https://crrev.com/efbf745f1739de118eb193f24e8e9ed9a6f7cc9f/content/browser/memory/memory_coordinator_impl.cc [modify] https://crrev.com/efbf745f1739de118eb193f24e8e9ed9a6f7cc9f/content/browser/memory/memory_coordinator_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8e656e05f77fb80739dc80bdfa1abfce1f45173d commit 8e656e05f77fb80739dc80bdfa1abfce1f45173d Author: bashi <bashi@chromium.org> Date: Wed Oct 26 23:38:47 2016 memory coordinator: Use free memory to guess available memory on Linux Though there will be eaisly discardable memory such as buffers and caches, don't count them as "available" memory because discarding them will affect the overall performance of the system. BUG= 617492 Review-Url: https://codereview.chromium.org/2448923004 Cr-Commit-Position: refs/heads/master@{#427880} [modify] https://crrev.com/8e656e05f77fb80739dc80bdfa1abfce1f45173d/content/browser/memory/memory_monitor_linux.cc [modify] https://crrev.com/8e656e05f77fb80739dc80bdfa1abfce1f45173d/content/browser/memory/memory_monitor_linux_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dd32a4ec69b482248bc23df10cc0fd6efc56ddec commit dd32a4ec69b482248bc23df10cc0fd6efc56ddec Author: bashi <bashi@chromium.org> Date: Tue Nov 01 06:36:19 2016 memory coordinator: Add trace macros to track state changes BUG= 617492 Review-Url: https://codereview.chromium.org/2466773002 Cr-Commit-Position: refs/heads/master@{#428949} [modify] https://crrev.com/dd32a4ec69b482248bc23df10cc0fd6efc56ddec/base/BUILD.gn [add] https://crrev.com/dd32a4ec69b482248bc23df10cc0fd6efc56ddec/base/memory/memory_coordinator_client.cc [modify] https://crrev.com/dd32a4ec69b482248bc23df10cc0fd6efc56ddec/base/memory/memory_coordinator_client.h [modify] https://crrev.com/dd32a4ec69b482248bc23df10cc0fd6efc56ddec/content/browser/memory/memory_coordinator_impl.cc [modify] https://crrev.com/dd32a4ec69b482248bc23df10cc0fd6efc56ddec/content/child/memory/child_memory_coordinator_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fa8801f66d8d2bba2cd293c01862fcacda898516 commit fa8801f66d8d2bba2cd293c01862fcacda898516 Author: bashi <bashi@chromium.org> Date: Tue Nov 01 07:21:28 2016 Replace prepareToSuspend() with onMemoryStateChange(SUSPENDED) To simplify the API. BUG= 617492 Review-Url: https://codereview.chromium.org/2463283002 Cr-Commit-Position: refs/heads/master@{#428955} [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/core/dom/PendingScript.cpp [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/core/dom/PendingScript.h [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/core/fetch/Resource.cpp [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/core/fetch/Resource.h [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/platform/MemoryCoordinator.cpp [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/platform/MemoryCoordinator.h [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/Source/platform/exported/WebMemoryCoordinator.cpp [modify] https://crrev.com/fa8801f66d8d2bba2cd293c01862fcacda898516/third_party/WebKit/public/platform/WebMemoryCoordinator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/38bf0fa7b6d998a1afb0117235ad0fa467d934e9 commit 38bf0fa7b6d998a1afb0117235ad0fa467d934e9 Author: bashi <bashi@chromium.org> Date: Fri Nov 18 02:56:01 2016 Add an about://flags entry for enable/disable memory coordinator We need this to enable memory coordinator on locked Android devices. BUG= 617492 Review-Url: https://codereview.chromium.org/2506173004 Cr-Commit-Position: refs/heads/master@{#433033} [modify] https://crrev.com/38bf0fa7b6d998a1afb0117235ad0fa467d934e9/chrome/app/generated_resources.grd [modify] https://crrev.com/38bf0fa7b6d998a1afb0117235ad0fa467d934e9/chrome/browser/about_flags.cc [modify] https://crrev.com/38bf0fa7b6d998a1afb0117235ad0fa467d934e9/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b935609873e0305e0666b89c4cff2c2a89901bf9 commit b935609873e0305e0666b89c4cff2c2a89901bf9 Author: bashi <bashi@chromium.org> Date: Tue Nov 22 21:36:49 2016 memory coordinator: Set variation parameters if available In V0 implementation we have several parameters to determine the global state. Override these parameters when variations are available. BUG= 617492 Review-Url: https://codereview.chromium.org/2518653002 Cr-Commit-Position: refs/heads/master@{#433987} [add] https://crrev.com/b935609873e0305e0666b89c4cff2c2a89901bf9/content/browser/memory/DEPS [modify] https://crrev.com/b935609873e0305e0666b89c4cff2c2a89901bf9/content/browser/memory/memory_coordinator_impl.cc [modify] https://crrev.com/b935609873e0305e0666b89c4cff2c2a89901bf9/content/browser/memory/memory_coordinator_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f1501024d0f0aa8ee537dd276504b05f3bd0145b commit f1501024d0f0aa8ee537dd276504b05f3bd0145b Author: bashi <bashi@chromium.org> Date: Tue Nov 29 02:09:24 2016 Move suspend logic into OnMemoryStateChange() Before this CL, OnMemoryStateChange() only handles "purge" part of purge+suspend mechanism. Handle "suspend" part as well. BUG= 617492 Review-Url: https://codereview.chromium.org/2529833002 Cr-Commit-Position: refs/heads/master@{#434831} [modify] https://crrev.com/f1501024d0f0aa8ee537dd276504b05f3bd0145b/content/renderer/render_thread_impl.cc [modify] https://crrev.com/f1501024d0f0aa8ee537dd276504b05f3bd0145b/content/renderer/render_thread_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2d5bc88c8a8900eee1513a707ac360b64070e7d7 commit 2d5bc88c8a8900eee1513a707ac360b64070e7d7 Author: bashi <bashi@chromium.org> Date: Tue Dec 06 01:18:42 2016 memory coordinator: Throttle foreground renderers on SUSPENDED state Like the browser process, we don't want to suspend foreground renderers, but memory coordinator should try to reduce memory consumption when free memory is low. Set THROTTLED state for foreground renderers when the global state is SUSPENDED. BUG= 617492 Review-Url: https://codereview.chromium.org/2553553002 Cr-Commit-Position: refs/heads/master@{#436481} [modify] https://crrev.com/2d5bc88c8a8900eee1513a707ac360b64070e7d7/content/browser/memory/memory_coordinator.cc [modify] https://crrev.com/2d5bc88c8a8900eee1513a707ac360b64070e7d7/content/browser/memory/memory_coordinator.h [modify] https://crrev.com/2d5bc88c8a8900eee1513a707ac360b64070e7d7/content/browser/memory/memory_coordinator_browsertest.cc [modify] https://crrev.com/2d5bc88c8a8900eee1513a707ac360b64070e7d7/content/browser/memory/memory_coordinator_impl.cc [modify] https://crrev.com/2d5bc88c8a8900eee1513a707ac360b64070e7d7/content/browser/memory/memory_coordinator_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c2baca69986fcd55ada1be0c952b5737dc71c648 commit c2baca69986fcd55ada1be0c952b5737dc71c648 Author: bashi <bashi@chromium.org> Date: Fri Dec 09 02:38:13 2016 Add test for MemoryCoordinatorImpl::ForceSetGlobalState() This is a follow-up CL of crrev.com/2550183007. BUG= 617492 Review-Url: https://codereview.chromium.org/2561863003 Cr-Commit-Position: refs/heads/master@{#437443} [modify] https://crrev.com/c2baca69986fcd55ada1be0c952b5737dc71c648/content/browser/memory/memory_coordinator_impl.h [modify] https://crrev.com/c2baca69986fcd55ada1be0c952b5737dc71c648/content/browser/memory/memory_coordinator_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/feae988cc92320f9f7d8f0d9a5fa5056d11e3f69 commit feae988cc92320f9f7d8f0d9a5fa5056d11e3f69 Author: bashi <bashi@chromium.org> Date: Fri Dec 09 05:23:17 2016 memory coordinator: Throttle background renderers on Android On mobile devices, there are less available memory and high tab switching cost compared to desktop environments. Given that, it would make sense to throttle background renderers immediately. BUG= 617492 Review-Url: https://codereview.chromium.org/2564623004 Cr-Commit-Position: refs/heads/master@{#437476} [modify] https://crrev.com/feae988cc92320f9f7d8f0d9a5fa5056d11e3f69/content/browser/memory/memory_coordinator.cc [modify] https://crrev.com/feae988cc92320f9f7d8f0d9a5fa5056d11e3f69/content/browser/memory/memory_coordinator.h [modify] https://crrev.com/feae988cc92320f9f7d8f0d9a5fa5056d11e3f69/content/browser/memory/memory_coordinator_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/56b23f3064d47916ee13dadbbb7e87e2d15b80fd commit 56b23f3064d47916ee13dadbbb7e87e2d15b80fd Author: bashi <bashi@chromium.org> Date: Thu Feb 09 01:24:57 2017 Replace OnMemoryStateChange() with OnPurgeMemory() in net/ When we implemented MemoryCoordinatorClients in net/, there was only one callback called OnMemoryStateChange(). Recently we added another callback called OnPurgeMemory() to handle "existing allocations" and "future allocations" separately (See [1] for the motivation). This CL replaces OnMemoryStateChange() with OnPurgeMemory() because all clients in net/ actually free up memory. Note: MemoryCoordinatorClient and MemoryPressureListener won't be enabled at the same time. This means that either OnMemoryPressure() or OnPurgeMemory() can be called. [1] https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/project-trim/s96xSirL2Hs/18uq1zfHEgAJ BUG= 684287 , 617492 Review-Url: https://codereview.chromium.org/2679903002 Cr-Commit-Position: refs/heads/master@{#449178} [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/http/http_network_session.cc [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/http/http_network_session.h [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/sdch/sdch_owner.cc [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/sdch/sdch_owner.h [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/ssl/ssl_client_session_cache.cc [modify] https://crrev.com/56b23f3064d47916ee13dadbbb7e87e2d15b80fd/net/ssl/ssl_client_session_cache.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/58f641e2daf00d18ce899adc30fa92abaaa26e5b commit 58f641e2daf00d18ce899adc30fa92abaaa26e5b Author: bashi <bashi@chromium.org> Date: Thu Mar 16 12:16:49 2017 memory coordinator: Change tracing event category Before this CL we used "memory-infra" category for memory coordinator related events. Enabling "memory-infra" category triggers memory dump tasks but in some cases we just want to record memory coordinator related events without memory dumps to investigate performace impact of memory coordinator (e.g. how purging memory affects tab switching). This CL changes the category of memory coordinator related events to "memory_coordinator" so that we can recard traces without memory dumps. BUG= 617492 Review-Url: https://codereview.chromium.org/2752153002 Cr-Commit-Position: refs/heads/master@{#457405} [modify] https://crrev.com/58f641e2daf00d18ce899adc30fa92abaaa26e5b/content/browser/memory/memory_coordinator_impl.cc [modify] https://crrev.com/58f641e2daf00d18ce899adc30fa92abaaa26e5b/content/child/memory/child_memory_coordinator_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4159f36e93c398b9816b734a14e97220e83fc912 commit 4159f36e93c398b9816b734a14e97220e83fc912 Author: bashi <bashi@chromium.org> Date: Mon May 01 01:18:51 2017 Record swap metrics This CL adds SwapMetricsObserver which records swap rates and reports them as platform-specific metrics. The purpose of adding these metrics is to measure the impact of actions we take to free up memory. If we aggressively free up memory under high memory pressure, we may touch pages which are already swapped out (or compressed). In such cases thrashing could happen and we are making the situation worse. Swap rates and page compression/decompression rate would be good indicators of thrashing. Metrics will be recorded every 60 seconds. This CL only adds metrics for Android/ChromeOS/Linux. Follow-up CLs will add them for macOS. BUG= 617492 Review-Url: https://codereview.chromium.org/2824133002 Cr-Commit-Position: refs/heads/master@{#468266} [modify] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/BUILD.gn [modify] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/browser_main_loop.cc [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer.cc [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer.h [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer_linux.cc [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer_linux.h [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer_mac.cc [add] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/content/browser/memory/swap_metrics_observer_win.cc [modify] https://crrev.com/4159f36e93c398b9816b734a14e97220e83fc912/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/651d8feadbd84df44c2c09ca287d82cba7fd8dbf commit 651d8feadbd84df44c2c09ca287d82cba7fd8dbf Author: bashi <bashi@chromium.org> Date: Tue May 02 00:42:15 2017 Add SwapMetricsObserverMac This CL adds SwapMetricsObserverMac which records macOS specific swap metrics. Metrics includes: - # of pages swapins/swapouts per seconds - # of pages compressed/decompressed per seconds These stats come from host_statistics64(). BUG= 617492 Review-Url: https://codereview.chromium.org/2852033002 Cr-Commit-Position: refs/heads/master@{#468508} [modify] https://crrev.com/651d8feadbd84df44c2c09ca287d82cba7fd8dbf/content/browser/BUILD.gn [modify] https://crrev.com/651d8feadbd84df44c2c09ca287d82cba7fd8dbf/content/browser/memory/swap_metrics_observer_mac.cc [add] https://crrev.com/651d8feadbd84df44c2c09ca287d82cba7fd8dbf/content/browser/memory/swap_metrics_observer_mac.h [modify] https://crrev.com/651d8feadbd84df44c2c09ca287d82cba7fd8dbf/tools/metrics/histograms/histograms.xml
I've just created the following issue: https://bugs.chromium.org/p/chromium/issues/detail?id=888904 So I would like to mark this as WontFix.
Comment 1 by bugdroid1@chromium.org
, Jun 17 2016