#!/bin/bash
#Tweaks to improve speed of browser

# Fix to intel gpu
if [ "$(lspci | grep 'UHD Graphics 605')" != "" ]; then
    export LIBVA_DRIVER_NAME=i965
fi

#OPTIMIZATION="$(cat ~/.config/browser-optimize 2>/dev/null)"
OPTIMIZATION="optimize"
VAINFO="$(vainfo 2>&1)"

if [ "$OPTIMIZATION" = "" ]
then
    if [ "$(systemd-detect-virt)" = "none" ] && [ "$(echo "$VAINFO" | grep nvidia)" = "" ] && [ "$(echo "$VAINFO" | grep nouveau)" = "" ] && [ "$(echo "$VAINFO" | grep VAProfileVC1Advanced)" != "" ]; then
        OPTIMIZATION="performance"
    else
        OPTIMIZATION="optimize"
    fi

fi

if [ "$OPTIMIZATION" = "performance" ]
then


    if [ "$(grep 'user_pref("media.ffmpeg.vaapi.enabled", true' ~/.mozilla/firefox/*default/prefs.js)" = "" ]
    then

        echo "user_pref(\"browser.preferences.defaultPerformanceSettings.enabled\", false);
user_pref(\"dom.ipc.processCount\", $(nproc));
user_pref(\"media.ffmpeg.vaapi.enabled\", true);
user_pref(\"media.rdd-vpx.enabled\", false);
user_pref(\"media.navigator.mediadatadecoder_vpx_enabled\", true);" >>  ~/.mozilla/firefox/*default/prefs.js

    fi



elif [ "$OPTIMIZATION" = "optimize" ]
then

    #disable vaapi
    #sed -i 's|user_pref("media.ffmpeg.vaapi.enabled", true|user_pref("media.ffmpeg.vaapi.enabled", false|g' ~/.mozilla/firefox/*default/prefs.js

    if [ "$(grep 'browser.preferences.defaultPerformanceSettings.enabled' ~/.mozilla/firefox/*default/prefs.js)" = "" ]
    then
        
        #Enable optimize
        echo "user_pref(\"browser.preferences.defaultPerformanceSettings.enabled\", false);
user_pref(\"dom.ipc.processCount\", $(nproc));" >>  ~/.mozilla/firefox/*default/prefs.js

    fi

else

    if [ "$(grep 'user_pref("media.ffmpeg.vaapi.enabled", true' ~/.mozilla/firefox/*default/prefs.js)" != "" ]
    then
        #Remove performance
        sed -i '/media.ffmpeg.vaapi.enabled/d;/media.rdd-vpx.enabled/d;/media.navigator.mediadatadecoder_vpx_enabled/d;' ~/.mozilla/firefox/*default/prefs.js
    fi

fi


# Run firefox
LD_PRELOAD=/usr/lib/nosync-browser.so exec /usr/bin/firefox ${1+"$@"}



















