diff --git a/Browser/Handling/ContextMenuBase.cs b/Browser/Handling/ContextMenuBase.cs index 5f720a7d..9cc4c84e 100644 --- a/Browser/Handling/ContextMenuBase.cs +++ b/Browser/Handling/ContextMenuBase.cs @@ -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"); } diff --git a/Browser/Handling/General/LifeSpanHandler.cs b/Browser/Handling/General/CustomLifeSpanHandler.cs similarity index 59% rename from Browser/Handling/General/LifeSpanHandler.cs rename to Browser/Handling/General/CustomLifeSpanHandler.cs index 72ccf598..140e1e29 100644 --- a/Browser/Handling/General/LifeSpanHandler.cs +++ b/Browser/Handling/General/CustomLifeSpanHandler.cs @@ -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) {} } } diff --git a/Browser/Handling/KeyboardHandlerBase.cs b/Browser/Handling/KeyboardHandlerBase.cs index 5cf5ae78..7ad390cb 100644 --- a/Browser/Handling/KeyboardHandlerBase.cs +++ b/Browser/Handling/KeyboardHandlerBase.cs @@ -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; } diff --git a/Browser/Handling/RequestHandlerBase.cs b/Browser/Handling/RequestHandlerBase.cs index 0ccca4c3..baf67beb 100644 --- a/Browser/Handling/RequestHandlerBase.cs +++ b/Browser/Handling/RequestHandlerBase.cs @@ -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) { diff --git a/Browser/Handling/ResourceRequestHandlerBase.cs b/Browser/Handling/ResourceRequestHandlerBase.cs index 03738252..0fa904a0 100644 --- a/Browser/Handling/ResourceRequestHandlerBase.cs +++ b/Browser/Handling/ResourceRequestHandlerBase.cs @@ -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); } diff --git a/Browser/Notification/FormNotificationBase.cs b/Browser/Notification/FormNotificationBase.cs index b8b2bb84..50d640d5 100644 --- a/Browser/Notification/FormNotificationBase.cs +++ b/Browser/Notification/FormNotificationBase.cs @@ -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 }; diff --git a/Browser/TweetDeckBrowser.cs b/Browser/TweetDeckBrowser.cs index 8471e092..addd7223 100644 --- a/Browser/TweetDeckBrowser.cs +++ b/Browser/TweetDeckBrowser.cs @@ -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 }; diff --git a/Configuration/UserConfig.cs b/Configuration/UserConfig.cs index 4faf6590..b95daf0e 100644 --- a/Configuration/UserConfig.cs +++ b/Configuration/UserConfig.cs @@ -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 diff --git a/Dialogs/FormGuide.cs b/Dialogs/FormGuide.cs index d07bd2b7..a87cd830 100644 --- a/Dialogs/FormGuide.cs +++ b/Dialogs/FormGuide.cs @@ -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 }; diff --git a/Dialogs/FormSettings.cs b/Dialogs/FormSettings.cs index 69fb3e1c..7f3651e2 100644 --- a/Dialogs/FormSettings.cs +++ b/Dialogs/FormSettings.cs @@ -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; diff --git a/Dialogs/Settings/DialogSettingsCSS.cs b/Dialogs/Settings/DialogSettingsCSS.cs index 67f5ea5c..2bf50f24 100644 --- a/Dialogs/Settings/DialogSettingsCSS.cs +++ b/Dialogs/Settings/DialogSettingsCSS.cs @@ -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); } diff --git a/Dialogs/Settings/TabSettingsAdvanced.Designer.cs b/Dialogs/Settings/TabSettingsAdvanced.Designer.cs index fcf5977b..93514752 100644 --- a/Dialogs/Settings/TabSettingsAdvanced.Designer.cs +++ b/Dialogs/Settings/TabSettingsAdvanced.Designer.cs @@ -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 } } diff --git a/Dialogs/Settings/TabSettingsAdvanced.cs b/Dialogs/Settings/TabSettingsAdvanced.cs index 993c476e..02c9b0a6 100644 --- a/Dialogs/Settings/TabSettingsAdvanced.cs +++ b/Dialogs/Settings/TabSettingsAdvanced.cs @@ -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; } diff --git a/Management/Analytics/AnalyticsReportGenerator.cs b/Management/Analytics/AnalyticsReportGenerator.cs index 043314e5..2f81320c 100644 --- a/Management/Analytics/AnalyticsReportGenerator.cs +++ b/Management/Analytics/AnalyticsReportGenerator.cs @@ -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 }, diff --git a/Program.cs b/Program.cs index d9e2fa42..1ef31873 100644 --- a/Program.cs +++ b/Program.cs @@ -122,7 +122,6 @@ private static void Main() { BrowserCache.RefreshTimer(); CefSharpSettings.WcfEnabled = false; - CefSharpSettings.LegacyJavascriptBindingEnabled = true; CefSettings settings = new CefSettings { UserAgent = BrowserUtils.UserAgentChrome, diff --git a/Resources/PostCefUpdate.ps1 b/Resources/PostCefUpdate.ps1 index 2dd4f4e0..1ff4c67d 100644 --- a/Resources/PostCefUpdate.ps1 +++ b/Resources/PostCefUpdate.ps1 @@ -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 "" diff --git a/TweetDuck.csproj b/TweetDuck.csproj index dad66e31..fb566339 100644 --- a/TweetDuck.csproj +++ b/TweetDuck.csproj @@ -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> \ No newline at end of file diff --git a/TweetDuck.sln.DotSettings b/TweetDuck.sln.DotSettings index 6f53646c..286591ff 100644 --- a/TweetDuck.sln.DotSettings +++ b/TweetDuck.sln.DotSettings @@ -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> diff --git a/Utils/BrowserUtils.cs b/Utils/BrowserUtils.cs index 8b049268..aabbbe52 100644 --- a/Utils/BrowserUtils.cs +++ b/Utils/BrowserUtils.cs @@ -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); } diff --git a/bld/gen_full.iss b/bld/gen_full.iss index ea4a9143..10e67d5c 100644 --- a/bld/gen_full.iss +++ b/bld/gen_full.iss @@ -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; diff --git a/bld/gen_port.iss b/bld/gen_port.iss index 199750ad..7a0c2a82 100644 --- a/bld/gen_port.iss +++ b/bld/gen_port.iss @@ -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 diff --git a/packages.config b/packages.config index 6e39854b..3033060b 100644 --- a/packages.config +++ b/packages.config @@ -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> \ No newline at end of file diff --git a/subprocess/TweetDuck.Browser.csproj b/subprocess/TweetDuck.Browser.csproj index 8fc355bb..69d5e1cd 100644 --- a/subprocess/TweetDuck.Browser.csproj +++ b/subprocess/TweetDuck.Browser.csproj @@ -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>