// 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 "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) { } PrerenderTask::~PrerenderTask() { } void PrerenderTask::OnTitleChanged(content::NavigationEntry* entry) { // As long as this task lives we keep prefixing its title with "Prerender:". set_title(PrefixTitle(RendererTask::GetTitleFromWebContents(web_contents()))); } void PrerenderTask::OnFaviconChanged() { // As long as this task lives we keep using the prerender icon, so we ignore // this event. } } // namespace task_management