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

Update CefSharp to 92

This commit is contained in:
chylex 2021-12-12 16:47:39 +01:00
parent bcf77052a5
commit f1d9663709
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
23 changed files with 130 additions and 200 deletions

View File

@ -221,7 +221,7 @@ protected static void InsertSelectionSearchItem(IMenuModel model, CefMenuCommand
}
protected static void AddDebugMenuItems(IMenuModel model) {
if (BrowserUtils.HasDevTools) {
if (Config.DevToolsInContextMenu) {
AddSeparator(model);
model.AddItem(MenuOpenDevTools, "Open dev tools");
}

View File

@ -1,9 +1,10 @@
using CefSharp;
using CefSharp.Handler;
using TweetDuck.Controls;
using TweetDuck.Utils;
namespace TweetDuck.Browser.Handling.General {
sealed class LifeSpanHandler : ILifeSpanHandler {
sealed class CustomLifeSpanHandler : LifeSpanHandler {
private static bool IsPopupAllowed(string url) {
return url.StartsWith("https://twitter.com/teams/authorize?");
}
@ -22,17 +23,13 @@ public static bool HandleLinkClick(IWebBrowser browserControl, WindowOpenDisposi
}
}
public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser) {
protected override bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser) {
newBrowser = null;
return HandleLinkClick(browserControl, targetDisposition, targetUrl);
}
public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser) {}
public bool DoClose(IWebBrowser browserControl, IBrowser browser) {
protected override bool DoClose(IWebBrowser browserControl, IBrowser browser) {
return false;
}
public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser) {}
}
}

View File

@ -1,31 +1,12 @@
using System.Windows.Forms;
using CefSharp;
using TweetDuck.Controls;
using TweetDuck.Dialogs;
using TweetDuck.Utils;
namespace TweetDuck.Browser.Handling {
class KeyboardHandlerBase : IKeyboardHandler {
protected virtual bool HandleRawKey(IWebBrowser browserControl, Keys key, CefEventFlags modifiers) {
if (modifiers == (CefEventFlags.ControlDown | CefEventFlags.ShiftDown) && key == Keys.I) {
if (BrowserUtils.HasDevTools) {
browserControl.OpenDevToolsCustom();
}
else {
browserControl.AsControl().InvokeSafe(() => {
string extraMessage;
if (Program.IsPortable) {
extraMessage = "Please download the portable installer, select the folder with your current installation of TweetDuck Portable, and tick 'Install dev tools' during the installation process.";
}
else {
extraMessage = "Please download the installer, and tick 'Install dev tools' during the installation process. The installer will automatically find and update your current installation of TweetDuck.";
}
FormMessage.Information("Dev Tools", "You do not have dev tools installed. " + extraMessage, FormMessage.OK);
});
}
browserControl.OpenDevToolsCustom();
return true;
}

View File

@ -11,7 +11,7 @@ public RequestHandlerBase(bool autoReload) {
}
protected override bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture) {
return LifeSpanHandler.HandleLinkClick(browserControl, targetDisposition, targetUrl);
return CustomLifeSpanHandler.HandleLinkClick(browserControl, targetDisposition, targetUrl);
}
protected override void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status) {

View File

@ -4,7 +4,6 @@
using System.Linq;
using System.Text.RegularExpressions;
using CefSharp;
using TweetDuck.Utils;
using TweetLib.Core.Utils;
namespace TweetDuck.Browser.Handling {
@ -37,11 +36,9 @@ protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserContro
return CefReturnValue.Cancel;
}
if (BrowserUtils.HasDevTools) {
NameValueCollection headers = request.Headers;
headers.Remove("x-devtools-emulate-network-conditions-client-id");
request.Headers = headers;
}
NameValueCollection headers = request.Headers;
headers.Remove("x-devtools-emulate-network-conditions-client-id");
request.Headers = headers;
return base.OnBeforeResourceLoad(browserControl, browser, frame, request, callback);
}

View File

@ -139,7 +139,7 @@ protected FormNotificationBase(FormBrowser owner, bool enableContextMenu) {
this.browser = new ChromiumWebBrowser(BlankURL) {
MenuHandler = new ContextMenuNotification(this, enableContextMenu),
JsDialogHandler = new JavaScriptDialogHandler(),
LifeSpanHandler = new LifeSpanHandler(),
LifeSpanHandler = new CustomLifeSpanHandler(),
RequestHandler = new RequestHandlerBase(false),
ResourceRequestHandlerFactory = resourceRequestHandler.SelfFactory
};

View File

@ -64,7 +64,7 @@ public TweetDeckBrowser(FormBrowser owner, PluginManager plugins, TweetDeckBridg
MenuHandler = new ContextMenuBrowser(owner),
JsDialogHandler = new JavaScriptDialogHandler(),
KeyboardHandler = new KeyboardHandlerBrowser(owner),
LifeSpanHandler = new LifeSpanHandler(),
LifeSpanHandler = new CustomLifeSpanHandler(),
RequestHandler = requestHandler,
ResourceRequestHandlerFactory = resourceRequestHandler.SelfFactory
};

View File

@ -78,7 +78,8 @@ sealed class UserConfig : BaseConfig {
public string CustomBrowserCSS { get; set; } = null;
public string CustomNotificationCSS { get; set; } = null;
public bool DevToolsWindowOnTop { get; set; } = true;
public bool DevToolsInContextMenu { get; set; } = false;
public bool DevToolsWindowOnTop { get; set; } = true;
// SPECIAL PROPERTIES

View File

@ -76,7 +76,7 @@ private FormGuide(string url, FormBrowser owner) {
MenuHandler = new ContextMenuGuide(owner),
JsDialogHandler = new JavaScriptDialogHandler(),
KeyboardHandler = new KeyboardHandlerBase(),
LifeSpanHandler = new LifeSpanHandler(),
LifeSpanHandler = new CustomLifeSpanHandler(),
RequestHandler = new RequestHandlerBase(true),
ResourceRequestHandlerFactory = resourceRequestHandler.SelfFactory
};

View File

@ -209,7 +209,7 @@ public SettingsTab(Button button, Func<BaseTab> constructor) {
}
}
internal abstract class BaseTab : UserControl {
internal class BaseTab : UserControl {
protected static UserConfig Config => Program.Config.User;
protected static SystemConfig SysConfig => Program.Config.System;

View File

@ -3,7 +3,6 @@
using System.Text.RegularExpressions;
using System.Windows.Forms;
using TweetDuck.Controls;
using TweetDuck.Utils;
namespace TweetDuck.Dialogs.Settings {
sealed partial class DialogSettingsCSS : Form {
@ -27,10 +26,6 @@ public DialogSettingsCSS(string browserCSS, string notificationCSS, Action<strin
textBoxNotificationCSS.EnableMultilineShortcuts();
textBoxNotificationCSS.Text = notificationCSS ?? "";
if (!BrowserUtils.HasDevTools) {
btnOpenDevTools.Enabled = false;
}
ActiveControl = textBoxBrowserCSS;
textBoxBrowserCSS.Select(textBoxBrowserCSS.TextLength, 0);
}

View File

@ -1,11 +1,11 @@
namespace TweetDuck.Dialogs.Settings {
partial class TabSettingsAdvanced {
/// <summary>
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
@ -18,8 +18,8 @@ protected override void Dispose(bool disposing) {
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
@ -42,16 +42,17 @@ private void InitializeComponent() {
this.labelConfiguration = new System.Windows.Forms.Label();
this.flowPanel = new System.Windows.Forms.FlowLayoutPanel();
this.labelDevTools = new System.Windows.Forms.Label();
this.checkDevToolsInContextMenu = new System.Windows.Forms.CheckBox();
this.checkDevToolsWindowOnTop = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.numClearCacheThreshold)).BeginInit();
((System.ComponentModel.ISupportInitialize) (this.numClearCacheThreshold)).BeginInit();
this.panelAppButtons.SuspendLayout();
this.panelClearCacheAuto.SuspendLayout();
this.panelConfiguration.SuspendLayout();
this.flowPanel.SuspendLayout();
this.SuspendLayout();
//
//
// btnClearCache
//
//
this.btnClearCache.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnClearCache.Location = new System.Drawing.Point(5, 135);
this.btnClearCache.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
@ -60,9 +61,9 @@ private void InitializeComponent() {
this.btnClearCache.TabIndex = 3;
this.btnClearCache.Text = "Clear Cache (...)";
this.btnClearCache.UseVisualStyleBackColor = true;
//
//
// btnEditCefArgs
//
//
this.btnEditCefArgs.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnEditCefArgs.Location = new System.Drawing.Point(5, 3);
this.btnEditCefArgs.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
@ -71,9 +72,9 @@ private void InitializeComponent() {
this.btnEditCefArgs.TabIndex = 0;
this.btnEditCefArgs.Text = "Edit CEF Arguments";
this.btnEditCefArgs.UseVisualStyleBackColor = true;
//
//
// btnEditCSS
//
//
this.btnEditCSS.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnEditCSS.Location = new System.Drawing.Point(154, 3);
this.btnEditCSS.Name = "btnEditCSS";
@ -81,9 +82,9 @@ private void InitializeComponent() {
this.btnEditCSS.TabIndex = 1;
this.btnEditCSS.Text = "Edit CSS";
this.btnEditCSS.UseVisualStyleBackColor = true;
//
//
// btnRestartArgs
//
//
this.btnRestartArgs.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnRestartArgs.Location = new System.Drawing.Point(154, 32);
this.btnRestartArgs.Name = "btnRestartArgs";
@ -91,9 +92,9 @@ private void InitializeComponent() {
this.btnRestartArgs.TabIndex = 3;
this.btnRestartArgs.Text = "Restart with Arguments";
this.btnRestartArgs.UseVisualStyleBackColor = true;
//
//
// btnRestart
//
//
this.btnRestart.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnRestart.Location = new System.Drawing.Point(154, 3);
this.btnRestart.Name = "btnRestart";
@ -101,9 +102,9 @@ private void InitializeComponent() {
this.btnRestart.TabIndex = 2;
this.btnRestart.Text = "Restart the Program";
this.btnRestart.UseVisualStyleBackColor = true;
//
//
// btnOpenAppFolder
//
//
this.btnOpenAppFolder.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnOpenAppFolder.Location = new System.Drawing.Point(5, 3);
this.btnOpenAppFolder.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
@ -112,9 +113,9 @@ private void InitializeComponent() {
this.btnOpenAppFolder.TabIndex = 0;
this.btnOpenAppFolder.Text = "Open Program Folder";
this.btnOpenAppFolder.UseVisualStyleBackColor = true;
//
//
// btnOpenDataFolder
//
//
this.btnOpenDataFolder.Font = new System.Drawing.Font("Segoe UI", 9F);
this.btnOpenDataFolder.Location = new System.Drawing.Point(5, 32);
this.btnOpenDataFolder.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
@ -123,39 +124,23 @@ private void InitializeComponent() {
this.btnOpenDataFolder.TabIndex = 1;
this.btnOpenDataFolder.Text = "Open Data Folder";
this.btnOpenDataFolder.UseVisualStyleBackColor = true;
//
//
// numClearCacheThreshold
//
//
this.numClearCacheThreshold.Font = new System.Drawing.Font("Segoe UI", 9F);
this.numClearCacheThreshold.Increment = new decimal(new int[] {
50,
0,
0,
0});
this.numClearCacheThreshold.Increment = new decimal(new int[] { 50, 0, 0, 0 });
this.numClearCacheThreshold.Location = new System.Drawing.Point(210, 5);
this.numClearCacheThreshold.Maximum = new decimal(new int[] {
1000,
0,
0,
0});
this.numClearCacheThreshold.Minimum = new decimal(new int[] {
100,
0,
0,
0});
this.numClearCacheThreshold.Maximum = new decimal(new int[] { 1000, 0, 0, 0 });
this.numClearCacheThreshold.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
this.numClearCacheThreshold.Name = "numClearCacheThreshold";
this.numClearCacheThreshold.Size = new System.Drawing.Size(89, 23);
this.numClearCacheThreshold.TabIndex = 1;
this.numClearCacheThreshold.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.numClearCacheThreshold.TextSuffix = " MB";
this.numClearCacheThreshold.Value = new decimal(new int[] {
250,
0,
0,
0});
//
this.numClearCacheThreshold.Value = new decimal(new int[] { 250, 0, 0, 0 });
//
// checkClearCacheAuto
//
//
this.checkClearCacheAuto.AutoSize = true;
this.checkClearCacheAuto.Font = new System.Drawing.Font("Segoe UI", 9F);
this.checkClearCacheAuto.Location = new System.Drawing.Point(6, 6);
@ -165,9 +150,9 @@ private void InitializeComponent() {
this.checkClearCacheAuto.TabIndex = 0;
this.checkClearCacheAuto.Text = "Clear Automatically When Above";
this.checkClearCacheAuto.UseVisualStyleBackColor = true;
//
//
// labelApp
//
//
this.labelApp.AutoSize = true;
this.labelApp.Font = new System.Drawing.Font("Segoe UI Semibold", 10.5F, System.Drawing.FontStyle.Bold);
this.labelApp.Location = new System.Drawing.Point(0, 0);
@ -176,9 +161,9 @@ private void InitializeComponent() {
this.labelApp.Size = new System.Drawing.Size(97, 19);
this.labelApp.TabIndex = 0;
this.labelApp.Text = "APPLICATION";
//
//
// panelAppButtons
//
//
this.panelAppButtons.Controls.Add(this.btnOpenDataFolder);
this.panelAppButtons.Controls.Add(this.btnOpenAppFolder);
this.panelAppButtons.Controls.Add(this.btnRestart);
@ -188,9 +173,9 @@ private void InitializeComponent() {
this.panelAppButtons.Name = "panelAppButtons";
this.panelAppButtons.Size = new System.Drawing.Size(300, 62);
this.panelAppButtons.TabIndex = 1;
//
//
// labelCache
//
//
this.labelCache.AutoSize = true;
this.labelCache.Font = new System.Drawing.Font("Segoe UI Semibold", 10.5F, System.Drawing.FontStyle.Bold);
this.labelCache.Location = new System.Drawing.Point(0, 112);
@ -199,9 +184,9 @@ private void InitializeComponent() {
this.labelCache.Size = new System.Drawing.Size(123, 19);
this.labelCache.TabIndex = 2;
this.labelCache.Text = "BROWSER CACHE";
//
//
// panelClearCacheAuto
//
//
this.panelClearCacheAuto.Controls.Add(this.checkClearCacheAuto);
this.panelClearCacheAuto.Controls.Add(this.numClearCacheThreshold);
this.panelClearCacheAuto.Location = new System.Drawing.Point(0, 163);
@ -209,9 +194,9 @@ private void InitializeComponent() {
this.panelClearCacheAuto.Name = "panelClearCacheAuto";
this.panelClearCacheAuto.Size = new System.Drawing.Size(300, 28);
this.panelClearCacheAuto.TabIndex = 4;
//
//
// panelConfiguration
//
//
this.panelConfiguration.Controls.Add(this.btnEditCSS);
this.panelConfiguration.Controls.Add(this.btnEditCefArgs);
this.panelConfiguration.Location = new System.Drawing.Point(0, 241);
@ -219,9 +204,9 @@ private void InitializeComponent() {
this.panelConfiguration.Name = "panelConfiguration";
this.panelConfiguration.Size = new System.Drawing.Size(300, 31);
this.panelConfiguration.TabIndex = 6;
//
//
// labelConfiguration
//
//
this.labelConfiguration.AutoSize = true;
this.labelConfiguration.Font = new System.Drawing.Font("Segoe UI Semibold", 10.5F, System.Drawing.FontStyle.Bold);
this.labelConfiguration.Location = new System.Drawing.Point(0, 221);
@ -230,11 +215,10 @@ private void InitializeComponent() {
this.labelConfiguration.Size = new System.Drawing.Size(123, 19);
this.labelConfiguration.TabIndex = 5;
this.labelConfiguration.Text = "CONFIGURATION";
//
//
// flowPanel
//
this.flowPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
//
this.flowPanel.Anchor = ((System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left)));
this.flowPanel.Controls.Add(this.labelApp);
this.flowPanel.Controls.Add(this.panelAppButtons);
this.flowPanel.Controls.Add(this.labelCache);
@ -243,6 +227,7 @@ private void InitializeComponent() {
this.flowPanel.Controls.Add(this.labelConfiguration);
this.flowPanel.Controls.Add(this.panelConfiguration);
this.flowPanel.Controls.Add(this.labelDevTools);
this.flowPanel.Controls.Add(this.checkDevToolsInContextMenu);
this.flowPanel.Controls.Add(this.checkDevToolsWindowOnTop);
this.flowPanel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowPanel.Location = new System.Drawing.Point(9, 9);
@ -250,9 +235,9 @@ private void InitializeComponent() {
this.flowPanel.Size = new System.Drawing.Size(300, 462);
this.flowPanel.TabIndex = 0;
this.flowPanel.WrapContents = false;
//
//
// labelDevTools
//
//
this.labelDevTools.AutoSize = true;
this.labelDevTools.Font = new System.Drawing.Font("Segoe UI Semibold", 10.5F, System.Drawing.FontStyle.Bold);
this.labelDevTools.Location = new System.Drawing.Point(0, 302);
@ -261,27 +246,39 @@ private void InitializeComponent() {
this.labelDevTools.Size = new System.Drawing.Size(156, 19);
this.labelDevTools.TabIndex = 7;
this.labelDevTools.Text = "DEVELOPMENT TOOLS";
//
//
// checkDevToolsInContextMenu
//
this.checkDevToolsInContextMenu.AutoSize = true;
this.checkDevToolsInContextMenu.Font = new System.Drawing.Font("Segoe UI", 9F);
this.checkDevToolsInContextMenu.Location = new System.Drawing.Point(6, 328);
this.checkDevToolsInContextMenu.Margin = new System.Windows.Forms.Padding(6, 6, 3, 2);
this.checkDevToolsInContextMenu.Name = "checkDevToolsInContextMenu";
this.checkDevToolsInContextMenu.Size = new System.Drawing.Size(201, 19);
this.checkDevToolsInContextMenu.TabIndex = 8;
this.checkDevToolsInContextMenu.Text = "Show Dev Tools in Context Menu";
this.checkDevToolsInContextMenu.UseVisualStyleBackColor = true;
//
// checkDevToolsWindowOnTop
//
//
this.checkDevToolsWindowOnTop.AutoSize = true;
this.checkDevToolsWindowOnTop.Font = new System.Drawing.Font("Segoe UI", 9F);
this.checkDevToolsWindowOnTop.Location = new System.Drawing.Point(6, 328);
this.checkDevToolsWindowOnTop.Margin = new System.Windows.Forms.Padding(6, 6, 0, 2);
this.checkDevToolsWindowOnTop.Location = new System.Drawing.Point(6, 352);
this.checkDevToolsWindowOnTop.Margin = new System.Windows.Forms.Padding(6, 3, 3, 2);
this.checkDevToolsWindowOnTop.Name = "checkDevToolsWindowOnTop";
this.checkDevToolsWindowOnTop.Size = new System.Drawing.Size(168, 19);
this.checkDevToolsWindowOnTop.TabIndex = 8;
this.checkDevToolsWindowOnTop.TabIndex = 9;
this.checkDevToolsWindowOnTop.Text = "Dev Tools Window On Top";
this.checkDevToolsWindowOnTop.UseVisualStyleBackColor = true;
//
//
// TabSettingsAdvanced
//
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.flowPanel);
this.Name = "TabSettingsAdvanced";
this.Size = new System.Drawing.Size(631, 480);
((System.ComponentModel.ISupportInitialize)(this.numClearCacheThreshold)).EndInit();
((System.ComponentModel.ISupportInitialize) (this.numClearCacheThreshold)).EndInit();
this.panelAppButtons.ResumeLayout(false);
this.panelClearCacheAuto.ResumeLayout(false);
this.panelClearCacheAuto.PerformLayout();
@ -289,11 +286,8 @@ private void InitializeComponent() {
this.flowPanel.ResumeLayout(false);
this.flowPanel.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnClearCache;
private System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.Button btnEditCefArgs;
@ -312,6 +306,9 @@ private void InitializeComponent() {
private System.Windows.Forms.CheckBox checkClearCacheAuto;
private System.Windows.Forms.FlowLayoutPanel flowPanel;
private System.Windows.Forms.Label labelDevTools;
private System.Windows.Forms.CheckBox checkDevToolsInContextMenu;
private System.Windows.Forms.CheckBox checkDevToolsWindowOnTop;
#endregion
}
}

View File

@ -46,13 +46,11 @@ public TabSettingsAdvanced(Action<string> reinjectBrowserCSS, Action openDevTool
// development tools
toolTip.SetToolTip(checkDevToolsInContextMenu, "Sets whether all context menus include an option to open dev tools.");
toolTip.SetToolTip(checkDevToolsWindowOnTop, "Sets whether dev tool windows appears on top of other windows.");
checkDevToolsInContextMenu.Checked = Config.DevToolsInContextMenu;
checkDevToolsWindowOnTop.Checked = Config.DevToolsWindowOnTop;
if (!BrowserUtils.HasDevTools) {
checkDevToolsWindowOnTop.Enabled = false;
}
}
public override void OnReady() {
@ -68,6 +66,7 @@ public override void OnReady() {
btnEditCSS.Click += btnEditCSS_Click;
checkDevToolsWindowOnTop.CheckedChanged += checkDevToolsWindowOnTop_CheckedChanged;
checkDevToolsInContextMenu.CheckedChanged += checkDevToolsInContextMenuOnCheckedChanged;
}
public override void OnClosing() {
@ -165,6 +164,10 @@ private void RestoreParentForm() {
#region Development Tools
private void checkDevToolsInContextMenuOnCheckedChanged(object sender, EventArgs e) {
Config.DevToolsInContextMenu = checkDevToolsInContextMenu.Checked;
}
private void checkDevToolsWindowOnTop_CheckedChanged(object sender, EventArgs e) {
Config.DevToolsWindowOnTop = checkDevToolsWindowOnTop.Checked;
}

View File

@ -9,7 +9,6 @@
using Microsoft.Win32;
using TweetDuck.Browser;
using TweetDuck.Configuration;
using TweetDuck.Utils;
using TweetLib.Core;
using TweetLib.Core.Features.Notifications;
using TweetLib.Core.Features.Plugins;
@ -24,7 +23,7 @@ public static AnalyticsReport Create(AnalyticsFile file, ExternalInfo info, Plug
return new AnalyticsReport {
{ "App Version" , Program.VersionTag },
{ "App Type" , Program.IsPortable ? "portable" : "installed" },
{ "App Dev Tools" , Bool(BrowserUtils.HasDevTools) },
{ "App Dev Tools" , Bool(UserConfig.DevToolsInContextMenu) },
0,
{ "System Name" , SystemName },
{ "System Edition" , SystemEdition },

View File

@ -122,7 +122,6 @@ private static void Main() {
BrowserCache.RefreshTimer();
CefSharpSettings.WcfEnabled = false;
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
CefSettings settings = new CefSettings {
UserAgent = BrowserUtils.UserAgentChrome,

View File

@ -10,12 +10,6 @@ try{
$sharpMatch = Select-String -Path $mainProj '<Import Project="packages\\CefSharp\.Common\.(.*?)\\'
$sharpVersion = $sharpMatch.Matches[0].Groups[1].Value
$replaceWhenTag = "..\packages\CefSharp.Common.${sharpVersion}\build\CefSharp.Common.props",
"..\packages\CefSharp.WinForms.${sharpVersion}\build\CefSharp.WinForms.props",
"..\packages\CefSharp.WinForms.${sharpVersion}\build\CefSharp.WinForms.targets"
$replaceItemGroupTag = "..\packages\CefSharp.Common.${sharpVersion}\build\CefSharp.Common.targets"
# Greetings
$title = "CEF ${cefVersion}, CefSharp ${sharpVersion}"
@ -26,10 +20,6 @@ try{
# Perform update
Write-Host "Copying dev tools to repository..."
Copy-Item "..\packages\cef.redist.x86.${cefVersion}\CEF\devtools_resources.pak" -Destination "..\bld\Resources\" -Force
Write-Host "Updating browser subprocess reference..."
$contents = [IO.File]::ReadAllText($browserProj)
@ -39,22 +29,6 @@ try{
[IO.File]::WriteAllText($browserProj, $contents)
Write-Host "Removing x64 and AnyCPU from package files..."
foreach($file in $replaceWhenTag){
$contents = [IO.File]::ReadAllText($file)
$contents = $contents -Replace '(?<=<When Condition=")(''\$\(Platform\)'' == ''(AnyCPU|x64)'')(?=">)', 'false'
[IO.File]::WriteAllText($file, $contents)
}
foreach($file in $replaceItemGroupTag){
$contents = [IO.File]::ReadAllText($file)
$contents = $contents -Replace '(?<=<ItemGroup Condition=")(''\$\(Platform\)'' == ''(AnyCPU|x64)'')(?=">)', 'false'
[IO.File]::WriteAllText($file, $contents)
}
# Finished
Write-Host ""

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.props" Condition="Exists('packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.props')" />
<Import Project="packages\CefSharp.Common.86.0.241\build\CefSharp.Common.props" Condition="Exists('packages\CefSharp.Common.86.0.241\build\CefSharp.Common.props')" />
<Import Project="packages\cef.redist.x86.86.0.24\build\cef.redist.x86.props" Condition="Exists('packages\cef.redist.x86.86.0.24\build\cef.redist.x86.props')" />
<Import Project="packages\cef.redist.x64.86.0.24\build\cef.redist.x64.props" Condition="Exists('packages\cef.redist.x64.86.0.24\build\cef.redist.x64.props')" />
<Import Project="packages\CefSharp.WinForms.92.0.260\build\CefSharp.WinForms.props" Condition="Exists('packages\CefSharp.WinForms.92.0.260\build\CefSharp.WinForms.props')" />
<Import Project="packages\CefSharp.Common.92.0.260\build\CefSharp.Common.props" Condition="Exists('packages\CefSharp.Common.92.0.260\build\CefSharp.Common.props')" />
<Import Project="packages\cef.redist.x86.92.0.26\build\cef.redist.x86.props" Condition="Exists('packages\cef.redist.x86.92.0.26\build\cef.redist.x86.props')" />
<Import Project="packages\cef.redist.x64.92.0.26\build\cef.redist.x64.props" Condition="Exists('packages\cef.redist.x64.92.0.26\build\cef.redist.x64.props')" />
<Import Project="packages\Microsoft.Net.Compilers.3.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('packages\Microsoft.Net.Compilers.3.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
@ -45,6 +45,15 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="CefSharp, Version=92.0.260.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.Common.92.0.260\lib\net452\CefSharp.dll</HintPath>
</Reference>
<Reference Include="CefSharp.Core, Version=92.0.260.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.Common.92.0.260\lib\net452\CefSharp.Core.dll</HintPath>
</Reference>
<Reference Include="CefSharp.WinForms, Version=92.0.260.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>packages\CefSharp.WinForms.92.0.260\lib\net452\CefSharp.WinForms.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@ -73,7 +82,7 @@
<Compile Include="Browser\Handling\General\BrowserProcessHandler.cs" />
<Compile Include="Browser\Handling\General\FileDialogHandler.cs" />
<Compile Include="Browser\Handling\General\JavaScriptDialogHandler.cs" />
<Compile Include="Browser\Handling\General\LifeSpanHandler.cs" />
<Compile Include="Browser\Handling\General\CustomLifeSpanHandler.cs" />
<Compile Include="Browser\Handling\KeyboardHandlerBase.cs" />
<Compile Include="Browser\Handling\KeyboardHandlerBrowser.cs" />
<Compile Include="Browser\Handling\KeyboardHandlerNotification.cs" />
@ -427,13 +436,10 @@ IF EXIST "$(ProjectDir)bld\post_build.exe" (
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\Microsoft.Net.Compilers.3.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.3.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('packages\cef.redist.x64.86.0.24\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x64.86.0.24\build\cef.redist.x64.props'))" />
<Error Condition="!Exists('packages\cef.redist.x86.86.0.24\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x86.86.0.24\build\cef.redist.x86.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.86.0.241\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.86.0.241\build\CefSharp.Common.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.86.0.241\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.86.0.241\build\CefSharp.Common.targets'))" />
<Error Condition="!Exists('packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.props'))" />
<Error Condition="!Exists('packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.targets'))" />
<Error Condition="!Exists('packages\cef.redist.x64.92.0.26\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x64.92.0.26\build\cef.redist.x64.props'))" />
<Error Condition="!Exists('packages\cef.redist.x86.92.0.26\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x86.92.0.26\build\cef.redist.x86.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.92.0.260\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.92.0.260\build\CefSharp.Common.props'))" />
<Error Condition="!Exists('packages\CefSharp.Common.92.0.260\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.92.0.260\build\CefSharp.Common.targets'))" />
</Target>
<Import Project="packages\CefSharp.Common.86.0.241\build\CefSharp.Common.targets" Condition="Exists('packages\CefSharp.Common.86.0.241\build\CefSharp.Common.targets')" />
<Import Project="packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.targets" Condition="Exists('packages\CefSharp.WinForms.86.0.241\build\CefSharp.WinForms.targets')" />
<Import Project="packages\CefSharp.Common.92.0.260\build\CefSharp.Common.targets" Condition="Exists('packages\CefSharp.Common.92.0.260\build\CefSharp.Common.targets')" />
</Project>

View File

@ -82,4 +82,8 @@
<s:String x:Key="/Default/Environment/Hierarchy/Build/SolBuilderDuo/UseMsbuildSolutionBuilder/@EntryValue">NewVersion</s:String>
<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/InvokeBeforeBuildAndAfterBuildTargetsForSkippedProjects/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/InvokePreAndPostBuildEventTargetsForSkippedProjects/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/PassVisualStudioParameters/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/PassVisualStudioParameters/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -17,8 +17,6 @@ static class BrowserUtils {
public static string UserAgentVanilla => Program.BrandName + " " + System.Windows.Forms.Application.ProductVersion;
public static string UserAgentChrome => "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/" + Cef.ChromiumVersion + " Safari/537.36";
public static readonly bool HasDevTools = File.Exists(Path.Combine(Program.ProgramPath, "devtools_resources.pak"));
private static UserConfig Config => Program.Config.User;
private static SystemConfig SysConfig => Program.Config.System;
@ -72,7 +70,7 @@ void UpdateZoomLevel(object sender, EventArgs args) {
}
public static void RegisterJsBridge(this IWebBrowser browserControl, string name, object bridge) {
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
browserControl.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
browserControl.JavascriptObjectRepository.Register(name, bridge, isAsync: true, BindingOptions.DefaultBinder);
}

View File

@ -42,12 +42,10 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalTasks}"; Flags: unchecked
Name: "devtools"; Description: "{cm:TaskDevTools}"; GroupDescription: "{cm:AdditionalTasks}"; Flags: unchecked
[Files]
Source: "..\bin\x86\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\bin\x86\Release\devtools_resources.pak"; DestDir: "{app}"; Flags: ignoreversion; Tasks: devtools
Source: "..\bin\x86\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "devtools_resources.pak"
Source: "..\bin\x86\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: TDIsUninstallable
@ -65,7 +63,6 @@ Type: filesandordirs; Name: "{localappdata}\{#MyAppName}\GPUCache"
[CustomMessages]
AdditionalTasks=Additional shortcuts and components:
TaskDevTools=Install dev tools
[Code]
var UpdatePath: String;
@ -117,13 +114,12 @@ begin
Result := (PageID = wpSelectDir) and (UpdatePath <> '')
end;
{ Check the desktop icon task if not updating, and dev tools task if already installed. }
{ Check the desktop icon task if not updating. }
procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID = wpSelectTasks) and (not VisitedTasksPage) then
begin
WizardForm.TasksList.Checked[WizardForm.TasksList.Items.Count-2] := (UpdatePath = '')
WizardForm.TasksList.Checked[WizardForm.TasksList.Items.Count-1] := FileExists(ExpandConstant('{app}\devtools_resources.pak'))
WizardForm.TasksList.Checked[WizardForm.TasksList.Items.Count-1] := (UpdatePath = '')
VisitedTasksPage := True
end;
end;

View File

@ -40,25 +40,19 @@ MinVersion=0,6.1
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "devtools"; Description: "{cm:TaskDevTools}"; GroupDescription: "{cm:AdditionalTasks}"; Flags: unchecked
[Files]
Source: "..\bin\x86\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\bin\x86\Release\devtools_resources.pak"; DestDir: "{app}"; Flags: ignoreversion; Tasks: devtools
Source: "..\bin\x86\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "devtools_resources.pak"
Source: "..\bin\x86\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall shellexec skipifsilent
[CustomMessages]
AdditionalTasks=Additional components:
TaskDevTools=Install dev tools
[Code]
var UpdatePath: String;
var ForceRedistPrompt: String;
var VisitedTasksPage: Boolean;
function TDGetNetFrameworkVersion: Cardinal; forward;
function TDIsVCMissing: Boolean; forward;
@ -69,7 +63,6 @@ function InitializeSetup: Boolean;
begin
UpdatePath := ExpandConstant('{param:UPDATEPATH}')
ForceRedistPrompt := ExpandConstant('{param:PROMPTREDIST}')
VisitedTasksPage := False
if (TDGetNetFrameworkVersion() < 461808) and (MsgBox('{#MyAppName} requires .NET Framework 4.7.2 or newer,'+#13+#10+'please visit {#MyAppShortURL} for a download link.'+#13+#10+#13+#10'Do you want to proceed with the setup anyway?', mbCriticalError, MB_YESNO or MB_DEFBUTTON2) = IDNO) then
begin
@ -105,16 +98,6 @@ begin
Result := (PageID = wpSelectDir) and (UpdatePath <> '')
end;
{ Check the dev tools task if already installed. }
procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID = wpSelectTasks) and (not VisitedTasksPage) then
begin
WizardForm.TasksList.Checked[WizardForm.TasksList.Items.Count-1] := FileExists(ExpandConstant('{app}\devtools_resources.pak'))
VisitedTasksPage := True
end;
end;
{ Install VC++ if downloaded, and create a 'makeportable' file for portable installs. }
procedure CurStepChanged(CurStep: TSetupStep);
begin

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cef.redist.x64" version="86.0.24" targetFramework="net472" />
<package id="cef.redist.x86" version="86.0.24" targetFramework="net472" />
<package id="CefSharp.Common" version="86.0.241" targetFramework="net472" />
<package id="CefSharp.WinForms" version="86.0.241" targetFramework="net472" />
<package id="cef.redist.x64" version="92.0.26" targetFramework="net472" />
<package id="cef.redist.x86" version="92.0.26" targetFramework="net472" />
<package id="CefSharp.Common" version="92.0.260" targetFramework="net472" />
<package id="CefSharp.WinForms" version="92.0.260" targetFramework="net472" />
<package id="Microsoft.Net.Compilers" version="3.0.0" targetFramework="net472" developmentDependency="true" />
</packages>

View File

@ -29,13 +29,13 @@
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="CefSharp, Version=86.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=x86">
<Reference Include="CefSharp, Version=92.0.260, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\CefSharp.Common.86.0.241\CefSharp\x86\CefSharp.dll</HintPath>
<HintPath>..\packages\CefSharp.Common.92.0.260\lib\net452\CefSharp.dll</HintPath>
</Reference>
<Reference Include="CefSharp.BrowserSubprocess.Core, Version=86.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=x86">
<Reference Include="CefSharp.BrowserSubprocess.Core, Version=92.0.260, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\CefSharp.Common.86.0.241\CefSharp\x86\CefSharp.BrowserSubprocess.Core.dll</HintPath>
<HintPath>..\packages\CefSharp.Common.92.0.260\CefSharp\x86\CefSharp.BrowserSubprocess.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
</ItemGroup>