Backed out changeset 27b1dd843116 (bug 1281793)

This commit is contained in:
Carsten "Tomcat" Book 2016-06-28 17:04:49 +02:00
Родитель 0f67fc8441
Коммит 0f88d840e4
8 изменённых файлов: 196 добавлений и 2 удалений

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

@ -284,6 +284,7 @@ static bool gMouseDown = false;
static bool gDragServiceDisabled = false;
static FILE *gDumpFile = nullptr;
static uint32_t gSerialCounter = 0;
static uint32_t gTimeoutsRecentlySet = 0;
static TimeStamp gLastRecordedRecentTimeouts;
#define STATISTICS_INTERVAL (30 * PR_MSEC_PER_SEC)
@ -9235,6 +9236,8 @@ nsGlobalWindow::ShowModalDialogOuter(const nsAString& aUrl, nsIVariant* aArgumen
return nullptr;
}
Telemetry::Accumulate(Telemetry::DOM_WINDOW_SHOWMODALDIALOG_USED, true);
RefPtr<DialogValueHolder> argHolder =
new DialogValueHolder(nsContentUtils::SubjectPrincipal(), aArgument);
@ -12073,6 +12076,7 @@ nsGlobalWindow::SetTimeoutOrInterval(nsIScriptTimeoutHandler *aHandler,
timeout->mPrincipal = ourPrincipal;
}
++gTimeoutsRecentlySet;
TimeDuration delta = TimeDuration::FromMilliseconds(realInterval);
if (!IsFrozen() && !mTimeoutsSuspendDepth) {
@ -12455,6 +12459,9 @@ nsGlobalWindow::RunTimeout(nsTimeout *aTimeout)
TimeDuration recordingInterval = TimeDuration::FromMilliseconds(STATISTICS_INTERVAL);
if (gLastRecordedRecentTimeouts.IsNull() ||
now - gLastRecordedRecentTimeouts > recordingInterval) {
uint32_t count = gTimeoutsRecentlySet;
gTimeoutsRecentlySet = 0;
Telemetry::Accumulate(Telemetry::DOM_TIMERS_RECENTLY_SET, count);
gLastRecordedRecentTimeouts = now;
}
@ -12474,6 +12481,8 @@ nsGlobalWindow::RunTimeout(nsTimeout *aTimeout)
// the logic in ResetTimersForNonBackgroundWindow will need to change.
mTimeoutInsertionPoint = dummy_timeout;
Telemetry::AutoCounter<Telemetry::DOM_TIMERS_FIRED_PER_NATIVE_TIMEOUT> timeoutsRan;
for (nsTimeout *timeout = mTimeouts.getFirst();
timeout != dummy_timeout && !IsFrozen();
timeout = nextTimeout) {
@ -12507,6 +12516,7 @@ nsGlobalWindow::RunTimeout(nsTimeout *aTimeout)
}
// This timeout is good to run
++timeoutsRan;
bool timeout_was_cleared = RunTimeoutHandler(timeout, scx);
if (timeout_was_cleared) {

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

@ -240,6 +240,9 @@ nsRange::~nsRange()
{
NS_ASSERTION(!IsInSelection(), "deleting nsRange that is in use");
// Maybe we can remove Detach() -- bug 702948.
Telemetry::Accumulate(Telemetry::DOM_RANGE_DETACHED, mIsDetached);
// we want the side effects (releases and list removals)
DoSetRange(nullptr, 0, nullptr, 0, nullptr);
}
@ -249,6 +252,7 @@ nsRange::nsRange(nsINode* aNode)
, mStartOffset(0)
, mEndOffset(0)
, mIsPositioned(false)
, mIsDetached(false)
, mMaySpanAnonymousSubtrees(false)
, mIsGenerated(false)
, mStartOffsetWasIncremented(false)
@ -2820,6 +2824,8 @@ nsRange::ToString(nsAString& aReturn)
NS_IMETHODIMP
nsRange::Detach()
{
// No-op, but still set mIsDetached for telemetry (bug 702948)
mIsDetached = true;
return NS_OK;
}

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

@ -345,6 +345,7 @@ protected:
int32_t mEndOffset;
bool mIsPositioned : 1;
bool mIsDetached : 1;
bool mMaySpanAnonymousSubtrees : 1;
bool mIsGenerated : 1;
bool mStartOffsetWasIncremented : 1;

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

@ -112,6 +112,13 @@ DOMStorage::SetItem(const nsAString& aKey, const nsAString& aData,
return;
}
Telemetry::Accumulate(GetType() == LocalStorage
? Telemetry::LOCALDOMSTORAGE_KEY_SIZE_BYTES
: Telemetry::SESSIONDOMSTORAGE_KEY_SIZE_BYTES, aKey.Length());
Telemetry::Accumulate(GetType() == LocalStorage
? Telemetry::LOCALDOMSTORAGE_VALUE_SIZE_BYTES
: Telemetry::SESSIONDOMSTORAGE_VALUE_SIZE_BYTES, aData.Length());
nsString data;
bool ok = data.Assign(aData, fallible);
if (!ok) {

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

@ -489,6 +489,8 @@ DOMStorageDBThread::OpenAndUpdateDatabase()
nsresult
DOMStorageDBThread::InitDatabase()
{
Telemetry::AutoTimer<Telemetry::LOCALDOMSTORAGE_INIT_DATABASE_MS> timer;
nsresult rv;
// Here we are on the worker thread. This opens the worker connection.

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

@ -1650,6 +1650,8 @@ PresShell::Initialize(nscoord aWidth, nscoord aHeight)
return NS_OK;
}
mozilla::TimeStamp timerStart = mozilla::TimeStamp::Now();
NS_ASSERTION(!mDidInitialize, "Why are we being called?");
nsCOMPtr<nsIPresShell> kungFuDeathGrip(this);
@ -1810,6 +1812,11 @@ PresShell::Initialize(nscoord aWidth, nscoord aHeight)
ScheduleBeforeFirstPaint();
}
if (root && root->IsXULElement()) {
mozilla::Telemetry::AccumulateTimeDelta(Telemetry::XUL_INITIAL_FRAME_CONSTRUCTION,
timerStart);
}
return NS_OK; //XXX this needs to be real. MMP
}
@ -9824,9 +9831,17 @@ PresShell::ProcessReflowCommands(bool aInterruptible)
TimeDuration elapsed = TimeStamp::Now() - timerStart;
int32_t intElapsed = int32_t(elapsed.ToMilliseconds());
if (!mDocument->GetRootElement()->IsXULElement() && mIsActive) {
Telemetry::Accumulate(Telemetry::HTML_FOREGROUND_REFLOW_MS_2, intElapsed);
Telemetry::ID id;
if (mDocument->GetRootElement()->IsXULElement()) {
id = mIsActive
? Telemetry::XUL_FOREGROUND_REFLOW_MS
: Telemetry::XUL_BACKGROUND_REFLOW_MS;
} else {
id = mIsActive
? Telemetry::HTML_FOREGROUND_REFLOW_MS_2
: Telemetry::HTML_BACKGROUND_REFLOW_MS_2;
}
Telemetry::Accumulate(id, intElapsed);
if (intElapsed > NS_LONG_REFLOW_TIME_MS) {
Telemetry::Accumulate(Telemetry::LONG_REFLOW_INTERRUPTIBLE,
aInterruptible ? 1 : 0);

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

@ -4094,6 +4094,22 @@
"n_buckets": 30,
"description": "Firefox: Time taken to kick off image compression of the canvas that will be used during swiping through history (ms)."
},
"FX_TAB_ANIM_OPEN_MS": {
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "Firefox: Time taken by the tab opening animation in milliseconds *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"FX_TAB_ANIM_CLOSE_MS": {
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "Firefox: Time taken by the tab closing animation in milliseconds *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"FX_TAB_ANIM_OPEN_PREVIEW_FRAME_INTERVAL_MS": {
"expires_in_version": "never",
"kind": "exponential",
@ -4118,6 +4134,13 @@
"n_buckets": 50,
"description": "Average frame interval during any tab open/close animation (excluding tabstrip scroll)"
},
"FX_TAB_ANIM_ANY_FRAME_PAINT_MS": {
"expires_in_version": "40",
"kind": "exponential",
"high": 500,
"n_buckets": 30,
"description": "Average paint duration during any tab open/close animation (excluding tabstrip scroll) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"FX_REFRESH_DRIVER_CHROME_FRAME_DELAY_MS": {
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
"expires_in_version": "never",
@ -4181,6 +4204,13 @@
"n_buckets": 20,
"description": "Firefox: Time in ms spent on switching tabs in response to a tab click"
},
"FX_IDENTITY_POPUP_OPEN_MS": {
"expires_in_version": "40",
"kind": "exponential",
"high": 1000,
"n_buckets": 10,
"description": "Firefox: Time taken by the identity popup to open in milliseconds"
},
"FX_BOOKMARKS_TOOLBAR_INIT_MS": {
"expires_in_version": "never",
"kind": "exponential",
@ -4614,6 +4644,20 @@
"kind": "flag",
"description": "Whether the decoder for ISO-8859-5 has been instantiated in this session."
},
"XUL_FOREGROUND_REFLOW_MS": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "XUL reflows in foreground windows (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"XUL_BACKGROUND_REFLOW_MS": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "XUL reflows in background windows (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"HTML_FOREGROUND_REFLOW_MS_2": {
"expires_in_version": "never",
"kind": "exponential",
@ -4621,16 +4665,61 @@
"n_buckets": 20,
"description": "HTML reflows in foreground windows (ms)"
},
"HTML_BACKGROUND_REFLOW_MS_2": {
"expires_in_version": "40",
"kind": "exponential",
"high": 10000,
"n_buckets": 20,
"description": "HTML reflows in background windows (ms)"
},
"LONG_REFLOW_INTERRUPTIBLE": {
"expires_in_version": "never",
"kind": "boolean",
"description": "Long running reflow, interruptible or not"
},
"XUL_INITIAL_FRAME_CONSTRUCTION": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "initial xul frame construction *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"XMLHTTPREQUEST_ASYNC_OR_SYNC": {
"expires_in_version": "never",
"kind": "boolean",
"description": "Type of XMLHttpRequest, async or sync"
},
"DOM_TIMERS_FIRED_PER_NATIVE_TIMEOUT": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "DOM: Timer handlers called per native timer expiration *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"DOM_TIMERS_RECENTLY_SET": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "DOM: setTimeout/setInterval calls recently (last 30s or more) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"DOM_RANGE_DETACHED": {
"expires_in_version": "40",
"kind": "boolean",
"description": "DOM: Ranges that are detached on destruction (bug 702948) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
},
"DOM_WINDOW_SHOWMODALDIALOG_USED": {
"expires_in_version": "41",
"kind": "flag",
"description": "Whether Window.showModalDialog was used in this session"
},
"LOCALDOMSTORAGE_INIT_DATABASE_MS": {
"expires_in_version": "40",
"kind": "exponential",
"high": 3000,
"n_buckets": 10,
"description": "Time to open the localStorage database (ms)"
},
"LOCALDOMSTORAGE_SHUTDOWN_DATABASE_MS": {
"expires_in_version": "default",
"kind": "exponential",
@ -4706,6 +4795,38 @@
"n_buckets": 10,
"description": "Time to fetch LocalStorage data before we can expose them as session only data (ms)"
},
"LOCALDOMSTORAGE_KEY_SIZE_BYTES": {
"expires_in_version": "40",
"kind": "exponential",
"low": 1024,
"high": 32768,
"n_buckets": 10,
"description": "DOM storage: size of keys stored in localStorage"
},
"LOCALDOMSTORAGE_VALUE_SIZE_BYTES": {
"expires_in_version": "40",
"kind": "exponential",
"low": 1024,
"high": 32768,
"n_buckets": 10,
"description": "DOM storage: size of values stored in localStorage"
},
"SESSIONDOMSTORAGE_KEY_SIZE_BYTES": {
"expires_in_version": "40",
"kind": "exponential",
"low": 1024,
"high": 32768,
"n_buckets": 10,
"description": "DOM storage: size of keys stored in sessionStorage"
},
"SESSIONDOMSTORAGE_VALUE_SIZE_BYTES": {
"expires_in_version": "40",
"kind": "exponential",
"low": 1024,
"high": 32768,
"n_buckets": 10,
"description": "DOM storage: size of values stored in sessionStorage"
},
"RANGE_CHECKSUM_ERRORS": {
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
"expires_in_version": "never",

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

@ -393,6 +393,10 @@
"DNS_RENEWAL_TIME",
"DNS_RENEWAL_TIME_FOR_TTL",
"DNT_USAGE",
"DOM_RANGE_DETACHED",
"DOM_TIMERS_FIRED_PER_NATIVE_TIMEOUT",
"DOM_TIMERS_RECENTLY_SET",
"DOM_WINDOW_SHOWMODALDIALOG_USED",
"DWRITEFONT_DELAYEDINITFONTLIST_COLLECT",
"DWRITEFONT_DELAYEDINITFONTLIST_COUNT",
"DWRITEFONT_DELAYEDINITFONTLIST_TOTAL",
@ -443,6 +447,7 @@
"FX_BROWSER_FULLSCREEN_USED",
"FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE",
"FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE",
"FX_IDENTITY_POPUP_OPEN_MS",
"FX_MIGRATION_ENTRY_POINT",
"FX_MIGRATION_ERRORS",
"FX_MIGRATION_HOMEPAGE_IMPORTED",
@ -456,6 +461,7 @@
"FX_SESSION_RESTORE_NUMBER_OF_WINDOWS_RESTORED",
"FX_TABLETMODE_PAGE_LOAD",
"FX_TAB_ANIM_ANY_FRAME_INTERVAL_MS",
"FX_TAB_ANIM_ANY_FRAME_PAINT_MS",
"FX_TAB_ANIM_OPEN_FRAME_INTERVAL_MS",
"FX_TAB_ANIM_OPEN_PREVIEW_FRAME_INTERVAL_MS",
"FX_TAB_CLICK_MS",
@ -485,6 +491,7 @@
"GRADIENT_DURATION",
"GRADIENT_RETENTION_TIME",
"HISTORY_LASTVISITED_TREE_QUERY_TIME_MS",
"HTML_BACKGROUND_REFLOW_MS_2",
"HTML_FOREGROUND_REFLOW_MS_2",
"HTTPCONNMGR_TOTAL_SPECULATIVE_CONN",
"HTTPCONNMGR_UNUSED_SPECULATIVE_CONN",
@ -572,12 +579,15 @@
"LOCALDOMSTORAGE_GETKEY_BLOCKING_MS",
"LOCALDOMSTORAGE_GETLENGTH_BLOCKING_MS",
"LOCALDOMSTORAGE_GETVALUE_BLOCKING_MS",
"LOCALDOMSTORAGE_INIT_DATABASE_MS",
"LOCALDOMSTORAGE_KEY_SIZE_BYTES",
"LOCALDOMSTORAGE_PRELOAD_PENDING_ON_FIRST_ACCESS",
"LOCALDOMSTORAGE_REMOVEKEY_BLOCKING_MS",
"LOCALDOMSTORAGE_SESSIONONLY_PRELOAD_BLOCKING_MS",
"LOCALDOMSTORAGE_SETVALUE_BLOCKING_MS",
"LOCALDOMSTORAGE_SHUTDOWN_DATABASE_MS",
"LOCALDOMSTORAGE_UNLOAD_BLOCKING_MS",
"LOCALDOMSTORAGE_VALUE_SIZE_BYTES",
"LONG_REFLOW_INTERRUPTIBLE",
"LOOP_AUDIO_QUALITY_INBOUND_BANDWIDTH_KBITS",
"LOOP_AUDIO_QUALITY_OUTBOUND_BANDWIDTH_KBITS",
@ -836,6 +846,8 @@
"SERVICE_WORKER_SPAWN_GETS_QUEUED",
"SERVICE_WORKER_UPDATED",
"SERVICE_WORKER_WAS_SPAWNED",
"SESSIONDOMSTORAGE_KEY_SIZE_BYTES",
"SESSIONDOMSTORAGE_VALUE_SIZE_BYTES",
"SHARED_WORKER_SPAWN_GETS_QUEUED",
"SHOULD_AUTO_DETECT_LANGUAGE",
"SHOULD_TRANSLATION_UI_APPEAR",
@ -1005,7 +1017,10 @@
"WORD_CACHE_MISSES_CHROME",
"WORD_CACHE_MISSES_CONTENT",
"XMLHTTPREQUEST_ASYNC_OR_SYNC",
"XUL_BACKGROUND_REFLOW_MS",
"XUL_CACHE_DISABLED",
"XUL_FOREGROUND_REFLOW_MS",
"XUL_INITIAL_FRAME_CONSTRUCTION"
],
"bug_numbers": [
"A11Y_CONSUMERS",
@ -1455,6 +1470,10 @@
"DNS_RENEWAL_TIME",
"DNS_RENEWAL_TIME_FOR_TTL",
"DNT_USAGE",
"DOM_RANGE_DETACHED",
"DOM_TIMERS_FIRED_PER_NATIVE_TIMEOUT",
"DOM_TIMERS_RECENTLY_SET",
"DOM_WINDOW_SHOWMODALDIALOG_USED",
"DWRITEFONT_DELAYEDINITFONTLIST_COLLECT",
"DWRITEFONT_DELAYEDINITFONTLIST_COUNT",
"DWRITEFONT_DELAYEDINITFONTLIST_TOTAL",
@ -1507,6 +1526,7 @@
"FX_BROWSER_FULLSCREEN_USED",
"FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE",
"FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE",
"FX_IDENTITY_POPUP_OPEN_MS",
"FX_MIGRATION_ENTRY_POINT",
"FX_MIGRATION_ERRORS",
"FX_MIGRATION_HOMEPAGE_IMPORTED",
@ -1549,7 +1569,10 @@
"FX_SESSION_RESTORE_WRITE_FILE_MS",
"FX_TABLETMODE_PAGE_LOAD",
"FX_TAB_ANIM_ANY_FRAME_INTERVAL_MS",
"FX_TAB_ANIM_ANY_FRAME_PAINT_MS",
"FX_TAB_ANIM_CLOSE_MS",
"FX_TAB_ANIM_OPEN_FRAME_INTERVAL_MS",
"FX_TAB_ANIM_OPEN_MS",
"FX_TAB_ANIM_OPEN_PREVIEW_FRAME_INTERVAL_MS",
"FX_TAB_CLICK_MS",
"FX_TAB_SWITCH_SPINNER_VISIBLE_MS",
@ -1604,6 +1627,7 @@
"GRAPHICS_SANITY_TEST_OS_SNAPSHOT",
"GRAPHICS_SANITY_TEST_REASON",
"HISTORY_LASTVISITED_TREE_QUERY_TIME_MS",
"HTML_BACKGROUND_REFLOW_MS_2",
"HTML_FOREGROUND_REFLOW_MS_2",
"HTTPCONNMGR_TOTAL_SPECULATIVE_CONN",
"HTTPCONNMGR_UNUSED_SPECULATIVE_CONN",
@ -1695,12 +1719,15 @@
"LOCALDOMSTORAGE_GETKEY_BLOCKING_MS",
"LOCALDOMSTORAGE_GETLENGTH_BLOCKING_MS",
"LOCALDOMSTORAGE_GETVALUE_BLOCKING_MS",
"LOCALDOMSTORAGE_INIT_DATABASE_MS",
"LOCALDOMSTORAGE_KEY_SIZE_BYTES",
"LOCALDOMSTORAGE_PRELOAD_PENDING_ON_FIRST_ACCESS",
"LOCALDOMSTORAGE_REMOVEKEY_BLOCKING_MS",
"LOCALDOMSTORAGE_SESSIONONLY_PRELOAD_BLOCKING_MS",
"LOCALDOMSTORAGE_SETVALUE_BLOCKING_MS",
"LOCALDOMSTORAGE_SHUTDOWN_DATABASE_MS",
"LOCALDOMSTORAGE_UNLOAD_BLOCKING_MS",
"LOCALDOMSTORAGE_VALUE_SIZE_BYTES",
"LONG_REFLOW_INTERRUPTIBLE",
"LOOP_AUDIO_QUALITY_INBOUND_BANDWIDTH_KBITS",
"LOOP_AUDIO_QUALITY_OUTBOUND_BANDWIDTH_KBITS",
@ -2027,6 +2054,8 @@
"SERVICE_WORKER_SPAWN_GETS_QUEUED",
"SERVICE_WORKER_UPDATED",
"SERVICE_WORKER_WAS_SPAWNED",
"SESSIONDOMSTORAGE_KEY_SIZE_BYTES",
"SESSIONDOMSTORAGE_VALUE_SIZE_BYTES",
"SHARED_WORKER_SPAWN_GETS_QUEUED",
"SHOULD_AUTO_DETECT_LANGUAGE",
"SHOULD_TRANSLATION_UI_APPEAR",
@ -2352,7 +2381,10 @@
"WORD_CACHE_MISSES_CHROME",
"WORD_CACHE_MISSES_CONTENT",
"XMLHTTPREQUEST_ASYNC_OR_SYNC",
"XUL_BACKGROUND_REFLOW_MS",
"XUL_CACHE_DISABLED",
"XUL_FOREGROUND_REFLOW_MS",
"XUL_INITIAL_FRAME_CONSTRUCTION"
],
"n_buckets": [
"MEMORY_JS_GC_HEAP",