Bug 1224374 - Profiler labels for the 25 top chrome hangs;r=BenWa,MarcoZ

Experience shows that we do not have enough profiler labels to make
BHR hang reports meaningful. This patch adds enough labels to let us
exploit hang reports matching the 25 topmost chrome hangs.

--HG--
extra : rebase_source : b9ec379c58255a250db1020377147c95c82df712
This commit is contained in:
David Rajchenbach-Teller 2016-01-14 23:03:11 +01:00
Родитель 1e52ac9d3a
Коммит 42b6a4145f
10 изменённых файлов: 19 добавлений и 0 удалений

Просмотреть файл

@ -141,6 +141,7 @@ NotificationController::IsUpdatePending()
void
NotificationController::WillRefresh(mozilla::TimeStamp aTime)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
Telemetry::AutoTimer<Telemetry::A11Y_UPDATE_TIME> updateTimer;
// If the document accessible that notification collector was created for is

Просмотреть файл

@ -781,6 +781,7 @@ bool
nsFrameLoader::ShowRemoteFrame(const ScreenIntSize& size,
nsSubDocumentFrame *aFrame)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);
NS_ASSERTION(IsRemoteFrame(), "ShowRemote only makes sense on remote frames.");
if (!mRemoteBrowser && !TryRemoteBrowser()) {

Просмотреть файл

@ -1335,6 +1335,8 @@ nsJSContext::ShrinkGCBuffersNow()
static void
FinishAnyIncrementalGC()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GC);
if (sCCLockedOut) {
// We're in the middle of an incremental GC, so finish it.
JS::PrepareForIncrementalGC(sRuntime);

Просмотреть файл

@ -3102,6 +3102,7 @@ nsObjectLoadingContent::DoStopPlugin(nsPluginInstanceOwner* aInstanceOwner,
NS_IMETHODIMP
nsObjectLoadingContent::StopPluginInstance()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
// Clear any pending events
mPendingInstantiateEvent = nullptr;
mPendingCheckPluginStopEvent = nullptr;

Просмотреть файл

@ -1237,6 +1237,8 @@ ContentParent::CreateBrowserOrApp(const TabContext& aContext,
Element* aFrameElement,
ContentParent* aOpenerContentParent)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
if (!sCanLaunchSubprocesses) {
return nullptr;
}
@ -2386,6 +2388,8 @@ ContentParent::InitializeMembers()
bool
ContentParent::LaunchSubprocess(ProcessPriority aInitialPriority /* = PROCESS_PRIORITY_FOREGROUND */)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
std::vector<std::string> extraArgs;
if (mIsNuwaProcess) {
extraArgs.push_back("-nuwa");
@ -3642,6 +3646,8 @@ ContentParent::ForceKillTimerCallback(nsITimer* aTimer, void* aClosure)
void
ContentParent::KillHard(const char* aReason)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
// On Windows, calling KillHard multiple times causes problems - the
// process handle becomes invalid on the first call, causing a second call
// to crash our process - more details in bug 890840.

Просмотреть файл

@ -1366,6 +1366,7 @@ nsresult nsPluginHost::EnsurePluginLoaded(nsPluginTag* aPluginTag)
nsresult
nsPluginHost::GetPluginForContentProcess(uint32_t aPluginId, nsNPAPIPlugin** aPlugin)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
MOZ_ASSERT(XRE_IsParentProcess());
// If plugins haven't been scanned yet, do so now

Просмотреть файл

@ -110,6 +110,7 @@ mozilla::plugins::SetupBridge(uint32_t aPluginId,
nsresult* rv,
uint32_t* runID)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
if (NS_WARN_IF(!rv) || NS_WARN_IF(!runID)) {
return false;
}

Просмотреть файл

@ -206,6 +206,7 @@ static void DestroyTextureData(TextureData* aTextureData, ISurfaceAllocator* aAl
void
TextureChild::ActorDestroy(ActorDestroyReason why)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);
mWaitForRecycle = nullptr;
if (mTextureData) {

Просмотреть файл

@ -14,6 +14,8 @@
#include "mozilla/dom/BindingUtils.h"
#include "nsGlobalWindow.h"
#include "GeckoProfiler.h"
#include "nsID.h"
using namespace js;
@ -172,6 +174,8 @@ bool
AddonWrapper<Base>::get(JSContext* cx, JS::Handle<JSObject*> wrapper, JS::Handle<Value> receiver,
JS::Handle<jsid> id, JS::MutableHandle<JS::Value> vp) const
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
Rooted<JSPropertyDescriptor> desc(cx);
if (!InterposeProperty(cx, wrapper, nullptr, id, &desc))
return false;

Просмотреть файл

@ -82,6 +82,7 @@ public:
explicit AsyncFrameInit(nsIFrame* aFrame) : mFrame(aFrame) {}
NS_IMETHOD Run()
{
PROFILER_LABEL("mozilla", "AsyncFrameInit::Run", js::ProfileEntry::Category::OTHER);
if (mFrame.IsAlive()) {
static_cast<nsSubDocumentFrame*>(mFrame.GetFrame())->ShowViewer();
}