| Index: content/browser/memory/memory_pressure_controller_impl.h
|
| diff --git a/content/browser/memory/memory_pressure_controller.h b/content/browser/memory/memory_pressure_controller_impl.h
|
| similarity index 52%
|
| rename from content/browser/memory/memory_pressure_controller.h
|
| rename to content/browser/memory/memory_pressure_controller_impl.h
|
| index f81540957d7b416f1b268e7e63280b14268ceb31..95d58d250d69e72c8211c7ca1de97268e0a08e4a 100644
|
| --- a/content/browser/memory/memory_pressure_controller.h
|
| +++ b/content/browser/memory/memory_pressure_controller_impl.h
|
| @@ -2,8 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_H_
|
| -#define CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_H_
|
| +#ifndef CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_IMPL_H_
|
| +#define CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_IMPL_H_
|
|
|
| #include <map>
|
|
|
| @@ -19,33 +19,55 @@ class BrowserChildProcessHost;
|
| class MemoryMessageFilter;
|
| class RenderProcessHost;
|
|
|
| -class CONTENT_EXPORT MemoryPressureController {
|
| +// Controller for memory pressure IPC messages. Each child process owns and
|
| +// registers a MemoryMessageFilter, which can be used to both suppress and
|
| +// simulate memory pressure messages across processes. This controller
|
| +// coordinates suppressing and simulation of messages, as well as allows for
|
| +// messages to be forwarded to individual processes. This allows the browser
|
| +// process to control what memory pressure messages are seen in child processes.
|
| +// For more details see content/browser/memory/memory_message_filter.h and
|
| +// content/child/memory/child_memory_message_filter.h.
|
| +class CONTENT_EXPORT MemoryPressureControllerImpl {
|
| public:
|
| + // This method can be called from any thread.
|
| + static MemoryPressureControllerImpl* GetInstance();
|
| +
|
| // These methods must be called on the IO thread.
|
| void OnMemoryMessageFilterAdded(MemoryMessageFilter* filter);
|
| void OnMemoryMessageFilterRemoved(MemoryMessageFilter* filter);
|
|
|
| // These methods can be called from any thread.
|
| +
|
| + // Suppresses all memory pressure messages from passing through all attached
|
| + // MemoryMessageFilters. Any messages sent through a "suppressed" filter will
|
| + // be ignored on the receiving end.
|
| void SetPressureNotificationsSuppressedInAllProcesses(bool suppressed);
|
| +
|
| + // Simulates memory pressure in all processes by invoking
|
| + // SimulatePressureNotification on all attached MemoryMessageFilters. These
|
| + // messages will be received even if suppression is enabled.
|
| void SimulatePressureNotificationInAllProcesses(
|
| base::MemoryPressureListener::MemoryPressureLevel level);
|
| +
|
| + // Sends a memory pressure notification to the specified browser child process
|
| + // via its attached MemoryMessageFilter.
|
| void SendPressureNotification(
|
| const BrowserChildProcessHost* child_process_host,
|
| base::MemoryPressureListener::MemoryPressureLevel level);
|
| +
|
| + // Sends a memory pressure notification to the specified renderer process via
|
| + // its attached MemoryMessageFilter.
|
| void SendPressureNotification(
|
| const RenderProcessHost* render_process_host,
|
| base::MemoryPressureListener::MemoryPressureLevel level);
|
|
|
| - // This method can be called from any thread.
|
| - static MemoryPressureController* GetInstance();
|
| -
|
| protected:
|
| - virtual ~MemoryPressureController();
|
| + virtual ~MemoryPressureControllerImpl();
|
|
|
| private:
|
| - friend struct base::DefaultSingletonTraits<MemoryPressureController>;
|
| + friend struct base::DefaultSingletonTraits<MemoryPressureControllerImpl>;
|
|
|
| - MemoryPressureController();
|
| + MemoryPressureControllerImpl();
|
|
|
| // Implementation of the various SendPressureNotification methods.
|
| void SendPressureNotificationImpl(
|
| @@ -58,9 +80,9 @@ class CONTENT_EXPORT MemoryPressureController {
|
| MemoryMessageFilterMap;
|
| MemoryMessageFilterMap memory_message_filters_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(MemoryPressureController);
|
| + DISALLOW_COPY_AND_ASSIGN(MemoryPressureControllerImpl);
|
| };
|
|
|
| } // namespace content
|
|
|
| -#endif // CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_H_
|
| +#endif // CONTENT_BROWSER_MEMORY_MEMORY_PRESSURE_CONTROLLER_IMPL_H_
|
|
|