Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4526)

Unified Diff: chrome/browser/task_manager/tab_contents_information.cc

Issue 2197483003: Move the Mac Task Manager to the new backend code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mark Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/task_manager/tab_contents_information.h ('k') | chrome/browser/task_manager/task_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/task_manager/tab_contents_information.cc
diff --git a/chrome/browser/task_manager/tab_contents_information.cc b/chrome/browser/task_manager/tab_contents_information.cc
deleted file mode 100644
index 757d4a257f01398f380e87ce4cee006732324deb..0000000000000000000000000000000000000000
--- a/chrome/browser/task_manager/tab_contents_information.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright 2014 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_manager/tab_contents_information.h"
-
-#include <stddef.h>
-
-#include "base/callback.h"
-#include "base/macros.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/devtools/devtools_window.h"
-#include "chrome/browser/favicon/favicon_utils.h"
-#include "chrome/browser/prerender/prerender_manager.h"
-#include "chrome/browser/prerender/prerender_manager_factory.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/task_manager/renderer_resource.h"
-#include "chrome/browser/task_manager/task_manager_util.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
-#include "components/favicon/content/content_favicon_driver.h"
-#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/web_contents.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/process_map.h"
-#include "extensions/common/constants.h"
-#include "extensions/common/extension_set.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"
-
-using content::WebContents;
-
-namespace task_manager {
-
-namespace {
-
-// Returns true if the WebContents is currently owned by the prerendering
-// manager.
-bool IsContentsPrerendering(WebContents* web_contents) {
- Profile* profile =
- Profile::FromBrowserContext(web_contents->GetBrowserContext());
- prerender::PrerenderManager* prerender_manager =
- prerender::PrerenderManagerFactory::GetForProfile(profile);
- return prerender_manager &&
- prerender_manager->IsWebContentsPrerendering(web_contents, NULL);
-}
-
-} // namespace
-
-// Tracks a single tab contents, prerendered page, or Instant page.
-class TabContentsResource : public RendererResource {
- public:
- explicit TabContentsResource(content::WebContents* web_contents);
- ~TabContentsResource() override;
-
- // Resource methods:
- Type GetType() const override;
- base::string16 GetTitle() const override;
- gfx::ImageSkia GetIcon() const override;
- content::WebContents* GetWebContents() const override;
-
- private:
- // Returns true if contains content rendered by an extension.
- bool HostsExtension() const;
-
- static gfx::ImageSkia* prerender_icon_;
- content::WebContents* web_contents_;
- Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(TabContentsResource);
-};
-
-gfx::ImageSkia* TabContentsResource::prerender_icon_ = NULL;
-
-TabContentsResource::TabContentsResource(WebContents* web_contents)
- : RendererResource(web_contents->GetRenderProcessHost()->GetHandle(),
- web_contents->GetRenderViewHost()),
- web_contents_(web_contents),
- profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())) {
- if (!prerender_icon_) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- prerender_icon_ = rb.GetImageSkiaNamed(IDR_PRERENDER);
- }
-}
-
-TabContentsResource::~TabContentsResource() {}
-
-bool TabContentsResource::HostsExtension() const {
- return web_contents_->GetURL().SchemeIs(extensions::kExtensionScheme);
-}
-
-Resource::Type TabContentsResource::GetType() const {
- // A tab that loads an extension URL is considered to be an extension for
- // these purposes, although it's tracked as a TabContentsResource.
- return HostsExtension() ? EXTENSION : RENDERER;
-}
-
-base::string16 TabContentsResource::GetTitle() const {
- // Fall back on the URL if there's no title.
- GURL url = web_contents_->GetURL();
- base::string16 tab_title = util::GetTitleFromWebContents(web_contents_);
-
- // Only classify as an app if the URL is an app and the tab is hosting an
- // extension process. (It's possible to be showing the URL from before it
- // was installed as an app.)
- extensions::ProcessMap* process_map = extensions::ProcessMap::Get(profile_);
- bool is_app =
- extensions::ExtensionRegistry::Get(profile_)
- ->enabled_extensions().GetAppByURL(url) != NULL &&
- process_map->Contains(web_contents_->GetRenderProcessHost()->GetID());
-
- int message_id = util::GetMessagePrefixID(
- is_app,
- HostsExtension(),
- profile_->IsOffTheRecord(),
- IsContentsPrerendering(web_contents_),
- false); // is_background
- return l10n_util::GetStringFUTF16(message_id, tab_title);
-}
-
-gfx::ImageSkia TabContentsResource::GetIcon() const {
- if (IsContentsPrerendering(web_contents_))
- return *prerender_icon_;
- favicon::CreateContentFaviconDriverForWebContents(web_contents_);
- return favicon::ContentFaviconDriver::FromWebContents(web_contents_)
- ->GetFavicon()
- .AsImageSkia();
-}
-
-WebContents* TabContentsResource::GetWebContents() const {
- return web_contents_;
-}
-
-TabContentsInformation::TabContentsInformation() {}
-
-TabContentsInformation::~TabContentsInformation() {}
-
-bool TabContentsInformation::CheckOwnership(
- content::WebContents* web_contents) {
- return chrome::FindBrowserWithWebContents(web_contents) ||
- DevToolsWindow::IsDevToolsWindow(web_contents) ||
- IsContentsPrerendering(web_contents);
-}
-
-void TabContentsInformation::GetAll(const NewWebContentsCallback& callback) {
- for (TabContentsIterator iterator; !iterator.done(); iterator.Next()) {
- callback.Run(*iterator);
- WebContents* devtools =
- DevToolsWindow::GetInTabWebContents(*iterator, NULL);
- if (devtools)
- callback.Run(devtools);
- }
-
- // Because a WebContents* may start its life as a prerender, and later be
- // put into a tab, this class tracks the prerender contents in the same
- // way as the tab contents.
- std::vector<Profile*> profiles(
- g_browser_process->profile_manager()->GetLoadedProfiles());
- for (size_t i = 0; i < profiles.size(); ++i) {
- prerender::PrerenderManager* prerender_manager =
- prerender::PrerenderManagerFactory::GetForProfile(profiles[i]);
- if (prerender_manager) {
- const std::vector<content::WebContents*> contentses =
- prerender_manager->GetAllPrerenderingContents();
- for (size_t j = 0; j < contentses.size(); ++j)
- callback.Run(contentses[j]);
- }
- }
-}
-
-std::unique_ptr<RendererResource> TabContentsInformation::MakeResource(
- content::WebContents* web_contents) {
- return std::unique_ptr<RendererResource>(
- new TabContentsResource(web_contents));
-}
-
-} // namespace task_manager
« no previous file with comments | « chrome/browser/task_manager/tab_contents_information.h ('k') | chrome/browser/task_manager/task_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698