| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_MANAGER_RESOURCE_COORDINATOR_SIGNAL_OBSERVER_H_ |
| #define CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_MANAGER_RESOURCE_COORDINATOR_SIGNAL_OBSERVER_H_ |
| |
| #include "base/macros.h" |
| #include "chrome/browser/resource_coordinator/page_signal_receiver.h" |
| #include "chrome/browser/resource_coordinator/tab_manager.h" |
| |
| namespace resource_coordinator { |
| |
| // TabManager::ResourceCoordinatorSignalObserver implements some observer |
| // interfaces, for example it currently implements PageSignalObserver but can |
| // implement more; and receives signals from resource coordinator through those |
| // interfaces. |
| class TabManager::ResourceCoordinatorSignalObserver |
| : public PageSignalObserver { |
| public: |
| explicit ResourceCoordinatorSignalObserver( |
| PageSignalReceiver* page_signal_receiver); |
| ~ResourceCoordinatorSignalObserver() override; |
| |
| // PageSignalObserver implementation. |
| void OnPageAlmostIdle( |
| content::WebContents* web_contents, |
| const PageNavigationIdentity& page_navigation_id) override; |
| void OnExpectedTaskQueueingDurationSet( |
| content::WebContents* web_contents, |
| const PageNavigationIdentity& page_navigation_id, |
| base::TimeDelta duration) override; |
| |
| private: |
| PageSignalReceiver* const page_signal_receiver_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ResourceCoordinatorSignalObserver); |
| }; |
| |
| } // namespace resource_coordinator |
| |
| #endif // CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_MANAGER_RESOURCE_COORDINATOR_SIGNAL_OBSERVER_H_ |