cyfung1031 / userscript-supports

This is for the userscripts created on GreasyFork.org.
https://cyfung1031.github.io/userscript-supports/
MIT License
48 stars 3 forks source link

[YouTube EXPERIMENT_FLAGS Tamer Script] New flag destroying chat #34

Closed NeloBlivion closed 5 months ago

NeloBlivion commented 5 months ago

Yesterday it seems some flag triggered on my account that completely breaks the live chat, creating an even worse memory leak that crashes the entire YouTube frame (even when embeded on mobile), but It only happens on my main and goes away if i switch channels. I found this script and while the full version didn't fix much, the basic variant removed the issue. Just two questions on this:

Thank you for maintaining these, It's been really helpful!

cyfung1031 commented 5 months ago
  • Would you be able to identify what flag is causing this new issue?

I could not but you might.

You might figure out by yourself.

As basic variant works for you, start with that.

    const setFalseFn = (EXPERIMENT_FLAGS) => {

      for (const [key, value] of Object.entries(EXPERIMENT_FLAGS)) {

        if (value === true) {

          // ......

        }

      }
    }

The basic variant sets all the flags from true to false. You can use the flag name length, contains some words or characters, etc, to filter out those flags.

Trial and Error should let you find the flags that

Remarks

YouTube is always doing A/B testing. Some features in A/B testing are really unstable so they put them into EXPERIMENT_FLAGS.

I cannot reproduce it so I cannot find it for you.

cyfung1031 commented 5 months ago

Update:

Main version - added following flags to the whitelist.

    'suppress_error_204_logging'
    'use_request_time_ms_header'

    'live_chat_channel_activity'
    'live_chat_web_input_update'

    'remove_masthead_channel_banner_on_refresh'

    'action_companion_center_align_description',
    'disable_child_node_auto_formatted_strings',
    'enable_shadydom_free_scoped_query_methods',
    'enable_sparkles_web_clickable_description',
    'enable_window_constrained_buy_flow_dialog',
    'is_part_of_any_user_engagement_experiment',
    'live_chat_enable_send_button_in_slow_mode',
    'live_chat_web_use_emoji_manager_singleton',
    'remove_masthead_channel_banner_on_refresh',
    'web_modern_player_settings_quality_bottom',
    'kevlar_tuner_should_test_reuse_components',

    'web_player_ve_conversion_fixes_for_channel_info',
    'web_watch_updated_metadata_server_initial_delay',

    'defer_menus'

Basic version - added following flags to the whitelist.


    'suppress_error_204_logging'

  live_chat_banner_expansion_fix
  live_chat_enable_mod_view
  live_chat_enable_qna_banner_overflow_menu_actions
  live_chat_enable_qna_channel
  live_chat_enable_send_button_in_slow_mode
  live_chat_filter_emoji_suggestions
  live_chat_increased_min_height
  live_chat_over_playlist
  live_chat_web_enable_command_handler
  live_chat_web_use_emoji_manager_singleton
  live_chat_whole_message_clickable

  live_chat_channel_activity
  live_chat_web_input_update

  live_chat_emoji_picker_toggle_state
  live_chat_enable_command_handler_resolver_map
  live_chat_enable_controller_extraction
  live_chat_enable_rta_manager
  live_chat_require_space_for_autocomplete_emoji
  live_chat_unclickable_message

Note: The following new flags are disabled in Super Fast Chat now to avoid issue.

        EXPERIMENT_FLAGS.enable_shadydom_free_scoped_node_methods = false;
        EXPERIMENT_FLAGS.enable_shadydom_free_scoped_query_methods = false;
        EXPERIMENT_FLAGS.enable_shadydom_free_scoped_readonly_properties_batch_one = false;
        EXPERIMENT_FLAGS.enable_shadydom_free_parent_node = false;
        EXPERIMENT_FLAGS.enable_shadydom_free_children = false;
        EXPERIMENT_FLAGS.enable_shadydom_free_last_child = false;
NeloBlivion commented 5 months ago

Thank you for the update!! I was making some progress but these flags resolved everything for me 🫡

cyfung1031 commented 5 months ago

Both Basic version and normal version works for you?

NeloBlivion commented 5 months ago

They do, yes (there's a minor issue where a disabled flag happens to interfere with ad blocking and pops up old style instant-skip ads, but that's a separate issue and circumvented by scoping the script to live_chat urls)

cyfung1031 commented 5 months ago

They do, yes (there's a minor issue where a disabled flag happens to interfere with ad blocking and pops up old style instant-skip ads, but that's a separate issue and circumvented by scoping the script to live_chat urls)

If you know the flag for the interfering with ad blocking (trial and error), please let me know. https://github.com/cyfung1031/userscript-supports/issues/28 I heard that issue but I cannot reproduce it from my side.

cyfung1031 commented 5 months ago

@NeloBlivion Might I ask you help testing the following.

https://greasyfork.org/en/scripts/469878-youtube-super-fast-chat

I added the flag disabling option, so YouTube EXPERIMENT_FLAGS Tamer is not required for solving the memory leakage issue.

Could you please try to disable YouTube EXPERIMENT_FLAGS Tamer and enable the YouTube Super Fast Chat to see whether the issue can be solved too?

NeloBlivion commented 5 months ago

I've been testing and it seems this works without needing the tamer scripts 👍 thanks!