Skip to content

Commit

Permalink
Bug 1224374 - Profiler labels for the top 26-100 chrome hangs;r=BenWa
Browse files Browse the repository at this point in the history
  • Loading branch information
David Rajchenbach-Teller committed Jan 15, 2016
1 parent a637119 commit 80c2913
Show file tree
Hide file tree
Showing 24 changed files with 50 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dom/media/webspeech/synth/windows/SapiService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "SapiService.h"
#include "nsServiceManagerUtils.h"
#include "nsWin32Locale.h"
#include "GeckoProfiler.h"

#include "mozilla/dom/nsSynthVoiceRegistry.h"
#include "mozilla/dom/nsSpeechTask.h"
Expand Down Expand Up @@ -196,6 +197,8 @@ SapiService::~SapiService()
bool
SapiService::Init()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

MOZ_ASSERT(!mInitialized);

if (Preferences::GetBool("media.webspeech.synth.test") ||
Expand Down
4 changes: 4 additions & 0 deletions dom/plugins/base/nsJSNPRuntime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1646,6 +1646,8 @@ NPObjWrapper_Resolve(JSContext *cx, JS::Handle<JSObject*> obj, JS::Handle<jsid>
if (JSID_IS_SYMBOL(id))
return true;

PROFILER_LABEL_FUNC(js::ProfileEntry::Category::JS);

NPObject *npobj = GetNPObject(cx, obj);

if (!npobj || !npobj->_class || !npobj->_class->hasProperty ||
Expand Down Expand Up @@ -2110,6 +2112,8 @@ static bool
NPObjectMember_GetProperty(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
JS::MutableHandleValue vp)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

if (JSID_IS_SYMBOL(id)) {
JS::RootedSymbol sym(cx, JSID_TO_SYMBOL(id));
if (JS::GetSymbolCode(sym) == JS::SymbolCode::toPrimitive) {
Expand Down
3 changes: 3 additions & 0 deletions dom/plugins/base/nsNPAPIPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ nsNPAPIPlugin::RunPluginOOP(const nsPluginTag *aPluginTag)
inline PluginLibrary*
GetNewPluginLibrary(nsPluginTag *aPluginTag)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

if (!aPluginTag) {
return nullptr;
}
Expand All @@ -283,6 +285,7 @@ GetNewPluginLibrary(nsPluginTag *aPluginTag)
nsresult
nsNPAPIPlugin::CreatePlugin(nsPluginTag *aPluginTag, nsNPAPIPlugin** aResult)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
*aResult = nullptr;

if (!aPluginTag) {
Expand Down
3 changes: 3 additions & 0 deletions dom/plugins/base/nsNPAPIPluginInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ nsNPAPIPluginInstance::StopTime()

nsresult nsNPAPIPluginInstance::Initialize(nsNPAPIPlugin *aPlugin, nsPluginInstanceOwner* aOwner, const nsACString& aMIMEType)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
PLUGIN_LOG(PLUGIN_LOG_NORMAL, ("nsNPAPIPluginInstance::Initialize this=%p\n",this));

NS_ENSURE_ARG_POINTER(aPlugin);
Expand Down Expand Up @@ -655,6 +656,8 @@ nsresult nsNPAPIPluginInstance::HandleEvent(void* event, int16_t* result,
if (RUNNING != mRunning)
return NS_OK;

PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

if (!event)
return NS_ERROR_FAILURE;

Expand Down
1 change: 1 addition & 0 deletions dom/plugins/base/nsNPAPIPluginStreamListener.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ nsNPAPIPluginStreamListener::CallURLNotify(NPReason reason)
nsresult
nsNPAPIPluginStreamListener::OnStartBinding(nsPluginStreamListenerPeer* streamPeer)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
if (!mInst || !mInst->CanFireNotifications() || mStreamCleanedUp)
return NS_ERROR_FAILURE;

Expand Down
1 change: 1 addition & 0 deletions dom/plugins/base/nsPluginHost.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3522,6 +3522,7 @@ nsPluginHost::AddHeadersToChannel(const char *aHeadersData,
nsresult
nsPluginHost::StopPluginInstance(nsNPAPIPluginInstance* aInstance)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
if (PluginDestructionGuard::DelayDestroy(aInstance)) {
return NS_OK;
}
Expand Down
2 changes: 2 additions & 0 deletions dom/plugins/base/nsPluginInstanceOwner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3600,6 +3600,8 @@ nsPluginInstanceOwner::UpdateWindowVisibility(bool aVisible)
void
nsPluginInstanceOwner::UpdateDocumentActiveState(bool aIsActive)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

mPluginDocumentActiveState = aIsActive;
#ifndef XP_MACOSX
UpdateWindowPositionAndClipRect(true);
Expand Down
1 change: 1 addition & 0 deletions dom/storage/DOMStorageDBThread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ DOMStorageDBThread::Shutdown()
void
DOMStorageDBThread::SyncPreload(DOMStorageCacheBridge* aCache, bool aForceSync)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::STORAGE);
if (!aForceSync && aCache->LoadedCount()) {
// Preload already started for this cache, just wait for it to finish.
// LoadWait will exit after LoadDone on the cache has been called.
Expand Down
2 changes: 2 additions & 0 deletions gfx/thebes/gfxDWriteFontList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,8 @@ gfxDWriteFontEntry::GetFontTable(uint32_t aTag)
nsresult
gfxDWriteFontEntry::ReadCMAP(FontInfoData *aFontInfoData)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);

// attempt this once, if errors occur leave a blank cmap
if (mCharacterMap) {
return NS_OK;
Expand Down
3 changes: 3 additions & 0 deletions gfx/thebes/gfxGDIFontList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "nsISimpleEnumerator.h"
#include "nsIWindowsRegKey.h"
#include "gfxFontConstants.h"
#include "GeckoProfiler.h"

#include "mozilla/MemoryReporting.h"
#include "mozilla/Telemetry.h"
Expand Down Expand Up @@ -143,6 +144,8 @@ GDIFontEntry::GDIFontEntry(const nsAString& aFaceName,
nsresult
GDIFontEntry::ReadCMAP(FontInfoData *aFontInfoData)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

// attempt this once, if errors occur leave a blank cmap
if (mCharacterMap) {
return NS_OK;
Expand Down
3 changes: 3 additions & 0 deletions gfx/thebes/gfxWindowsPlatform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "nsServiceManagerUtils.h"
#include "nsTArray.h"
#include "mozilla/Telemetry.h"
#include "GeckoProfiler.h"

#include "nsIWindowsRegKey.h"
#include "nsIFile.h"
Expand Down Expand Up @@ -1205,6 +1206,8 @@ InvalidateWindowForDeviceReset(HWND aWnd, LPARAM aMsg)
bool
gfxWindowsPlatform::UpdateForDeviceReset()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);

if (!DidRenderingDeviceReset()) {
return false;
}
Expand Down
1 change: 1 addition & 0 deletions image/FrameAnimator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ FrameAnimator::AdvanceFrame(TimeStamp aTime)
{
NS_ASSERTION(aTime <= TimeStamp::Now(),
"Given time appears to be in the future");
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);

uint32_t currentFrameIndex = mCurrentAnimationFrameIndex;
uint32_t nextFrameIndex = currentFrameIndex + 1;
Expand Down
2 changes: 2 additions & 0 deletions ipc/glue/GeckoChildProcessHost.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,8 @@ GeckoChildProcessHost::AsyncLaunch(std::vector<std::string> aExtraOpts,
bool
GeckoChildProcessHost::WaitUntilConnected(int32_t aTimeoutMs)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

// NB: this uses a different mechanism than the chromium parent
// class.
PRIntervalTime timeoutTicks = (aTimeoutMs > 0) ?
Expand Down
1 change: 1 addition & 0 deletions js/ipc/WrapperOwner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ const char CPOWProxyHandler::family = 0;
const CPOWProxyHandler CPOWProxyHandler::singleton;

#define FORWARD(call, args) \
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::JS); \
WrapperOwner* owner = OwnerOf(proxy); \
if (!owner->active()) { \
JS_ReportError(cx, "cannot use a CPOW whose process is gone"); \
Expand Down
1 change: 1 addition & 0 deletions js/xpconnect/src/XPCComponents.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3010,6 +3010,7 @@ nsXPCComponents_Utils::SetGCZeal(int32_t aValue, JSContext* cx)
NS_IMETHODIMP
nsXPCComponents_Utils::NukeSandbox(HandleValue obj, JSContext* cx)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::JS);
NS_ENSURE_TRUE(obj.isObject(), NS_ERROR_INVALID_ARG);
JSObject* wrapper = &obj.toObject();
NS_ENSURE_TRUE(IsWrapper(wrapper), NS_ERROR_INVALID_ARG);
Expand Down
3 changes: 3 additions & 0 deletions startupcache/StartupCache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,10 @@ GetBufferFromZipArchive(nsZipArchive *zip, bool doCRC, const char* id,
nsresult
StartupCache::GetBuffer(const char* id, char** outbuf, uint32_t* length)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

NS_ASSERTION(NS_IsMainThread(), "Startup cache only available on main thread");

WaitOnWriteThread();
if (!mStartupWriteInitiated) {
CacheEntry* entry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1310,6 +1310,7 @@ nsUrlClassifierDBService::ClassifyLocalWithTables(nsIURI *aURI,
const nsACString & aTables,
nsACString & aTableResults)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
MOZ_ASSERT(NS_IsMainThread(), "ClassifyLocalWithTables must be on main thread");

nsCOMPtr<nsIURI> uri = NS_GetInnermostURI(aURI);
Expand Down
2 changes: 2 additions & 0 deletions toolkit/system/windowsproxy/nsWindowsSystemProxySettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "nsNetCID.h"
#include "nsISupportsPrimitives.h"
#include "nsIURI.h"
#include "GeckoProfiler.h"

class nsWindowsSystemProxySettings final : public nsISystemProxySettings
{
Expand Down Expand Up @@ -203,6 +204,7 @@ nsWindowsSystemProxySettings::PatternMatch(const nsACString& aHost,
nsresult
nsWindowsSystemProxySettings::GetPACURI(nsACString& aResult)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::STORAGE);
nsresult rv;
uint32_t flags = 0;
nsAutoString buf;
Expand Down
2 changes: 2 additions & 0 deletions toolkit/xre/nsXREDirProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -910,6 +910,8 @@ nsXREDirProvider::DoStartup()
void
nsXREDirProvider::DoShutdown()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

if (mProfileNotified) {
nsCOMPtr<nsIObserverService> obsSvc =
mozilla::services::GetObserverService();
Expand Down
2 changes: 2 additions & 0 deletions widget/nsBaseDragService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ nsBaseDragService::InvokeDragSession(nsIDOMNode *aDOMNode,
nsIScriptableRegion* aDragRgn,
uint32_t aActionType)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

NS_ENSURE_TRUE(aDOMNode, NS_ERROR_INVALID_ARG);
NS_ENSURE_TRUE(mSuppressLevel == 0, NS_ERROR_FAILURE);

Expand Down
2 changes: 2 additions & 0 deletions widget/windows/nsFilePicker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "nsToolkit.h"
#include "WinUtils.h"
#include "nsPIDOMWindow.h"
#include "GeckoProfiler.h"

using mozilla::IsVistaOrLater;
using mozilla::MakeUnique;
Expand Down Expand Up @@ -868,6 +869,7 @@ nsFilePicker::ShowXPFilePicker(const nsString& aInitialDir)
bool
nsFilePicker::ShowFilePicker(const nsString& aInitialDir, bool &aWasInitError)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
RefPtr<IFileDialog> dialog;
if (mMode != modeSave) {
if (FAILED(CoCreateInstance(CLSID_FileOpenDialog, nullptr, CLSCTX_INPROC,
Expand Down
3 changes: 3 additions & 0 deletions xpcom/io/FileUtilsWin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <psapi.h>

#include "nsWindowsHelpers.h"
#include "GeckoProfiler.h"

namespace {

Expand All @@ -36,6 +37,8 @@ bool
HandleToFilename(HANDLE aHandle, const LARGE_INTEGER& aOffset,
nsAString& aFilename)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::NETWORK);

aFilename.Truncate();
// This implementation is nice because it uses fully documented APIs that
// are available on all Windows versions that we support.
Expand Down
2 changes: 2 additions & 0 deletions xpcom/io/nsLocalFileWin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "nsCOMPtr.h"
#include "nsAutoPtr.h"
#include "nsMemory.h"
#include "GeckoProfiler.h"

#include "nsLocalFile.h"
#include "nsIDirectoryEnumerator.h"
Expand Down Expand Up @@ -1070,6 +1071,7 @@ nsLocalFile::ResolveAndStat()
return NS_OK;
}

PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
// we can't resolve/stat anything that isn't a valid NSPR addressable path
if (mWorkingPath.IsEmpty()) {
return NS_ERROR_FILE_INVALID_PATH;
Expand Down
2 changes: 2 additions & 0 deletions xpfe/appshell/nsXULWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,8 @@ NS_IMETHODIMP nsXULWindow::RemoveChildWindow(nsIXULWindow *aChild)

NS_IMETHODIMP nsXULWindow::ShowModal()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);

// Store locally so it doesn't die on us
nsCOMPtr<nsIWidget> window = mWindow;
nsCOMPtr<nsIXULWindow> tempRef = this;
Expand Down

0 comments on commit 80c2913

Please sign in to comment.