Commit 5fb25d25 authored by Francois Doray's avatar Francois Doray Committed by Commit Bot

Remove TabManager::(Discard|Freeze)TabById().

These methods were only used by the chrome://discards UI, which can
instead access the LifecycleUnits directly.

Bug: 775644
Change-Id: Iae97a1d6bcf5af1fcd555608ad05e4921ff8e437
Reviewed-on: https://chromium-review.googlesource.com/1057692
Commit-Queue: Chris Hamilton <chrisha@chromium.org>
Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Reviewed-by: default avatarFadi Meawad <fmeawad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558759}
parent 9dd3eaad
......@@ -284,24 +284,6 @@ void TabManager::DiscardTab(DiscardReason reason) {
DiscardTabImpl(reason);
}
void TabManager::DiscardTabById(int32_t tab_id, DiscardReason reason) {
for (LifecycleUnit* lifecycle_unit : lifecycle_units_) {
if (lifecycle_unit->GetID() == tab_id) {
lifecycle_unit->Discard(reason);
return;
}
}
}
void TabManager::FreezeTabById(int32_t tab_id) {
for (LifecycleUnit* lifecycle_unit : lifecycle_units_) {
if (lifecycle_unit->GetID() == tab_id) {
lifecycle_unit->Freeze();
return;
}
}
}
WebContents* TabManager::DiscardTabByExtension(content::WebContents* contents) {
if (contents) {
TabLifecycleUnitExternal* tab_lifecycle_unit_external =
......
......@@ -107,17 +107,6 @@ class TabManager : public LifecycleUnitObserver,
// unload handler and fast-kill the tab regardless).
void DiscardTab(DiscardReason reason);
// Discards a tab with the given unique ID. The tab still exists in the
// tab-strip; clicking on it will reload it. Returns null if the tab cannot
// be found or cannot be discarded. Otherwise returns the new web_contents
// of the discarded tab.
void DiscardTabById(int32_t tab_id, DiscardReason reason);
// Freezes a tab with the given unique ID. Unlike discarding, freezing does
// not kill or change the tab other than stopping its task queues. Revisiting
// the tab causes it to unfreeze.
void FreezeTabById(int32_t tab_id);
// Method used by the extensions API to discard tabs. If |contents| is null,
// discards the least important tab using DiscardTab(). Otherwise discards
// the given contents. Returns the new web_contents or null if no tab
......
......@@ -50,6 +50,15 @@ mojom::LifecycleUnitVisibility GetLifecycleUnitVisibility(
#endif
}
resource_coordinator::LifecycleUnit* GetLifecycleUnitById(int32_t id) {
for (resource_coordinator::LifecycleUnit* lifecycle_unit :
g_browser_process->GetTabManager()->GetSortedLifecycleUnits()) {
if (lifecycle_unit->GetID() == id)
return lifecycle_unit;
}
return nullptr;
}
class DiscardsDetailsProviderImpl : public mojom::DiscardsDetailsProvider {
public:
// This instance is deleted when the supplied pipe is destroyed.
......@@ -108,28 +117,32 @@ class DiscardsDetailsProviderImpl : public mojom::DiscardsDetailsProvider {
std::move(callback).Run(std::move(infos));
}
void SetAutoDiscardable(int32_t tab_id,
void SetAutoDiscardable(int32_t id,
bool is_auto_discardable,
SetAutoDiscardableCallback callback) override {
resource_coordinator::TabManager* tab_manager =
g_browser_process->GetTabManager();
tab_manager->SetTabAutoDiscardableState(tab_id, is_auto_discardable);
auto* lifecycle_unit = GetLifecycleUnitById(id);
if (lifecycle_unit) {
auto* tab_lifecycle_unit_external =
lifecycle_unit->AsTabLifecycleUnitExternal();
if (tab_lifecycle_unit_external)
tab_lifecycle_unit_external->SetAutoDiscardable(is_auto_discardable);
}
std::move(callback).Run();
}
void DiscardById(int32_t tab_id,
void DiscardById(int32_t id,
bool urgent,
DiscardByIdCallback callback) override {
resource_coordinator::TabManager* tab_manager =
g_browser_process->GetTabManager();
tab_manager->DiscardTabById(tab_id, GetDiscardReason(urgent));
auto* lifecycle_unit = GetLifecycleUnitById(id);
if (lifecycle_unit)
lifecycle_unit->Discard(GetDiscardReason(urgent));
std::move(callback).Run();
}
void FreezeById(int32_t tab_id) override {
resource_coordinator::TabManager* tab_manager =
g_browser_process->GetTabManager();
tab_manager->FreezeTabById(tab_id);
void FreezeById(int32_t id) override {
auto* lifecycle_unit = GetLifecycleUnitById(id);
if (lifecycle_unit)
lifecycle_unit->Freeze();
}
void Discard(bool urgent, DiscardCallback callback) override {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment