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

Side by Side Diff: chrome/browser/performance_monitor/performance_monitor.cc

Issue 10987040: Fix CPM casting issue; refactor renderer crash events (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/performance_monitor/performance_monitor.h" 5 #include "chrome/browser/performance_monitor/performance_monitor.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 content::Details<Extension>(details).ptr()); 479 content::Details<Extension>(details).ptr());
480 } 480 }
481 break; 481 break;
482 } 482 }
483 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: { 483 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: {
484 AddExtensionEvent(EVENT_EXTENSION_UNINSTALL, 484 AddExtensionEvent(EVENT_EXTENSION_UNINSTALL,
485 content::Details<Extension>(details).ptr()); 485 content::Details<Extension>(details).ptr());
486 break; 486 break;
487 } 487 }
488 case content::NOTIFICATION_RENDERER_PROCESS_HANG: { 488 case content::NOTIFICATION_RENDERER_PROCESS_HANG: {
489 content::WebContents* contents = 489 AddEvent(util::CreateRendererFailureEvent(base::Time::Now(),
490 content::Source<content::WebContents>(source).ptr(); 490 EVENT_RENDERER_HANG));
491 AddEvent(util::CreateRendererFreezeEvent(base::Time::Now(),
492 contents->GetURL().spec()));
493 break; 491 break;
494 } 492 }
495 case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: { 493 case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: {
496 AddCrashEvent(*content::Details< 494 AddRendererClosedEvent(*content::Details<
497 content::RenderProcessHost::RendererClosedDetails>(details).ptr()); 495 content::RenderProcessHost::RendererClosedDetails>(details).ptr());
498 break; 496 break;
499 } 497 }
500 case chrome::NOTIFICATION_PROFILE_ADDED: { 498 case chrome::NOTIFICATION_PROFILE_ADDED: {
501 Profile* profile = content::Source<Profile>(source).ptr(); 499 Profile* profile = content::Source<Profile>(source).ptr();
502 if (!profile->DidLastSessionExitCleanly()) { 500 if (!profile->DidLastSessionExitCleanly()) {
503 BrowserThread::PostBlockingPoolSequencedTask( 501 BrowserThread::PostBlockingPoolSequencedTask(
504 Database::kDatabaseSequenceToken, 502 Database::kDatabaseSequenceToken,
505 FROM_HERE, 503 FROM_HERE,
506 base::Bind( 504 base::Bind(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 AddEvent(util::CreateExtensionEvent(type, 540 AddEvent(util::CreateExtensionEvent(type,
543 base::Time::Now(), 541 base::Time::Now(),
544 extension->id(), 542 extension->id(),
545 extension->name(), 543 extension->name(),
546 extension->url().spec(), 544 extension->url().spec(),
547 extension->location(), 545 extension->location(),
548 extension->VersionString(), 546 extension->VersionString(),
549 extension->description())); 547 extension->description()));
550 } 548 }
551 549
552 void PerformanceMonitor::AddCrashEvent( 550 void PerformanceMonitor::AddRendererClosedEvent(
553 const content::RenderProcessHost::RendererClosedDetails& details) { 551 const content::RenderProcessHost::RendererClosedDetails& details) {
554 // We only care if this is an invalid termination. 552 // We only care if this is an invalid termination.
555 if (details.status == base::TERMINATION_STATUS_NORMAL_TERMINATION || 553 if (details.status == base::TERMINATION_STATUS_NORMAL_TERMINATION ||
556 details.status == base::TERMINATION_STATUS_STILL_RUNNING) 554 details.status == base::TERMINATION_STATUS_STILL_RUNNING)
557 return; 555 return;
558 556
559 // Determine the type of crash. 557 // Determine the type of crash.
560 EventType type = 558 EventType type =
561 details.status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED ? 559 details.status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED ?
562 EVENT_KILLED_BY_OS_CRASH : EVENT_RENDERER_CRASH; 560 EVENT_RENDERER_KILLED : EVENT_RENDERER_CRASH;
563 561
564 AddEvent(util::CreateCrashEvent(base::Time::Now(), type)); 562 AddEvent(util::CreateRendererFailureEvent(base::Time::Now(), type));
565 } 563 }
566 564
567 } // namespace performance_monitor 565 } // namespace performance_monitor
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698