| Index: chrome/browser/prerender/prerender_contents.cc
|
| diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
|
| index 88de13f5f99271c013bd1fd42fc7d9f40f9da788..6d104e2b0e36884ee371af60eeee487fb839eefe 100644
|
| --- a/chrome/browser/prerender/prerender_contents.cc
|
| +++ b/chrome/browser/prerender/prerender_contents.cc
|
| @@ -11,6 +11,7 @@
|
| #include <utility>
|
|
|
| #include "base/bind.h"
|
| +#include "base/process/process_metrics.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| @@ -609,17 +610,23 @@ void PrerenderContents::Destroy(FinalStatus final_status) {
|
| base::ProcessMetrics* PrerenderContents::MaybeGetProcessMetrics() {
|
| if (!process_metrics_) {
|
| // If a PrenderContents hasn't started prerending, don't be fully formed.
|
| - if (!GetRenderViewHost() || !GetRenderViewHost()->GetProcess())
|
| - return NULL;
|
| - base::ProcessHandle handle = GetRenderViewHost()->GetProcess()->GetHandle();
|
| + const RenderViewHost* rvh = GetRenderViewHost();
|
| + if (!rvh)
|
| + return nullptr;
|
| +
|
| + const content::RenderProcessHost* rph = rvh->GetProcess();
|
| + if (!rph)
|
| + return nullptr;
|
| +
|
| + base::ProcessHandle handle = rph->GetHandle();
|
| if (handle == base::kNullProcessHandle)
|
| - return NULL;
|
| + return nullptr;
|
| +
|
| #if !defined(OS_MACOSX)
|
| - process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(handle));
|
| + process_metrics_ = base::ProcessMetrics::CreateProcessMetrics(handle);
|
| #else
|
| - process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(
|
| - handle,
|
| - content::BrowserChildProcessHost::GetPortProvider()));
|
| + process_metrics_ = base::ProcessMetrics::CreateProcessMetrics(
|
| + handle, content::BrowserChildProcessHost::GetPortProvider());
|
| #endif
|
| }
|
|
|
|
|