From 8134843dad8c64e3aa5b54ee035e04da9e8fb183 Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Wed, 28 Feb 2018 02:34:29 +0100
Subject: [PATCH] Fix background color & twitter.com hooks not applying quickly
 enough sometimes

---
 Core/TweetDeckBrowser.cs     | 12 +++++++-----
 Core/Utils/TwitterUtils.cs   |  2 +-
 Resources/Scripts/twitter.js |  4 ++--
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/Core/TweetDeckBrowser.cs b/Core/TweetDeckBrowser.cs
index 8a5ad9c1..f7211475 100644
--- a/Core/TweetDeckBrowser.cs
+++ b/Core/TweetDeckBrowser.cs
@@ -118,14 +118,18 @@ private void browser_LoadingStateChanged(object sender, LoadingStateChangedEvent
         }
 
         private void browser_FrameLoadStart(object sender, FrameLoadStartEventArgs e){
-            if (e.Frame.IsMain){
+            IFrame frame = e.Frame;
+
+            if (frame.IsMain){
                 if (Program.UserConfig.ZoomLevel != 100){
                     BrowserUtils.SetZoomLevel(browser.GetBrowser(), Program.UserConfig.ZoomLevel);
                 }
 
-                if (TwitterUtils.IsTwitterWebsite(e.Frame)){
-                    ScriptLoader.ExecuteFile(e.Frame, "twitter.js");
+                if (TwitterUtils.IsTwitterWebsite(frame)){
+                    ScriptLoader.ExecuteFile(frame, "twitter.js");
                 }
+                
+                frame.ExecuteJavaScriptAsync(TwitterUtils.BackgroundColorOverride);
             }
         }
 
@@ -133,8 +137,6 @@ private void browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e){
             IFrame frame = e.Frame;
 
             if (frame.IsMain && TwitterUtils.IsTweetDeckWebsite(frame)){
-                frame.ExecuteJavaScriptAsync(TwitterUtils.BackgroundColorOverride);
-
                 UpdateProperties();
                 TweetDeckBridge.RestoreSessionData(frame);
                 ScriptLoader.ExecuteFile(frame, "code.js");
diff --git a/Core/Utils/TwitterUtils.cs b/Core/Utils/TwitterUtils.cs
index 0b292176..173cee6b 100644
--- a/Core/Utils/TwitterUtils.cs
+++ b/Core/Utils/TwitterUtils.cs
@@ -13,7 +13,7 @@ static class TwitterUtils{
         public const string TweetDeckURL = "https://tweetdeck.twitter.com";
 
         public static readonly Color BackgroundColor = Color.FromArgb(28, 99, 153);
-        public const string BackgroundColorOverride = "let e=document.createElement('style');document.head.appendChild(e);e.innerHTML='body,body::before{background:#1c6399!important}'";
+        public const string BackgroundColorOverride = "setTimeout(function f(){let h=document.head;if(!h){setTimeout(f,5);return;}let e=document.createElement('style');e.innerHTML='body,body::before{background:#1c6399!important}';h.appendChild(e);},1)";
 
         public static readonly ResourceLink LoadingSpinner = new ResourceLink("https://ton.twimg.com/tduck/spinner", ResourceHandler.FromByteArray(Properties.Resources.spinner, "image/apng"));
         
diff --git a/Resources/Scripts/twitter.js b/Resources/Scripts/twitter.js
index 267d7c92..b4a3e9da 100644
--- a/Resources/Scripts/twitter.js
+++ b/Resources/Scripts/twitter.js
@@ -4,7 +4,7 @@
   //
   var injectCSS = function(){
     if (!document.head){
-      setTimeout(injectCSS, 25);
+      setTimeout(injectCSS, 5);
       return;
     }
     
@@ -15,7 +15,7 @@
       style.sheet.insertRule(rule, 0);
     };
     
-    addRule("body { overflow: hidden !important; background-color: #1c6399 !important; }"); // remove scrollbar and change background
+    addRule("body { overflow: hidden !important; }"); // remove scrollbar
     addRule(".page-canvas { box-shadow: 0 0 150px rgba(255, 255, 255, 0.3) !important; }"); // change page box shadow
     addRule(".topbar { display: none !important; }"); // hide top bar