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

--HG--
extra : rebase_source : 39e94507c0288863e495322a6899ff009840870d
This commit is contained in:
David Rajchenbach-Teller 2016-01-15 11:38:03 +01:00
parent 42b6a4145f
commit 583ca7286d
24 changed files with 50 additions and 0 deletions

View File

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

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

@ -24,6 +24,7 @@
#include "nsISimpleEnumerator.h"
#include "nsIWindowsRegKey.h"
#include "gfxFontConstants.h"
#include "GeckoProfiler.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Telemetry.h"
@ -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;

View File

@ -21,6 +21,7 @@
#include "nsServiceManagerUtils.h"
#include "nsTArray.h"
#include "mozilla/Telemetry.h"
#include "GeckoProfiler.h"
#include "nsIWindowsRegKey.h"
#include "nsIFile.h"
@ -1205,6 +1206,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

@ -16,6 +16,7 @@
#include "nsNetCID.h"
#include "nsISupportsPrimitives.h"
#include "nsIURI.h"
#include "GeckoProfiler.h"
class nsWindowsSystemProxySettings final : public nsISystemProxySettings
{
@ -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;

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

@ -25,6 +25,7 @@
#include "nsToolkit.h"
#include "WinUtils.h"
#include "nsPIDOMWindow.h"
#include "GeckoProfiler.h"
using mozilla::IsVistaOrLater;
using mozilla::MakeUnique;
@ -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,

View File

@ -10,6 +10,7 @@
#include <psapi.h>
#include "nsWindowsHelpers.h"
#include "GeckoProfiler.h"
namespace {
@ -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.

View File

@ -11,6 +11,7 @@
#include "nsCOMPtr.h"
#include "nsAutoPtr.h"
#include "nsMemory.h"
#include "GeckoProfiler.h"
#include "nsLocalFile.h"
#include "nsIDirectoryEnumerator.h"
@ -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;

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;