blob: 99b4813d12ba7eafa74789eb69dd86a6c9f745de [file] [log] [blame]
// Copyright 2015 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.
#include "chrome/browser/task_management/providers/web_contents/prerender_task.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/web_contents.h"
#include "grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/image/image_skia.h"
namespace task_management {
namespace {
gfx::ImageSkia* g_prerender_icon = nullptr;
// Returns the prerender icon or |nullptr| if the |ResourceBundle| is not ready
// yet.
gfx::ImageSkia* GetPrerenderIcon() {
if (g_prerender_icon)
return g_prerender_icon;
if (!ResourceBundle::HasSharedInstance())
return nullptr;
g_prerender_icon =
ResourceBundle::GetSharedInstance().GetImageSkiaNamed(IDR_PRERENDER);
return g_prerender_icon;
}
base::string16 PrefixTitle(const base::string16& title) {
return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX, title);
}
} // namespace
PrerenderTask::PrerenderTask(content::WebContents* web_contents)
: RendererTask(
PrefixTitle(RendererTask::GetTitleFromWebContents(web_contents)),
GetPrerenderIcon(),
web_contents,
web_contents->GetRenderProcessHost()) {
}
PrerenderTask::~PrerenderTask() {
}
void PrerenderTask::UpdateTitle() {
// As long as this task lives we keep prefixing its title with "Prerender:".
set_title(PrefixTitle(RendererTask::GetTitleFromWebContents(web_contents())));
}
void PrerenderTask::UpdateFavicon() {
// As long as this task lives we keep using the prerender icon, so we ignore
// this event.
}
} // namespace task_management