Remove renderer notifications of memory pressure.

This system sends messages to the renderer processes when the system is under memory
strain. But when the system is under memory strain, garbage collecting makes thrashing
worse. When we're under memory pressure, waking up the least-recently-used renderer
and making it touch a lot of its memory by GC-ing will likely page in that renderer.

The current system does this for all renderers repeatedly (one every two seconds, looping
back to the least-recently-used one again) until there is no more memory pressure. This
system contributes to the "falling off a cliff" behavior of Chrome performance when
under memory pressure.

Now that renderers are not notified of memory pressure, the messages associated with this,
as well as messages to simulate and disable notifications are removed.

With this change, the browser process will continue to respond to memory pressure events
and may clear some caches, but the renderers will not. They will presumably get paged
out like normal processes. This affects only desktop systems. A separate memory pressure
system exists on Android, and the messages were already disabled on ChromeOS due to the
problems they caused.

This mostly reverts these patches:
https://codereview.chromium.org/1332583002
https://codereview.chromium.org/1641813002

Changes TabStats to use C++11-style member initialization and implements move and
assignment operators out-of-line.

BUG=716606
R=erikchen@chromium.org
TBR=mbarbella@chromium.org (security IPC review for messages removal)

Review-Url: https://codereview.chromium.org/2882513004
Cr-Commit-Position: refs/heads/master@{#471942}


CrOS-Libchrome-Original-Commit: 37c4e81eb4dfa713a06164dbce721710b92b2ca9
1 file changed
tree: 1365fc1a85374376cf498f2f3a57c9481b7fa33b
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/