diff --git a/src/HtmlAgilityPack.Shared/HtmlWeb.cs b/src/HtmlAgilityPack.Shared/HtmlWeb.cs index c626fd41..c06fdb08 100644 --- a/src/HtmlAgilityPack.Shared/HtmlWeb.cs +++ b/src/HtmlAgilityPack.Shared/HtmlWeb.cs @@ -781,6 +781,10 @@ public partial class HtmlWeb #region Properties + /// Gets or sets the automatic decompression. + /// The automatic decompression. + public DecompressionMethods AutomaticDecompression { get; set; } + /// /// Gets or Sets a value indicating if document encoding must be automatically detected. /// @@ -1553,6 +1557,8 @@ private HttpStatusCode Get(Uri uri, string method, string path, HtmlDocument doc req = WebRequest.Create(uri) as HttpWebRequest; req.Method = method; req.UserAgent = UserAgent; + req.AutomaticDecompression = AutomaticDecompression; + if (CaptureRedirect) { req.AllowAutoRedirect = false; @@ -2517,6 +2523,17 @@ public HtmlDocument LoadFromBrowser(string url, Func isBrowserScri var scripErrorSuppressedProperty = webBrowserType.GetProperty("ScriptErrorsSuppressed"); scripErrorSuppressedProperty.SetValue(webBrowser, true, null); + // disable popup + { + var newWindowEvent = webBrowser.GetType().GetEvent("NewWindow"); + if(newWindowEvent != null) + { + var newWindowHandler = this.GetType().GetMethod("Web_NewWindow", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + Delegate newWindowDelegate = Delegate.CreateDelegate(newWindowEvent.EventHandlerType, null, newWindowHandler); + newWindowEvent.AddEventHandler(webBrowser, newWindowDelegate); + } + } + var navigateMethod = webBrowserType.GetMethod("Navigate", new Type[] {typeof(Uri)}); navigateMethod.Invoke(webBrowser, new object[] {uri}); @@ -2563,6 +2580,17 @@ public HtmlDocument LoadFromBrowser(string url, Func isBrowserScri return doc; } + + private void Web_NewWindow(object sender, object e) + { + // we don't want a dynamic reference so we do it via reflection + var cancelProperty = e.GetType().GetProperty("Cancel"); + if(cancelProperty != null) + { + cancelProperty.SetValue(e, true, null); + } + } + #endif #endregion