1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-04-22 18:15:47 +02:00

Bypass 'tdp://' CORS without AddCrossOriginWhitelistEntry

This commit is contained in:
chylex 2020-06-05 07:14:09 +02:00
parent 9eb4e623e7
commit 1991f7f50f
2 changed files with 15 additions and 5 deletions

View File

@ -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;
}

View File

@ -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;
}
}
}