Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / task_management / providers / web_contents / background_contents_task.cc
blob85f37f26eb88c5ded3ad664c39b23c2469d57cc7
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/task_management/providers/web_contents/background_contents_task.h"
7 #include "base/i18n/rtl.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/background/background_contents_service.h"
10 #include "chrome/browser/background/background_contents_service_factory.h"
11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/profiles/profile_manager.h"
13 #include "chrome/grit/generated_resources.h"
14 #include "content/public/browser/render_process_host.h"
15 #include "content/public/browser/web_contents.h"
16 #include "extensions/browser/extension_registry.h"
17 #include "extensions/browser/view_type_utils.h"
18 #include "extensions/common/extension_set.h"
19 #include "grit/theme_resources.h"
20 #include "ui/base/l10n/l10n_util.h"
21 #include "ui/base/resource/resource_bundle.h"
22 #include "ui/gfx/image/image_skia.h"
24 namespace task_management {
26 namespace {
28 // The default icon for the background webcontents task.
29 gfx::ImageSkia* g_default_icon = nullptr;
31 gfx::ImageSkia* GetDefaultIcon() {
32 if (!g_default_icon && ResourceBundle::HasSharedInstance()) {
33 g_default_icon = ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
34 IDR_PLUGINS_FAVICON);
37 return g_default_icon;
40 base::string16 AdjustAndLocalizeTitle(const base::string16& title,
41 const std::string& url_spec) {
42 base::string16 localized_title(title);
43 if (localized_title.empty()) {
44 // No title (can't locate the parent app for some reason) so just display
45 // the URL (properly forced to be LTR).
46 localized_title = base::i18n::GetDisplayStringInLTRDirectionality(
47 base::UTF8ToUTF16(url_spec));
50 // Ensure that the string has the appropriate direction markers.
51 base::i18n::AdjustStringForLocaleDirection(&localized_title);
52 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_BACKGROUND_PREFIX,
53 localized_title);
56 } // namespace
58 BackgroundContentsTask::BackgroundContentsTask(
59 const base::string16& title,
60 BackgroundContents* background_contents)
61 : RendererTask(
62 AdjustAndLocalizeTitle(title, background_contents->GetURL().spec()),
63 GetDefaultIcon(),
64 background_contents->web_contents(),
65 background_contents->web_contents()->GetRenderProcessHost()) {
68 BackgroundContentsTask::~BackgroundContentsTask() {
71 void BackgroundContentsTask::OnTitleChanged(content::NavigationEntry* entry) {
72 // TODO(afakhry): At the time of integration testing figure out whether we
73 // need to change the title of the task here.
76 void BackgroundContentsTask::OnFaviconChanged() {
77 // We don't do anything here. For background contents we always use the
78 // default icon.
81 } // namespace task_management