diff --git a/Browser/TweetDeckBrowser.cs b/Browser/TweetDeckBrowser.cs
index ad40e3f6..6b6714ca 100644
--- a/Browser/TweetDeckBrowser.cs
+++ b/Browser/TweetDeckBrowser.cs
@@ -118,8 +118,6 @@ private void browser_LoadingStateChanged(object sender, LoadingStateChangedEvent
                     browser.AddWordToDictionary(word);
                 }
 
-                Cef.AddCrossOriginWhitelistEntry(TwitterUrls.TweetDeck, PluginSchemeFactory.Name, "", true);
-
                 browser.BeginInvoke(new Action(OnBrowserReady));
                 browser.LoadingStateChanged -= browser_LoadingStateChanged;
             }
diff --git a/Plugins/PluginSchemeFactory.cs b/Plugins/PluginSchemeFactory.cs
index 2cee0a64..777bc85d 100644
--- a/Plugins/PluginSchemeFactory.cs
+++ b/Plugins/PluginSchemeFactory.cs
@@ -1,4 +1,6 @@
-using System.Net;
+using System.IO;
+using System.Net;
+using System.Text;
 using CefSharp;
 using TweetLib.Core.Browser;
 using TweetLib.Core.Features.Plugins;
@@ -18,8 +20,16 @@ public IResourceHandler Create(IBrowser browser, IFrame frame, string schemeName
         }
 
         private sealed class ResourceProvider : IResourceProvider<IResourceHandler>{
+            private static ResourceHandler CreateHandler(byte[] bytes){
+                var handler = ResourceHandler.FromStream(new MemoryStream(bytes), autoDisposeStream: true);
+                handler.Headers.Set("Access-Control-Allow-Origin", "*");
+                return handler;
+            }
+
             public IResourceHandler Status(HttpStatusCode code, string message){
-                return ResourceHandler.ForErrorMessage(message, code);
+                var handler = CreateHandler(Encoding.UTF8.GetBytes(message));
+                handler.StatusCode = (int)code;
+                return handler;
             }
 
             public IResourceHandler File(byte[] bytes, string extension){
@@ -27,7 +37,9 @@ public IResourceHandler File(byte[] bytes, string extension){
                     return Status(HttpStatusCode.NoContent, "File is empty."); // FromByteArray crashes CEF internals with no contents
                 }
                 else{
-                    return ResourceHandler.FromByteArray(bytes, Cef.GetMimeType(extension));
+                    var handler = CreateHandler(bytes);
+                    handler.MimeType = Cef.GetMimeType(extension);
+                    return handler;
                 }
             }
         }