Bug 1224374 - Profiler labels for the top 26-100 chrome hangs;r=BenWa

This commit is contained in:
David Rajchenbach-Teller 2016-01-15 11:38:03 +01:00
parent 3a3c914116
commit ad8745d7f6
24 changed files with 43 additions and 0 deletions

View File

@ -196,6 +196,8 @@ SapiService::~SapiService()
bool
SapiService::Init()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
MOZ_ASSERT(!mInitialized);
if (Preferences::GetBool("media.webspeech.synth.test") ||

View File

@ -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 ||
@ -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) {

View File

@ -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;
}
@ -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) {

View File

@ -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);
@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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.

View File

@ -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;

View File

@ -143,6 +143,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;

View File

@ -1205,6 +1205,8 @@ InvalidateWindowForDeviceReset(HWND aWnd, LPARAM aMsg)
bool
gfxWindowsPlatform::UpdateForDeviceReset()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::GRAPHICS);
if (!DidRenderingDeviceReset()) {
return false;
}

View File

@ -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;

View File

@ -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) ?

View File

@ -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"); \

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -203,6 +203,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;

View File

@ -910,6 +910,8 @@ nsXREDirProvider::DoStartup()
void
nsXREDirProvider::DoShutdown()
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
if (mProfileNotified) {
nsCOMPtr<nsIObserverService> obsSvc =
mozilla::services::GetObserverService();

View File

@ -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);

View File

@ -868,6 +868,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,

View File

@ -36,6 +36,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.

View File

@ -1070,6 +1070,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;

View File

@ -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;