Very high CPU usage on TikTok from toLocaleDateString
Categories
(Core :: JavaScript: Internationalization API, defect)
Tracking
()
People
(Reporter: georgiadis, Assigned: anba)
References
()
Details
(Keywords: webcompat:needs-contact, webcompat:site-report, Whiteboard: [webcompat:sightline])
Attachments
(5 files)
42.98 KB,
text/plain
|
Details | |
57.17 KB,
text/plain
|
Details | |
33 bytes,
text/plain
|
Details | |
1.23 MB,
text/plain
|
Details | |
48 bytes,
text/x-phabricator-request
|
pascalc
:
approval-mozilla-beta+
dmeehan
:
approval-mozilla-release+
pascalc
:
approval-mozilla-esr128+
|
Details | Review |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Steps to reproduce:
- Open TikTok in Firefox (versions 136, or 137 beta).
- Scroll through the feed and play videos.
- Try opening a profile page or engaging with content.
- Experience extreme slowdowns, UI lag, and video stuttering.
Actual results:
- Videos start stuttering badly after scrolling through a few.
- Scrolling becomes painfully slow and unresponsive.
- Profile pages take forever to load.
- The browser feels completely overwhelmed by TikTok’s site, despite normal behavior on Chromium.
Expected results:
TikTok should run smoothly without crippling lag, delayed inputs, or performance issues.
Comment 1•7 months ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Comment 2•7 months ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
It is confirmed by dozens of comments on Reddit:
https://www.reddit.com/r/firefox/comments/1j7as48/tiktoks_site_is_insanely_slow_demanding_on/
Comment 4•7 months ago
|
||
Thanks for reporting! To help diagnose this issue better, please can you:
- Type "about:support" in Firefox and copy-paste its contents here
- Does this reproduce in a clean profile or Troubleshoot Mode?
- Capture a log when the issue occurs:
- In Firefox, ideally freshly started with no other tabs, go to about:logging in a new tab
- Select the Mediapreset
- Enable "stack traces for log messages"
- Click on "Set Log Modules"
- Click Start Logging
- Reproduce the bug
- Back on about:logging, click Stop Logging
- In the new tab that appears with the Firefox Profiler web application, in the top right click the button to upload the profile
- Make sure hidden threads are included and upload, then share the link here or send privately to a Mozilla developer
-See https://paul.cx/public/about-logging-presentation.webm for a video walk-through
- If this used to work in an earlier version of Firefox, please do a bisection to find the exact change that caused this (https://mozilla.github.io/mozregression/)
Comment 6•7 months ago
|
||
Hi mantas! I will ask you the same questions I asked the OP:
- Type "about:support" in Firefox and copy-paste its contents here
- Does this reproduce in a clean profile or Troubleshoot Mode?
- Capture a log when the issue occurs:
- In Firefox, ideally freshly started with no other tabs, go to about:logging in a new tab
- Select the Media preset
- Enable "stack traces for log messages"
- Click on "Set Log Modules"
- Click Start Logging
- Reproduce the bug
- Back on about:logging, click Stop Logging
- In the new tab that appears with the Firefox Profiler web application, in the top right click the button to upload the profile
- Make sure hidden threads are included and upload, then share the link here or send privately to a Mozilla developer
-See https://paul.cx/public/about-logging-presentation.webm for a video walk-through
- If this used to work in an earlier version of Firefox, please do a bisection to find the exact change that caused this (https://mozilla.github.io/mozregression/)
Comment 7•7 months ago
|
||
Same for me,It's incredibily slow on firefox v136 ,It took like 5 to 8 seconds for loading just 1 tiktok reel. please fix this.
did not want to send that comment. not sure how I did it. anyway, I tried to log it but when I signed out of tiktok the sluggishness was gone. now it's gone logged in or not.
Comment 10•7 months ago
|
||
Could anyone try to disable the pref media.hardware-video-decoding.enabled
and then restart Firefox to see if it helps? Thanks.
Comment 11•7 months ago
|
||
(In reply to Alastor Wu [:alwu] from comment #10)
Could anyone try to disable the pref
media.hardware-video-decoding.enabled
and then restart Firefox to see if it helps? Thanks.
It did nothing. Sorry guys I didn't have enough time to fill out a proper bug report as you asked, was busy. Troubleshoot mode doesn't help but clean profile did. On clean profile it works perfectly.
I'm unsure however what causes it. I have reset all cookies and site data (apart from browser history), tried without extensions, reverted other privacy options and it doesn't help. The site literally loads slower (i see loader skeletons on left sidebar) while on new profile i never see them. You can also see the lag as you hover fast on the buttons. On new profile everything is running smoothly.
Any ideas?
Comment 12•7 months ago
|
||
We need a profile, please follow this instruction, thanks!
Comment 13•7 months ago
|
||
Updated•7 months ago
|
Comment 14•7 months ago
|
||
From those profiles, I didn't see any dropped video frames, and video also played correctly. It doesn't seem a media issue, move this bug to another component.
Comment 15•7 months ago
|
||
Updated•7 months ago
|
Comment 16•7 months ago
|
||
In the profile in the comment15, there are some many GC and janking, maybe there are something wrong in their js code. Jeff, do you know who could be the best person to check this issue? Thanks!
Comment hidden (advocacy) |
Updated•7 months ago
|
Comment 18•7 months ago
|
||
Can anyone who's experiencing this post an about:memory report?
Comment 19•7 months ago
|
||
From the "slow" profile, it looks like a huge amount of time is being spent in toLocaleDateString
.
Comment 20•7 months ago
|
||
anba or Tom, do you have any idea what might be going wrong here? I guess a user could have something configured in their profile that would cause toLocaleDateString
to be very slow? That would at least explain why a clean profile doesn't reproduce the issue.
Updated•7 months ago
|
Comment 21•7 months ago
|
||
Or maybe you have some ideas, Dan? I see that you did some Date-related work that landed in 136 (bug 1944621) and 137 (bug 1946525). I don't see how that could cause this kind of JIT CPU usage but maybe you are at least familiar with the code in question. Thanks.
Comment 22•7 months ago
•
|
||
Given the profile, I'm going to move this over to the internationalization component.
Comment 23•7 months ago
|
||
The profile in comment 15 also has what I'd call internationalization related code, but it is more like stuff under intl/icu/source, so it looks different.
Comment 24•7 months ago
|
||
I can reproduce something similar on my machine, where I see 247ms spent in toLocaleDateString, then 473ms spent in a major GC. The CPU is spiking up frequently rather than being completely saturated like in the other profiles, but I do have a very powerful machine.
Comment 25•7 months ago
|
||
I tried this test case on https://jsbench.me/ : new Date((new Date).getTime()-864e5*1).toLocaleDateString("en-US")
On Firefox (Nightly) and Safari (stable), I got a max value of around 45k ops/s.
On Chrome, I got a max value of around 1.2M ops/s.
Comment 26•7 months ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #24)
I can reproduce something similar on my machine, where I see 247ms spent in toLocaleDateString, then 473ms spent in a major GC. The CPU is spiking up frequently rather than being completely saturated like in the other profiles, but I do have a very powerful machine.
I should be more specific that the performance felt okay on my machine, but the internationalization code was still very prominent in a profile.
Comment 27•7 months ago
|
||
Comment 28•7 months ago
|
||
Mind you, there seem to be two different issues mentioned by the reporter. One is the slow UI and the second is the video stuttering.
On my end, visiting the site for the first time (cleared cookies, no account), I am presented with two modals after some time. One to sign in/up and another to select "my interests". Scrolling through videos by (specifically) clicking on the up/down button to go to the previous/next video seems to be visually delayed/slow, but it gets much better after I deal with the aforementioned modals (continue as a guest / skip). It might be the case that if someone blocks these modals with an extension, they get a slower performance indefinitely. This is an issue that was introduced by the site, as older versions of Firefox are affected as well.
The video stuttering issue seems to be related to h265, but it only happens after you scroll a few videos. Disabling hevc in the preferences (media.hevc.enabled:false
) is a workaround for this issue. Hardware acceleration doesn't have any effect at all here (I made sure to restart the browser). I'm not able to provide a profile/log currently, but profiling the video stuttering issue shows the MediaPDecoder thread to be created and destroyed every about 5-6sec, which roughly coincides with the appearance of stutters. I'm on Linux btw.
Comment 29•7 months ago
|
||
(In reply to tgn-ff from comment #28)
The video stuttering issue seems to be related to h265, but it only happens after you scroll a few videos. Disabling hevc in the preferences (
media.hevc.enabled:false
) is a workaround for this issue. Hardware acceleration doesn't have any effect at all here (I made sure to restart the browser). I'm not able to provide a profile/log currently, but profiling the video stuttering issue shows the MediaPDecoder thread to be created and destroyed every about 5-6sec, which roughly coincides with the appearance of stutters. I'm on Linux btw.
Can you file a separate issue for the h265 problem?
Comment 30•7 months ago
|
||
Given our current theory for the cause of the problem, it seems like it should be reproducible in Safari and Gnome Web. Can people try those browsers to see if you see the same problem there?
Comment 31•7 months ago
|
||
The code that seems to be causing the performance problem is: const a = e => new Date((new Date).getTime() - 86400000 * e).toLocaleDateString("en-US")
inside of 40407: (e, t, n) => {
in webapp-desktop.29a7afaa39ea6e4ff3df.js
We should try to measure how often the a
function is being called in different scenarios.
Comment 33•7 months ago
•
|
||
The hotspot of the code unminified looks something like:
const e = 14
const t = '7411334960449127942'
const i = 'slardar_perf_lcp_acc'
const n = {
"3/21/2025":
{ "7411334960449127942": { "session_last_update_time": 1742609038327, "stay_duration": 73.73, "session_cnt": 1, "os": "mac", "browser_brand": "chrome", "screen_resolution": 1930176, "screen_orientation": 1, "cpu_core_number": 16, "network_downlink": 10, "network_rtt": 100, "network_speed_effective_type": "4g", "region": "CA", "launch_mode": "direct", "landing_page": 0, "language_system": "en-ca", "language_app": "en", "timezone": -4, "time_of_day_landing": 23, "day_of_week": 5, "is_local_daytime": 0, "is_login": true, "max_touch_points": 0, "ret_acc": 1, "total_score": 8.06, "hardware_score": 8.06, "login_days_count": 1, "page_view": 3, "others_profile_page_view": 2, "hot_page_view": 1, "slardar_perf_fcp_acc": 0.77, "slardar_perf_fcp_cnt": 1, "vv": 8, "hot_vv": 8, "item_avg_freshness": 213, "item_avg_duration": 875, "item_avg_like_history": 8859600, "item_avg_vv_history": 95700000, "item_avg_share_history": 426579, "item_avg_comment_history": 58606, "item_avg_favorite_history": 525299, "item_avg_resolution": 4320, "item_portrait": 8, "item_100k_vv_vv": 8, "creator_bluev_vv": 2, "creator_1k_follower_vv": 8, "creator_10k_follower_vv": 8, "creator_100k_follower_vv": 7, "hot_item_avg_freshness": 213, "hot_item_avg_duration": 875, "hot_item_avg_like_history": 8859600, "hot_item_avg_vv_history": 95700000, "hot_item_avg_share_history": 426579, "hot_item_avg_comment_history": 58606, "hot_item_avg_favorite_history": 525299, "hot_item_avg_resolution": 4320, "hot_item_portrait": 8, "hot_item_100k_vv_vv": 8, "hot_creator_bluev_vv": 2, "hot_creator_1k_follower_vv": 8, "hot_creator_10k_follower_vv": 8, "hot_creator_100k_follower_vv": 7, "vv_finish": 2, "hot_vv_finish": 2, "play_duration": 6.3, "hot_play_duration": 6.3, "slardar_perf_lcp_acc": 3.91, "slardar_perf_lcp_cnt": 1, "hot_slardar_perf_lcp_acc": 3.91, "hot_slardar_perf_lcp_cnt": 1, "hot_to_other_profile_view": 1, "preview_vv": 24, "others_profile_preview_vv": 24, "video_pause_by_switch_tab_cnt": 6 } },
"3/22/2025":
{ "7411334960449127942": { "session_last_update_time": 1742658246018, "stay_duration": 492.4699999999999, "session_cnt": 1, "os": "mac", "browser_brand": "chrome", "screen_resolution": 1930176, "screen_orientation": 1, "cpu_core_number": 16, "network_downlink": 10, "network_rtt": 50, "network_speed_effective_type": "4g", "region": "CA", "launch_mode": "direct", "landing_page": 0, "language_system": "en-ca", "language_app": "en", "timezone": -4, "time_of_day_landing": 11, "day_of_week": 6, "is_local_daytime": 1, "is_login": true, "max_touch_points": 0, "ret_acc": 1, "total_score": 8.06, "hardware_score": 8.06, "login_days_count": 1, "preview_vv": 6, "others_profile_preview_vv": 6, "video_pause_by_switch_tab_cnt": 4, "page_view": 2, "others_profile_page_view": 2, "slardar_perf_fcp_acc": 2.48, "slardar_perf_fcp_cnt": 2, "slardar_perf_lcp_acc": 1.62, "slardar_perf_lcp_cnt": 1, "other_profile_slardar_perf_lcp_acc": 1.62, "other_profile_slardar_perf_lcp_cnt": 1 } }
}
const dateNdaysAgo = e => new Date((new Date).getTime() - 864e5 * e).toLocaleDateString("en-US")
// Create an array of the last 'e' dates using Array.from with a length property e.g. [ "3/22/2025", "3/21/2025", "3/20/2025", … ]
const lastDates = Array.from({
length: e
}, ((element, index) => dateNdaysAgo(index)))
// Count the number of days in `n` that have `t` key and pull out `i`
const totalCount = lastDates.reduce((count, curVal) =>
n[curVal]?.[t]?.[i] !== undefined ? count + 1 : count, 0)
Comment 34•7 months ago
|
||
GEOR, do you still see video stutter if you set media.hevc.enabled = false in about:config?
Comment 35•7 months ago
|
||
The 14
days appears to be coming from here:
const i = 1988,
o = 'webapp_launch_mode',
a = 'webapp_original_traffic_type',
r = 'webapp_extra_data',
s = 'webapp_session_id',
l = 'webapp_tiktok_open',
c = 'webapp_tiktok_privious',
d = 'webapp_from_group_id',
u = 'f_s_1',
p = 14,
v = [
'VGeo-EU'
],
g = 'guest-mode-flag',
m = 'others',
h = 'direct',
_ = /h5_t|h5_m|landing_page|webapp/,
f = /embed/
Assignee | ||
Comment 36•7 months ago
|
||
Support using a cached Intl.DateTimeFormat
when locales
is a string.
Updated•7 months ago
|
Reporter | ||
Comment 37•7 months ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #34)
GEOR, do you still see video stutter if you set media.hevc.enabled = false in about:config?
I just tested again with media.hevc.enabled set to both false and true, and at least at this particular moment, I’m not seeing any shuttering in either case. I suspect that the shuttering I originally reported might have been due to overall overload caused by the other issues, which may have indirectly affected video playback as well - unless something changed in the meantime.
Additionally, I removed Tiktok's cookies (I had 35 stored totaling 6.5 MB) and noticed a huge difference in the loading speed, as others have reported. It’s now functional, but it still doesn’t compare to the speed of other browsers. It feels like opening webpage with a massive amount of content and no pagination.
Comment 38•7 months ago
|
||
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Comment 39•7 months ago
|
||
Comment 40•7 months ago
|
||
bugherder |
Updated•7 months ago
|
Comment 41•7 months ago
|
||
I did some more digging into what's going on here and in my profile every time the event()
function is called new Date((new Date).getTime() - 864e5 * e).toLocaleDateString("en-US")
happens a lot. In my Chrome profile I see it happening 398 times. In my Firefox profile it's happening 1908 times.
event()
is used to instrument basically everything that happens on TikTok
Comment 42•7 months ago
|
||
Nightly builds are out with this fix. They have a buildid of 20250323000437
(check about:support)
I'd be interested to hear anyone's experience using the 20250323000437 build vs. previous nightlies/release
Comment 43•7 months ago
|
||
bugherder |
Comment 44•7 months ago
|
||
Comment on attachment 9473816 [details]
Bug 1954323: Cache DateTimeFormat for Date.prototype.toLocaleString when locales argument is used. r=#spidermonkey-reviewers!
Beta/Release Uplift Approval Request
- User impact if declined/Reason for urgency: Very bad performance on TikTok. Some users are seeing jank on the order of multiple seconds between events. And unreponsiveness for 10s of seconds.
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The fix is a performance fix and shouldn't have any noticeable change in the results of the function.
- String changes made/needed:
- Is Android affected?: Yes
Comment 45•7 months ago
|
||
Did tiktok change their code recently?
Comment 46•7 months ago
|
||
It looks like the cost of this is proportional to the number of days and the number of metrics in the f_s_1
value in local storage.
Here's mine from a profile that only has two days of information. 3/22/2025 and 3/23/2025
f_s_1:"{"3/22/2025":{"7484813122872641030":{"session_last_update_time":1742694009876,"stay_duration":2.4100000000000006,"session_cnt":1,"os":"mac","browser_brand":"firefox","screen_resolution":1930176,"screen_orientation":1,"cpu_core_number":16,"region":"CA","launch_mode":"direct","landing_page":0,"language_system":"en-us","language_app":"en","timezone":-4,"time_of_day_landing":21,"day_of_week":6,"is_local_daytime":0,"is_login":false,"max_touch_points":0,"ret_acc":1,"total_score":8.12,"hardware_score":8.12,"first_active_date":0,"is_new_user":1,"page_view":3,"explore_page_view":2,"slardar_perf_fcp_acc":4.26,"slardar_perf_fcp_cnt":1,"preview_vv":18,"explore_page_preview_vv":18,"vv":4,"explore_page_vv":1,"item_avg_freshness":123,"item_avg_duration":288,"item_avg_like_history":64401600,"item_avg_vv_history":490200000,"item_avg_share_history":1676333,"item_avg_comment_history":245594,"item_avg_favorite_history":3351000,"item_avg_resolution":2160,"item_portrait":4,"item_100k_vv_vv":4,"creator_bluev_vv":3,"creator_1k_follower_vv":4,"creator_10k_follower_vv":3,"creator_100k_follower_vv":3,"explore_item_avg_freshness":8,"explore_item_avg_duration":14,"explore_item_avg_like_history":36000000,"explore_item_avg_vv_history":275300000,"explore_item_avg_share_history":975500,"explore_item_avg_comment_history":145400,"explore_item_avg_favorite_history":1700000,"explore_item_avg_resolution":540,"explore_item_portrait":1,"explore_item_100k_vv_vv":1,"explore_creator_bluev_vv":1,"explore_creator_1k_follower_vv":1,"explore_creator_10k_follower_vv":1,"explore_creator_100k_follower_vv":1,"push_cnt":1,"explore_to_hot_page_view":1,"slardar_perf_lcp_acc":5.77,"slardar_perf_lcp_cnt":1,"explore_slardar_perf_lcp_acc":5.77,"explore_slardar_perf_lcp_cnt":1,"hot_page_view":1,"hot_vv":3,"hot_item_avg_freshness":115,"hot_item_avg_duration":274,"hot_item_avg_like_history":28401600,"hot_item_avg_vv_history":214900000,"hot_item_avg_share_history":700833,"hot_item_avg_comment_history":100194,"hot_item_avg_favorite_history":1651000,"hot_item_avg_resolution":1620,"hot_item_portrait":3,"hot_item_100k_vv_vv":3,"hot_creator_bluev_vv":2,"hot_creator_1k_follower_vv":3,"hot_creator_10k_follower_vv":2,"hot_creator_100k_follower_vv":2,"play_duration":0.03,"hot_play_duration":0.03,"video_pause_by_switch_tab_cnt":1}},"3/23/2025":{"7484813122872641030":{"session_last_update_time":1742754875872,"stay_duration":1.58,"session_cnt":1,"os":"mac","browser_brand":"firefox","screen_resolution":1930176,"screen_orientation":1,"cpu_core_number":16,"region":"CA","launch_mode":"direct","landing_page":0,"language_system":"en-us","language_app":"en","timezone":-4,"time_of_day_landing":14,"day_of_week":0,"is_local_daytime":1,"is_login":false,"max_touch_points":0,"ret_acc":1,"total_score":8.12,"hardware_score":8.12,"first_active_date":0,"is_new_user":1,"page_view":1,"hot_page_view":1,"vv":1,"hot_vv":1,"item_avg_freshness":58,"item_avg_duration":93,"item_avg_like_history":325000,"item_avg_vv_history":2100000,"item_avg_share_history":15000,"item_avg_comment_history":1949,"item_avg_favorite_history":25500,"item_avg_resolution":720,"item_portrait":1,"item_100k_vv_vv":1,"creator_bluev_vv":0,"creator_1k_follower_vv":1,"creator_10k_follower_vv":1,"creator_100k_follower_vv":1,"hot_item_avg_freshness":58,"hot_item_avg_duration":93,"hot_item_avg_like_history":325000,"hot_item_avg_vv_history":2100000,"hot_item_avg_share_history":15000,"hot_item_avg_comment_history":1949,"hot_item_avg_favorite_history":25500,"hot_item_avg_resolution":720,"hot_item_portrait":1,"hot_item_100k_vv_vv":1,"hot_creator_bluev_vv":0,"hot_creator_1k_follower_vv":1,"hot_creator_10k_follower_vv":1,"hot_creator_100k_follower_vv":1,"slardar_perf_fcp_acc":1.99,"slardar_perf_fcp_cnt":1,"vv_finish":1,"hot_vv_finish":1}}}"
Comment 47•7 months ago
|
||
Running Object.keys(JSON.parse(localStorage.getItem("f_s_1")))
in web console on tiktok.com will give you an array of the days that TikTok is storing data on. This gives an estimate of the badness of the performance problem.
Can anyone who's still experiencing the problem run that code in the web console on tiktok.com and share the result?
Comment 48•7 months ago
|
||
The key under each date (e.g. 7484813122872641030
) is the user_unique_id
. I'd expect it's the same id for all dates.
This seems to be the schema for the data stored in f_s_1
it gives a rough idea of the events that trigger the performance problem and how much data can be stored for each day.
{
"os": {
"available_values": [
"windows",
"mac",
"linux",
"ios",
"chromeos"
],
"is_snapshot": true
},
"browser_brand": {
"available_values": [
"chrome",
"edge",
"safari",
"firefox"
],
"is_snapshot": true
},
"screen_resolution": {
"is_snapshot": true
},
"screen_orientation": {
"is_snapshot": true
},
"cpu_core_number": {
"is_snapshot": true
},
"network_downlink": {
"is_snapshot": true
},
"network_rtt": {
"is_snapshot": true
},
"network_speed_effective_type": {
"available_values": [
"slow-2g",
"2g",
"3g",
"4g"
],
"is_snapshot": true
},
"region": {
"available_values": [
"US",
"VN",
"JP",
"SG",
"BR",
"ID",
"FR",
"GB",
"PH",
"CA",
"DE",
"TH",
"MX",
"ES",
"PE",
"RU",
"AU",
"CO",
"DZ",
"UA",
"MY",
"KR",
"TR",
"AR",
"NL",
"IT",
"PL",
"TW",
"FI",
"PK",
"SA",
"EC",
"CL",
"EG",
"ZA",
"SE",
"KZ",
"RO",
"AE",
"BE"
],
"is_snapshot": true
},
"launch_mode": {
"available_values": [
"organic",
"reflow",
"direct",
"referral",
"referral_embed",
"msft",
"webapp_reflow",
"pwa",
"twa",
"referral_creator_embed",
"push",
"referral_amp",
"referral_tiktok_browse",
"referral_music_embed",
"referral_hashtag_embed",
"referral_curated_embed",
"launch_mode_win_desktop_app",
"launch_mode_mac_desktop_app"
],
"is_snapshot": true
},
"landing_page": {
"available_values": [
"homepage_hot",
"video_detail",
"others_homepage",
"discover_kw",
"explore_page",
"login",
"personal_homepage",
"general_search"
],
"is_snapshot": true
},
"language_system": {
"available_values": [
"en-us",
"vi-vn",
"es-es",
"en-gb",
"zh-cn",
"pt-br",
"es-419",
"ja",
"ru-ru",
"fr-fr",
"de-de",
"th-th",
"es",
"vi",
"id-id",
"fr",
"es-us",
"ru",
"tr-tr",
"en"
],
"is_snapshot": true
},
"language_app": {
"available_values": [
"en",
"es",
"vi-VN",
"pt-BR",
"zh-Hans",
"ru-RU",
"null",
"ja-JP",
"id-ID",
"th-TH",
"ar",
"fr",
"tr-TR",
"ko-KR",
"zh-Hant-TW"
],
"is_snapshot": true
},
"first_active_date": {
"is_snapshot": true
},
"timezone": {
"is_snapshot": true
},
"time_of_day_landing": {
"is_snapshot": true
},
"day_of_week": {
"is_snapshot": true
},
"is_new_user": {
"is_snapshot": true
},
"is_local_daytime": {
"is_snapshot": true
},
"is_login": {
"is_snapshot": true
},
"max_touch_points": {
"is_snapshot": true
},
"ret_acc": {},
"session_cnt": {},
"stay_duration": {},
"vv": {
"event_name": "video_play"
},
"vv_finish": {
"event_name": "video_play_finish"
},
"preview_vv": {
"event_name": "preview_video_play"
},
"play_duration": {
"event_name": "play_time",
"aggregate_field": "duration"
},
"page_view": {
"event_name": "page_view"
},
"hot_page_view": {
"event_name": "page_view",
"page_name": "homepage_hot"
},
"hot_vv": {
"event_name": "video_play",
"page_name": "homepage_hot"
},
"hot_vv_finish": {
"event_name": "video_play_finish",
"page_name": "homepage_hot"
},
"hot_play_duration": {
"event_name": "play_time",
"page_name": "homepage_hot",
"aggregate_field": "duration"
},
"video_detail_page_view": {
"event_name": "page_view",
"page_name": "video_detail"
},
"video_detail_vv": {
"event_name": "video_play",
"page_name": "video_detail"
},
"video_detail_vv_finish": {
"event_name": "video_play_finish",
"page_name": "video_detail"
},
"video_detail_play_duration": {
"event_name": "play_time",
"page_name": "video_detail",
"aggregate_field": "duration"
},
"others_profile_page_view": {
"event_name": "page_view",
"page_name": "others_homepage"
},
"others_profile_vv": {
"event_name": "video_play",
"page_name": "others_homepage"
},
"others_profile_preview_vv": {
"event_name": "preview_video_play",
"page_name": "others_homepage"
},
"others_profile_vv_finish": {
"event_name": "video_play_finish",
"page_name": "others_homepage"
},
"others_profile_play_duration": {
"event_name": "play_time",
"page_name": "others_homepage",
"aggregate_field": "duration"
},
"explore_page_view": {
"event_name": "page_view",
"page_name": "explore_page"
},
"explore_page_preview_vv": {
"event_name": "preview_video_play",
"page_name": "explore_page"
},
"explore_page_vv": {
"event_name": "video_play",
"page_name": "explore_page"
},
"explore_page_vv_finish": {
"event_name": "video_play_finish",
"page_name": "explore_page"
},
"explore_page_play_duration": {
"event_name": "play_time",
"page_name": "explore_page",
"aggregate_field": "duration"
},
"self_profile_page_view": {
"event_name": "page_view",
"page_name": "personal_homepage"
},
"self_profile_vv": {
"event_name": "video_play",
"page_name": "personal_homepage"
},
"song_detail_page_view": {
"event_name": "page_view",
"page_name": "single_song"
},
"song_detail_vv": {
"event_name": "video_play",
"page_name": "single_song"
},
"song_detail_vv_finish": {
"event_name": "video_play_finish",
"page_name": "single_song"
},
"song_detail_play_duration": {
"event_name": "play_time",
"page_name": "single_song",
"aggregate_field": "duration"
},
"challenge_page_view": {
"event_name": "page_view",
"page_name": "challenge"
},
"challenge_vv": {
"event_name": "video_play",
"page_name": "challenge"
},
"challenge_vv_finish": {
"event_name": "video_play_finish",
"page_name": "challenge"
},
"challenge_play_duration": {
"event_name": "play_time",
"page_name": "challenge",
"aggregate_field": "duration"
},
"discover_kw_page_view": {
"event_name": "page_view",
"page_name": "discover_kw"
},
"discover_kw_vv": {
"event_name": "video_play",
"page_name": "discover_kw"
},
"discover_kw_vv_finish": {
"event_name": "video_play_finish",
"page_name": "discover_kw"
},
"discover_kw_play_duration": {
"event_name": "play_time",
"page_name": "discover_kw",
"aggregate_field": "duration"
},
"follow_vv": {
"event_name": "video_play",
"page_name": "homepage_follow"
},
"live_recharge_page_view": {
"event_name": "page_view",
"page_name": "live_recharge"
},
"business_suite_page_view": {
"event_name": "enter_business_suite"
},
"slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"aggregate_field": "metric_duration",
"count_field_name": "slardar_perf_lcp_cnt",
"is_avg": true
},
"slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"should_skip_sending": true
},
"slardar_perf_fcp_acc": {
"event_name": "slardar_perf_fcp",
"aggregate_field": "metric_duration",
"count_field_name": "slardar_perf_fcp_cnt",
"is_avg": true
},
"slardar_perf_fcp_cnt": {
"event_name": "slardar_perf_fcp",
"should_skip_sending": true
},
"login_page_view": {
"event_name": "page_view",
"page_name": "login"
},
"general_search_page_view": {
"event_name": "page_view",
"page_name": "general_search"
},
"messages_page_view": {
"event_name": "page_view",
"page_name": "messages"
},
"upload_page_view": {
"event_name": "page_view",
"page_name": "upload"
},
"live_detail_page_view": {
"event_name": "page_view",
"page_name": "live_detail"
},
"search_cnt": {
"event_name": "search"
},
"app_download_cnt": {
"event_name": "click_get_app_for_pc"
},
"auto_scroll_cnt": {
"event_name": "autoscroll_on"
},
"muted_cnt": {
"event_name": "switch_sound"
},
"floating_player_cnt": {
"event_name": "enter_mini_player"
},
"report_cnt": {
"event_name": "click_report"
},
"not_interested_cnt": {
"event_name": "dislike"
},
"publish_cnt": {
"event_name": "click_upload_entrance"
},
"push_cnt": {
"event_name": "browser_push_notifications_show"
},
"update_profile_cnt": {
"event_name": "save_profile"
},
"livesdk_studio_download_cnt": {
"event_name": "livesdk_web_livestudio_download"
},
"send_message_cnt": {
"event_name": "send_message"
},
"share_to_friends_cnt": {
"event_name": "share_video",
"platform": "message"
},
"like_cnt": {
"event_name": "like"
},
"comment_cnt": {
"event_name": "post_comment"
},
"follow_cnt": {
"event_name": "follow"
},
"favourite_cnt": {
"event_name": "favourite_video"
},
"browser_mode_vv": {
"event_name": "video_play",
"play_mode": "browser_mode"
},
"playlist_vv": {
"event_name": "video_play",
"popup_type": "playlist"
},
"repost_cnt": {
"event_name": "repost_success"
},
"share_cnt": {
"event_name": "share_video"
},
"video_download_cnt": {
"event_name": "click_download"
},
"left_navigation_suggested_account_visit_cnt": {
"event_name": "enter_personal_detail",
"enter_method": [
"click_navigation"
]
},
"creator_tab_show_cnt": {
"event_name": "from_this_creator_tab_show"
},
"login_notify_cnt_periodic": {
"event_name": "login_notify",
"enter_method": [
"periodic_popup"
]
},
"login_notify_cnt_non_periodic": {
"event_name": "login_notify",
"enter_method": [
"click_like",
"click_comment",
"click_follow",
"click_top_bar",
"click_navigation",
"click_favorite"
]
},
"login_days_cnt": {},
"login_submit_cnt": {
"event_name": "login_submit"
},
"login_button_clicked_cnt": {
"event_name": "login_notify",
"enter_method": [
"click_top_bar",
"click_navigation"
]
},
"login_popup_duration": {
"event_name": "login_notify_close",
"start_event_name": "login_notify_time_stamp",
"count_field_name": "login_notify_close_cnt",
"is_time_stamp": true
},
"login_notify_time_stamp": {
"event_name": "login_notify",
"enter_method": [
"click_like",
"click_comment",
"click_follow",
"click_top_bar",
"click_navigation",
"click_favorite"
],
"aggregate_field": "time_stamp",
"should_skip_sending": true
},
"login_notify_close_cnt": {
"event_name": "login_notify_close",
"should_skip_sending": true
},
"toggle_dark_mode_cnt": {
"event_name": "dark_mode_click"
},
"video_pause_by_switch_tab_cnt": {
"event_name": "video_pause",
"enter_method": [
"switch_tab"
]
},
"like_cnt_non_login": {
"event_name": "login_notify",
"enter_method": [
"click_like"
]
},
"comment_cnt_non_login": {
"event_name": "login_notify",
"enter_method": [
"click_comment"
]
},
"follow_cnt_non_login": {
"event_name": "login_notify",
"enter_method": [
"click_follow"
]
},
"favorite_cnt_non_login": {
"event_name": "login_notify",
"enter_method": [
"click_favorite"
]
},
"item_avg_freshness": {
"event_name": "video_play",
"aggregate_field": "video_freshness",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_duration": {
"event_name": "video_play",
"aggregate_field": "video_duration",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_like_history": {
"event_name": "video_play",
"aggregate_field": "video_like_history",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_vv_history": {
"event_name": "video_play",
"aggregate_field": "video_vv_history",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_share_history": {
"event_name": "video_play",
"aggregate_field": "video_share_history",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_comment_history": {
"event_name": "video_play",
"aggregate_field": "video_comment_history",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_favorite_history": {
"event_name": "video_play",
"aggregate_field": "video_favorite_history",
"count_field_name": "vv",
"is_avg": true
},
"item_avg_resolution": {
"event_name": "video_play",
"aggregate_field": "video_resolution",
"count_field_name": "vv",
"is_avg": true
},
"item_portrait": {
"event_name": "video_play",
"aggregate_field": "video_is_portrait",
"count_field_name": "vv",
"is_avg": true
},
"item_100k_vv_vv": {
"event_name": "video_play",
"aggregate_field": "video_100k_vv"
},
"creator_bluev_vv": {
"event_name": "video_play",
"aggregate_field": "video_creator_bluev"
},
"creator_1k_follower_vv": {
"event_name": "video_play",
"aggregate_field": "video_creator_1k_follower"
},
"creator_10k_follower_vv": {
"event_name": "video_play",
"aggregate_field": "video_creator_10k_follower"
},
"creator_100k_follower_vv": {
"event_name": "video_play",
"aggregate_field": "video_creator_100k_follower"
},
"hot_like_cnt": {
"event_name": "like",
"page_name": "homepage_hot"
},
"hot_comment_cnt": {
"event_name": "post_comment",
"page_name": "homepage_hot"
},
"hot_follow_cnt": {
"event_name": "follow",
"page_name": "homepage_hot"
},
"hot_favourite_cnt": {
"event_name": "favourite_video",
"page_name": "homepage_hot"
},
"hot_browser_mode_vv": {
"event_name": "video_play",
"play_mode": "browser_mode",
"page_name": "homepage_hot"
},
"hot_share_cnt": {
"event_name": "share_video",
"page_name": "homepage_hot"
},
"hot_item_avg_freshness": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_freshness",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_duration": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_duration",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_like_history": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_like_history",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_vv_history": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_vv_history",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_share_history": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_share_history",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_comment_history": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_comment_history",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_favorite_history": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_favorite_history",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_avg_resolution": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_resolution",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_portrait": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_is_portrait",
"count_field_name": "hot_vv",
"is_avg": true
},
"hot_item_100k_vv_vv": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_100k_vv"
},
"hot_creator_bluev_vv": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_creator_bluev"
},
"hot_creator_1k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_creator_1k_follower"
},
"hot_creator_10k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_creator_10k_follower"
},
"hot_creator_100k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_hot",
"aggregate_field": "video_creator_100k_follower"
},
"hot_to_video_detail_page_view": {
"event_name": "page_view",
"page_name": "video_detail",
"previous_page": "homepage_hot"
},
"hot_to_explore_page_view": {
"event_name": "enter_explore_page",
"enter_from": "homepage_hot"
},
"hot_to_follow_page_view": {
"event_name": "enter_homepage_follow",
"enter_from": "homepage_hot"
},
"hot_to_other_profile_view": {
"event_name": "enter_personal_detail",
"enter_from": "homepage_hot"
},
"hot_slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"page_name": "homepage_hot",
"aggregate_field": "metric_duration",
"count_field_name": "hot_slardar_perf_lcp_cnt",
"is_avg": true
},
"hot_slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"page_name": "homepage_hot",
"should_skip_sending": true
},
"explore_like_cnt": {
"event_name": "like",
"page_name": "explore_page"
},
"explore_comment_cnt": {
"event_name": "post_comment",
"page_name": "explore_page"
},
"explore_follow_cnt": {
"event_name": "follow",
"page_name": "explore_page"
},
"explore_favourite_cnt": {
"event_name": "favourite_video",
"page_name": "explore_page"
},
"explore_browser_mode_vv": {
"event_name": "video_play",
"play_mode": "browser_mode",
"page_name": "explore_page"
},
"explore_share_cnt": {
"event_name": "share_video",
"page_name": "explore_page"
},
"explore_item_avg_freshness": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_freshness",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_duration": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_duration",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_like_history": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_like_history",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_vv_history": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_vv_history",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_share_history": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_share_history",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_comment_history": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_comment_history",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_favorite_history": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_favorite_history",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_avg_resolution": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_resolution",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_portrait": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_is_portrait",
"count_field_name": "explore_page_vv",
"is_avg": true
},
"explore_item_100k_vv_vv": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_100k_vv"
},
"explore_creator_bluev_vv": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_creator_bluev"
},
"explore_creator_1k_follower_vv": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_creator_1k_follower"
},
"explore_creator_10k_follower_vv": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_creator_10k_follower"
},
"explore_creator_100k_follower_vv": {
"event_name": "video_play",
"page_name": "explore_page",
"aggregate_field": "video_creator_100k_follower"
},
"explore_to_video_detail_page_view": {
"event_name": "page_view",
"page_name": "video_detail",
"previous_page": "explore_page"
},
"explore_to_hot_page_view": {
"event_name": "enter_homepage_hot",
"enter_from": "explore_page"
},
"explore_to_follow_page_view": {
"event_name": "enter_homepage_follow",
"enter_from": "explore_page"
},
"explore_to_other_profile_view": {
"event_name": "enter_personal_detail",
"enter_from": "explore_page"
},
"explore_slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"page_name": "explore_page",
"aggregate_field": "metric_duration",
"count_field_name": "explore_slardar_perf_lcp_cnt",
"is_avg": true
},
"explore_slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"page_name": "explore_page",
"should_skip_sending": true
},
"follow_like_cnt": {
"event_name": "like",
"page_name": "homepage_follow"
},
"follow_comment_cnt": {
"event_name": "post_comment",
"page_name": "homepage_follow"
},
"follow_follow_cnt": {
"event_name": "follow",
"page_name": "homepage_follow"
},
"follow_favourite_cnt": {
"event_name": "favourite_video",
"page_name": "homepage_follow"
},
"follow_browser_mode_vv": {
"event_name": "video_play",
"play_mode": "browser_mode",
"page_name": "homepage_follow"
},
"follow_share_cnt": {
"event_name": "share_video",
"page_name": "homepage_follow"
},
"follow_item_avg_freshness": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_freshness",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_duration": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_duration",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_like_history": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_like_history",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_vv_history": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_vv_history",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_share_history": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_share_history",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_comment_history": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_comment_history",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_favorite_history": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_favorite_history",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_avg_resolution": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_resolution",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_portrait": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_is_portrait",
"count_field_name": "follow_vv",
"is_avg": true
},
"follow_item_100k_vv_vv": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_100k_vv"
},
"follow_creator_bluev_vv": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_creator_bluev"
},
"follow_creator_1k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_creator_1k_follower"
},
"follow_creator_10k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_creator_10k_follower"
},
"follow_creator_100k_follower_vv": {
"event_name": "video_play",
"page_name": "homepage_follow",
"aggregate_field": "video_creator_100k_follower"
},
"follow_to_video_detail_page_view": {
"event_name": "page_view",
"page_name": "video_detail",
"previous_page": "homepage_follow"
},
"follow_to_explore_page_view": {
"event_name": "enter_explore_page",
"enter_from": "homepage_follow"
},
"follow_to_hot_page_view": {
"event_name": "enter_homepage_hot",
"enter_from": "homepage_follow"
},
"follow_to_other_profile_view": {
"event_name": "enter_personal_detail",
"enter_from": "homepage_follow"
},
"follow_slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"page_name": "homepage_follow",
"aggregate_field": "metric_duration",
"count_field_name": "follow_slardar_perf_lcp_cnt",
"is_avg": true
},
"follow_slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"page_name": "homepage_follow",
"should_skip_sending": true
},
"video_detail_like_cnt": {
"event_name": "like",
"page_name": "video_detail"
},
"video_detail_comment_cnt": {
"event_name": "post_comment",
"page_name": "video_detail"
},
"video_detail_follow_cnt": {
"event_name": "follow",
"page_name": "video_detail"
},
"video_detail_favourite_cnt": {
"event_name": "favourite_video",
"page_name": "video_detail"
},
"video_detail_share_cnt": {
"event_name": "share_video",
"page_name": "video_detail"
},
"video_detail_item_avg_freshness": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_freshness",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_duration": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_duration",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_like_history": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_like_history",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_vv_history": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_vv_history",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_share_history": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_share_history",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_comment_history": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_comment_history",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_favorite_history": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_favorite_history",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_avg_resolution": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_resolution",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_portrait": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_is_portrait",
"count_field_name": "video_detail_vv",
"is_avg": true
},
"video_detail_item_100k_vv_vv": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_100k_vv"
},
"video_detail_creator_bluev_vv": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_creator_bluev"
},
"video_detail_creator_1k_follower_vv": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_creator_1k_follower"
},
"video_detail_creator_10k_follower_vv": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_creator_10k_follower"
},
"video_detail_creator_100k_follower_vv": {
"event_name": "video_play",
"page_name": "video_detail",
"aggregate_field": "video_creator_100k_follower"
},
"video_detail_to_hot_page_view": {
"event_name": "enter_homepage_hot",
"enter_from": "video_detail"
},
"video_detail_to_explore_page_view": {
"event_name": "enter_explore_page",
"enter_from": "video_detail"
},
"video_detail_to_follow_page_view": {
"event_name": "enter_homepage_follow",
"enter_from": "video_detail"
},
"video_detail_to_other_profile_view": {
"event_name": "enter_personal_detail",
"enter_from": "video_detail"
},
"video_detail_yml_cover_clicks_cnt": {
"event_name": "video_cover_click"
},
"video_detail_slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"page_name": "video_detail",
"aggregate_field": "metric_duration",
"count_field_name": "video_detail_slardar_perf_lcp_cnt",
"is_avg": true
},
"video_detail_slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"page_name": "video_detail",
"should_skip_sending": true
},
"other_profile_creator_bluev_vv": {
"event_name": "video_play",
"page_name": "others_homepage",
"aggregate_field": "video_creator_bluev"
},
"other_profile_creator_1k_follower_vv": {
"event_name": "video_play",
"page_name": "others_homepage",
"aggregate_field": "video_creator_1k_follower"
},
"other_profile_creator_10k_follower_vv": {
"event_name": "video_play",
"page_name": "others_homepage",
"aggregate_field": "video_creator_10k_follower"
},
"other_profile_creator_100k_follower_vv": {
"event_name": "video_play",
"page_name": "others_homepage",
"aggregate_field": "video_creator_100k_follower"
},
"other_profile_to_video_detail_page_view": {
"event_name": "page_view",
"page_name": "video_detail",
"previous_page": "others_homepage"
},
"other_profile_to_hot_page_view": {
"event_name": "enter_homepage_hot",
"enter_from": "others_homepage"
},
"other_profile_to_follow_view": {
"event_name": "enter_homepage_follow",
"enter_from": "others_homepage"
},
"other_profile_to_explore_page_view": {
"event_name": "enter_explore_page",
"enter_from": "others_homepage"
},
"other_profile_playlist_vv": {
"event_name": "video_play",
"popup_type": "playlist",
"page_name": "others_homepage"
},
"other_profile_follow_cnt": {
"event_name": "follow",
"page_name": "others_homepage"
},
"other_profile_send_message_cnt": {
"event_name": "send_message",
"page_name": "others_homepage"
},
"other_profile_sort_cnt": {
"event_name": "click_sort_option"
},
"other_profile_share_user_profile_cnt": {
"event_name": "share",
"page_name": "others_homepage",
"type": "profile"
},
"other_profile_slardar_perf_lcp_acc": {
"event_name": "slardar_perf_lcp",
"page_name": "others_homepage",
"aggregate_field": "metric_duration",
"count_field_name": "other_profile_slardar_perf_lcp_cnt",
"is_avg": true
},
"other_profile_slardar_perf_lcp_cnt": {
"event_name": "slardar_perf_lcp",
"page_name": "others_homepage",
"should_skip_sending": true
},
"ret_acc_3": {
"is_retention": true,
"retention_count": 3
},
"ret_acc_7": {
"is_retention": true,
"retention_count": 7
},
"total_score": {
"is_snapshot": true
},
"hardware_score": {
"is_snapshot": true
}
}
Comment 49•7 months ago
|
||
Using TikTok: https://share.firefox.dev/4bTFoTN
Using TikTok with the patch: https://share.firefox.dev/4iVa2ON
Comment 50•7 months ago
|
||
uplift |
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Comment 51•7 months ago
|
||
Comment on attachment 9473816 [details]
Bug 1954323: Cache DateTimeFormat for Date.prototype.toLocaleString when locales argument is used. r=#spidermonkey-reviewers!
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: This improves a major performance problem on TikTok
- User impact if declined: Very bad performance on TikTok. Some users are seeing jank on the order of multiple seconds between events. And unreponsiveness for 10s of seconds.
- Fix Landed on Version: 136
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The fix is a performance fix and shouldn't have any noticeable change in the results of the function.
Comment 52•7 months ago
|
||
Comment on attachment 9473816 [details]
Bug 1954323: Cache DateTimeFormat for Date.prototype.toLocaleString when locales argument is used. r=#spidermonkey-reviewers!
Approved for 136.0.3
Comment 53•7 months ago
|
||
uplift |
Updated•7 months ago
|
Updated•7 months ago
|
Comment 54•7 months ago
|
||
uplift |
Updated•7 months ago
|
Updated•7 months ago
|
Comment 55•7 months ago
|
||
I can't seem to be able to reproduce a performance issue on TikTok. I've tried scrolling through posts on Windows 10, Ubuntu 22 and MacOS 11, in different builds before the fix (Nightly v138.0a1 from 2025-03-21, Beta v137.0b3 and Release v135.0.1 and v136.0.1). Observed performance is in accordance with the capabilities of the tested system. No considerable waiting for loading was necessary.
I've also tried reproducing by logging in and out, flipping the media.hardware-video-decoding.enabled true and false.
Comment 56•7 months ago
|
||
I've also performed a sanity on build versions with the fix (Nightly v138.0a1, Beta v137.0b10 and Release v136.0.3, ESR v128). No performance issues are observed. Tested in Windows 10, MacOS 11 and Ubuntu 22.
Updated•6 months ago
|
Comment 57•6 months ago
|
||
I'm changing the summary to be more specific so that in the future if there are further TikTok problems people will hopefully file new bugs.
![]() |
||
Comment 58•6 months ago
|
||
Verified, works as expected.
Tested with:
Browser / Version: Firefox 137.0-candidate build 1
Operating System: Windows 10
Description
•