Commit 88afb7e7 authored by afakhry's avatar afakhry Committed by Commit bot

New Task Manager - Phase 1.3.1.B: SubframeTask

Implement SubframeTask to represent out-of-process iframes.

R=nick@chromium.org
BUG=470988

Review URL: https://codereview.chromium.org/1137183002

Cr-Commit-Position: refs/heads/master@{#329889}
parent 772b4792
...@@ -94,6 +94,10 @@ class Task { ...@@ -94,6 +94,10 @@ class Task {
const base::ProcessHandle& process_handle() const { return process_handle_; } const base::ProcessHandle& process_handle() const { return process_handle_; }
const base::ProcessId& process_id() const { return process_id_; } const base::ProcessId& process_id() const { return process_id_; }
protected:
void set_title(const base::string16& new_title) { title_ = new_title; }
void set_icon(const gfx::ImageSkia& new_icon) { icon_ = new_icon; }
private: private:
// The unique ID of this task. // The unique ID of this task.
const int64 task_id_; const int64 task_id_;
......
// 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/subframe_task.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/site_instance.h"
#include "ui/base/l10n/l10n_util.h"
namespace task_management {
namespace {
base::string16 AdjustTitle(const content::SiteInstance* site_instance) {
DCHECK(site_instance);
int message_id = site_instance->GetBrowserContext()->IsOffTheRecord() ?
IDS_TASK_MANAGER_SUBFRAME_INCOGNITO_PREFIX :
IDS_TASK_MANAGER_SUBFRAME_PREFIX;
return l10n_util::GetStringFUTF16(message_id, base::UTF8ToUTF16(
site_instance->GetSiteURL().spec()));
}
} // namespace
SubframeTask::SubframeTask(content::RenderFrameHost* render_frame_host)
: RendererTask(AdjustTitle(render_frame_host->GetSiteInstance()),
nullptr,
render_frame_host->GetProcess()->GetHandle(),
render_frame_host->GetProcess()) {
}
SubframeTask::~SubframeTask() {
}
void SubframeTask::OnTitleChanged(content::NavigationEntry* entry) {
// This will be called when the title changes on the WebContents's main frame,
// but this Task represents other frames, so we don't care.
}
void SubframeTask::OnFaviconChanged() {
// This will be called when the favicon changes on the WebContents's main
// frame, but this Task represents other frames, so we don't care.
}
} // namespace task_management
// 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.
#ifndef CHROME_BROWSER_TASK_MANAGEMENT_PROVIDERS_WEB_CONTENTS_SUBFRAME_TASK_H_
#define CHROME_BROWSER_TASK_MANAGEMENT_PROVIDERS_WEB_CONTENTS_SUBFRAME_TASK_H_
#include "chrome/browser/task_management/providers/web_contents/renderer_task.h"
namespace content {
class RenderFrameHost;
} // namespace content
namespace task_management {
// Defines a concrete renderer task that can represent processes hosting
// out-of-process iframes.
class SubframeTask : public RendererTask {
public:
explicit SubframeTask(content::RenderFrameHost* render_frame_host);
~SubframeTask() override;
// task_management::RendererTask:
void OnTitleChanged(content::NavigationEntry* entry) override;
void OnFaviconChanged() override;
private:
DISALLOW_COPY_AND_ASSIGN(SubframeTask);
};
} // namespace task_management
#endif // CHROME_BROWSER_TASK_MANAGEMENT_PROVIDERS_WEB_CONTENTS_SUBFRAME_TASK_H_
...@@ -2920,6 +2920,8 @@ ...@@ -2920,6 +2920,8 @@
'browser/task_management/providers/task.h', 'browser/task_management/providers/task.h',
'browser/task_management/providers/web_contents/renderer_task.cc', 'browser/task_management/providers/web_contents/renderer_task.cc',
'browser/task_management/providers/web_contents/renderer_task.h', 'browser/task_management/providers/web_contents/renderer_task.h',
'browser/task_management/providers/web_contents/subframe_task.cc',
'browser/task_management/providers/web_contents/subframe_task.h',
# Old Task Manager Sources: # Old Task Manager Sources:
'browser/task_manager/background_information.cc', 'browser/task_manager/background_information.cc',
......
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