History

14.2

  • 14.2.13 Version History (7/21/2020)

    21-Jul-2020

    New

    • This new update supports RAD Studio 10.4 Sydney. No other changes were introduced.

    This version is binary compatible with previous IW 14.2.10+

  • 14.2.12 Version History (7/12/2019)

    12-Jul-2019

    Bug fix

    • Fixes an issue which causes IW application to fail when certain AV extensions are installed in browsers (e.g. Kaspersky AV)

    This version is binary compatible with previous IW 14.2.10+

  • 14.2.10 Version History (1/15/2019)

    New

    • Includes Delphi 10.3 Rio support
    • Fixes Bundled licenses registration which could fail in previous version (14.2.9)
    • Free update for Registered RAD Studio/Delphi 10.3 Users, including Community Edition

    This version is based on 14.2.8 code base.

  • 14.2.9 Version History (12/12/2018)

    New

    • Includes Delphi 10.3 Rio support
    • Free update for Registered RAD Studio/Delphi 10.3 Users, including Community Edition

    This version is based on 14.2.8 code base.

  • 14.2.8 Version History (6/3/2018)

    Bug Fixes

    • ISAPI applications would fail to create valid error responses (status code 500) when parsing invalid header fields (e.g. invalid cookie fields)

    New

    • ISAPI applications now allow redirection from HTTP to HTTPS. It is much easier to do that from IntraWeb than from IIS or other server. Requires:
      – ServerController.SSLOptions.NonSSLRequest = nsRedirect
      – ServerController.ProxyPortRedirection.Active
      – ServerController.ProxyPortRedirection.HttpsPort > 0

    Modified

    • Invalid characters in URL exceptions now show the offending URL in error message

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.7 Version History (2/22/2018)

    Bug Fixes

    • Allow grids to use % CSS unit for width and height of the cell
    • Under very rare circumstances an AV could happen when creating and destroying containers (IWRegions and descendants) at runtime (Thanks to TeamZed member Pete d’Oronzio for isolating this rare case and proposing a fix).

    Modified

    • New: Protection against arbitrary methods on server (Only GET and POST are accepted by default)
    • This version sets TIWServerControllerBase.DisableFixupPatch to TRUE by default, meaning that the modifications for Delphi’s fix up mechanism are disabled by default. We have found a few side effects in some applications and we decided to disable this patch until these cases are fully resolved.

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.6 (1/4/2018)

    Bug Fixes

    • Fixed validation of some new licenses
    • Fixed IWTreeView rendering for RTL languages
    • Fixed deletion of some temporary cache files after Async responses containing lots of data (> 32 kb)

    Modified

    • IWGrids won’t render border if StyleRenderOptions.RenderBorder = False
    • If application log file can’t be created (e.g. read only folder), Windows Event log will be used instead

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.5 (11/20/2017)

    Bug Fixes

    • Fixes different issues when registering Delphi and C++ Builder license keys
    • ISAPI only: Depending on allowPathInfo setting, IIS can include SCRIPT_NAME in PATH_INFO information making ISAPI applications to fail.
    • Possible AV in IWStringReplace() call

    Modified

    • Improved logic to handle temporary file deletion when session terminates.

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.4 (11/12/2017)

    Bug Fixes

    • AV when sorting controls list in Delphi 2009-XE
    • AJAX (Async) requests could fail to restart expired sessions when RestartExpiredSessions = True
    • ContentHandlers execution could fail when starting a new session and RequireSessionStart = True
    • FireFox Developer edition installation detection. When FF Developer Edition is installed, IW GUI Stand Alone Server will use it preferably (executed from menu/button bar)

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.3 (10/11/2017)

    Bug Fixes

    • Fixes relative order of aligned controls in IWForms

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.2 (10/10/2017)

    Bug Fixes

    • Fixed malformed html on application initialization. This could cause startup failure of IW application in some browsers
    • Fixed different issues in OnResize and OnAsyncResize events. Enhanced handling of resize events when browser is continuously resized (i.e. user drags browser window border continuously)

    This version is binary compatible with version 14.2.x. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.1 (9/7/2017)

    Bug Fixes

    • Exception when executing Async events. It only affects Delphi XE, 2010 and 2009.

    Modified

    • A few performance improvements when reading request streams
    • Minor fixes

    This version is binary compatible with version 14.2.0. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.2.0 (8/29/2017)

    New

    • New Debug visualizers for THttpRequest and other IntraWeb internal classes (Delphi 2010 and up)
    • New 404 error page. It has the same layout of other IntraWeb standard error pages and can be customized (or replaced) the same way.
    • New event IWForm.OnAsyncResize. Allows resize notification just like standard OnResize, however it also allows users to respond to the browser resize through Ajax, like any other async request.
    • New security features:
      • ServerController.SecurityOptions.PreventDoubleSubmission which prevents a double post, i.e. POST request caused by browser refresh after a previous post request. IntraWeb will identify a browser refresh after a POST and disables the double submission (Cookies are required).
      • Method interchange prevention, prevents that parameters sent through URI query string are processed as a POST request.
    • New ServerController.OnBeforeNewSession event. This event is triggered just before creating a new session. Users can abort the session creation using it. A standard 404 page will be returned when session creation is aborted.
    • New property ServerController.HTMLLanguage. New property TIWApplication.Language (default = ServerController.HTMLLanguage). Different sessions can get diferent Language values. If not specified, English (“en”) is used
    • New unit IWClassesFix.pas changes the way Delphi’s fixup resolution works. New IntraWeb fixup resolution is done on a per-thread basis. The new fixup resolution (enabled by default) can be disabled using a new class property DisableFixupPatch in TIWServerController (public, not published thus not visible in Object Inspector). We strongly recommend that this should be enabled in every IntraWeb application.

    Bug Fixes

    • Cookies expires field could be wrongly set when using ASPX modules (update ASPX binaries only)
    • IWDBGrid.RollOver doesn’t work as expected
    • TIWButton would not render correct height on MacOS/Safari
    • IntraWeb Stand Alone server could fail to detect Firefox
    • Async key press event would fail to report some special keys like ESCAPE

    Modified

    • TIWApplication.Terminate(const aMsg: string) can receive a complete HTML text as parameter.
    • Templates allow usage of wildcards (* and ?) in component names. Example: {%IWCheckBox*%} will insert all controls which name start with “IWCheckBox“, found when the template is processed. This includes “IWCheckBox1“, “IWCheckBox2“, “IWCheckBoxABCD“. This makes easy for users to include components created at runtime.
    • Classes.GlobalNameSpace lock used in RTL (based on slow and possibly buggy TMultiReadExclusiveWriteSynchronizer) was replaced by a faster and more reliable lock based on TCriticalSection.
    • All locks based on TMultiReadExclusiveWriteSynchronizer or TMonitor were replaced by more reliable versions based on TCriticalSection.
    • Custom IW data containers replace TList, TObjectList and TStringList in several places within IntraWeb code. TList is deprecated in Delphi 10.2. The generic version TList<T> is slow and consumes lots of memory. The new custom classes use less memory and are much faster.
    • New version of ASPX binaries. If you are using ASPX deployment, replace the old binaries.
    • IntraWeb Setup allows user to run IW Bundled Removal tool when setup is complete.
    • Dozens of other small fixes and improvements.

    This version is not binary compatible with previous version. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), need to be recompiled from sources.


14.1

  • 14.1.14 (5/11/2017)

    Bug Fixes

    • Fixes a possible Access Violation in IWTabControl when receiving invalid page index at runtime
    • Fixes issues validating Bundled licenses under Delphi 10.1 Berlin (Update 2) and Delphi 10.2 Tokyo. This only affects BUNDLED licenses.

    This version is binary compatible with previous version. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.1.13 (4/28/2017)

    Bug Fixes

    • Fixes cache file handling in some special circumstances. This also fixes some cases where WebApplicaiton.SendFile() would fail when used with Async events
    • Under some very specific cases IntraWeb design time package could fail do identify Delphi 10.2 Tokyo installation (exact version and edition). This only affects BUNDLED licenses.

    This version is binary compatible with previous version. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.1.12 (4/23/2017)

    Bug Fixes

    • IntraWeb design time package could fail to load in Delphi 2009-XE5 with error “EReadError in module rtlxxx.bpl at xxxxx. Error reading RechEdit1.Zoom: Property Zoom does not exist.”

    This version is binary compatible with previous version. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.1.11 (4/18/2017)

    Bug Fixes

    • IntraWeb design time package could fail to identify Delphi 10.2 Tokyo IDE in certain installations. If you are using a previous IDE or previous version is working correctly you don’t need this update.

    This version is binary compatible with previous version. Third party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), don’t need to be recompiled.

  • 14.1.10 (4/12/2017)

    Bug Fixes

    • Registration for Delphi 10.2 Tokyo could fail under certain circumstances
    • TIWBorderOptions fixed style rendering (missing semicolon)
    • Trim() is used in ServerController.OnRewriteURL event to prevent blank spaces in URL base.

    Known Issues

    • Due to a C++ Builder 10.2 64-bit bug, IntraWeb won’t work correctly when compiled as a C++ Builder 64 bit application (Delphi applications work correctly, though). If you are a C++ Builder 10.2 user, please vote for this bug: https://quality.embarcadero.com/browse/RSP-17722
    • If you are installing the first time on Delphi/C++Builder 10.2 Tokyo, please run IntraWeb Bundled Removal Tool (which is also installed in the \Tools sub folder). This is absolutely required!

    This version is not binary compatible with previous version. If you have 3rd party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), you must recompile these libraries from the source code.

  • 14.1.9 (4/4/2017)

    New

    • Delphi 10.2 Tokyo support Delphi and C++, Win32 and Win64
    • ServerController.SecurityOptions.RandomTempFileNames property (Boolean). If true (default) temp and cache files will use true random file names (generated from a GUID)
    • Cache files can be created with extension

    Bug Fixes

    • TIWCustomRadioButton.SetChecked() must uncheck other radio buttons in same group when checked = True
    • Fix rendering of HTML tag attributes mainly in IWGrid
    • Under some very rare circumstances, ISAPI could fail to receive complete request from IIS

    Modified

    • MakeTempFile moved to IW.Common.System.pas
    • Lots of refactorings, small fixes and improvements

    Known Issues

    • Due to a C++ Builder 10.2 64-bit bug, IntraWeb won’t work correctly when compiled as a C++ Builder 64 bit application (Delphi applications work correctly, though). If you are a C++ Builder 10.2 user, please vote for this bug: https://quality.embarcadero.com/browse/RSP-17722
    • If you are installing the first time on Delphi/C++Builder 10.2 Tokyo, please run IntraWeb Bundled Removal Tool (which is also installed in the \Tools sub folder). This is absolutely required!

    This version is not binary compatible with previous version. If you have 3rd party dependent libraries (e.g. TMS, CG Tools, IWBootstrap), you must recompile these libraries from the source code.

  • 14.1.8 (3/20/2017)

    Bug Fixes

    • Multiple frames created at runtime parented by IWRegions would render in incorrect order
    • TIWTabPage (pages of TIWTabControl component) render border correctly, according to BorderOptions settings
    • Fixes JavaScript name conflicts with Google maps API
    • TIWMarkupLanguageTag.RenderElement() should render attributes with blank or empty values. Empty attributes added to BODY tag in templates should render correctly.
    • IDE – Update check form: Under certain circumstances clicking on the version update link could cause IDE to crash
    • C++ Builder x64 Library Path on Delphi 10.1 Berlin wrongly updated by IW Setup program

    This version is binary compatible with previous version

  • 14.1.7 (3/5/2017)

    Bug Fixes

    • IWTabControl.RenderInvisibleControls = False, a JavaScript error can occur if one of tab pages invisible
    • Double slash in progress indicator url could cause page load to fail
    • IW JavaScript could present errors while processing Ajax responses in pages containing Google maps API JS

    Modified

    • Version checker runs in a thread so won’t affect IDE loading times
    • WOFF2 and EOT fonts added to MimeTypes
    • IWLink cursor set to default when disabled
    • Restored IWLink old font rendering behavior (text without underline is rendered as expected)
    • TIWApplication.GetHost() logic now handles HTTPS reverse proxy servers

    This version is binary compatible with previous version

  • 14.1.6 (2/8/2017)

    Bug Fixes

    • IWComboBox, IWListBox and descendants would fail if ItemsHaveValues=True and value contains space or other special chars
    • OnRewriteURL event would not set URLBase as expected, causing it to fail when running with reverse proxy servers
    • Fix issues caused by wrong URLs generated when IW application runs behind a (reverse) proxy server, using different ports for HTTP and HTTPS. Also fixes issues when switching from HTTP to HTTPS and vice-versa
    • Fix IE 7/8 JavaScript incompatibility

    Modified

    • IWTabControl: Improved rendering. Removed ugly flick when rendering tabs for the first time
  • 14.1.5 (1/26/2017)

    Bug Fixes

    • Bug fix: Fix for Stack Overflow caused by recursive calls of IWContainer.ForceAlign
    • Bug fix: TIWGradButton font could be rendered twice. It does not cause any issues, but increase HTML size.
    • Bug fix: Start handlers behaviour has been restored (same of 14.0.63)

    Modified

    • IWTabControl much improved and mostly redesigned. Changes should not break existing applications
    • Modified: IWComboBox won’t reset ItemIndex to -1 when clearing/filling item list.
    • Modified: TIWContainer.RenderComponents() now renders invisible TFrames when RenderInvisibleControls is True
    • Modified (rendering):
      • IWFont does not render text-decoration attribute unless necessary (text-decoration is not inherited in CSS so “none” – the default value – does not need to be rendered)
      • TIWImage renders border style inside its internal style sheet, not inlined
      • border-style and border-color attributes are only rendered when necessary (i.e. border-width > 0)
      • TIWContainer won’t render “padding” attibute when StyleRenderOptions.RenderPadding is False
      • TIWBorderOptions now uses CSS shorthand when rendering border style

  • 14.1.4 (12/22/2016)

    New Property

    • RawText in TIWRadioButton and TIWRadioGroup classes
    • PageRenderOptions in TIWForm.
    • RenderMargins: When True IWForm will render style with “Margin: 0”. Disable it when using templates which set body margin to a different value

    New Unit

    • IW.Server.Logger which contains TIWRequestLogger class. This class, when active, is able to log all ISAPI application requests (headers, fields, cookies, content, etc.)

    Bug Fix

    • Changing IWComboBox items during async event using the new OPTGROUP option could fail
    • IWGradButton renders font style even when StyleRenderOptions.RenderFont is false
    • IWDBGrids header cells won’t use template styles
    • AlignWithMargins would generate incorrect sizes of elements when using contiguous controls
  • 14.1.3 (12/5/2016)

    Bug Fix

    • IWFileUploader could truncate small uploaded files (<8kb)
    • PreHeader and ExtraHeader could be wrongly rendered in certain circumstances, when used in component context
  • 14.1.2 (11/30/2016)

    Bug Fix

    • regression bug in TIWFileUploader.SaveToStream() method.
  • 14.1.1 (11/28/2016)

    Misc

  • 14.1.0 (11/22/2016)
    • IntraWeb controls use less memory and perform better than previous versions. Major refactoring of base classes and controls, using improved data structures which use less memory and have better performance when compared to standard Delphi data structures (mainly TStringList).
    • New: class TBufferedHandleStream which drastically improves stream write and read performance. TempFileStream now descends from TBufferedHandleStream. New class TIWFileStream, descends from TBufferedHandleStream
    • New: TIWExceptionCallback allows 3rd party exception tracers/loggers (e.g. EurekaLog) to integrate with IntraWeb using a pre-defined, dedicated interface.
    • New: TIWControl and TIWRegion now render margins when AlignWithMargins = True
    • New: IWComboBox now allows grouping of related options in the list, using OPTGROUP tag. Each group in the list must start with the plus sign char (+), e.g. “+Group 1”..
    • New: New basic data structures (list and dictionary classes) are used instead of TStringLists, in several internal classes. Less memory usage and more performance.
    • New: ServerController.OnRewriteURL event lets you specify Reverse proxy or RewriteURL parameter using events
    • New: IWModalWindow: Button close action can be skipped using “|NoClose”
    • New: TIWLayoutMgrForm, TIWLayoutMgrHTML and TIWTemplateProcessorHTML have a new published property StyleAttributesToRemove (TStringList). Each style attribute in the StyleAttriutesToRemove list will be removed when rendering controls in a form using templates
    • New: IWMonitor property jsCallbackName. This parameter is optional. When set, IWMonitor will call this JavaScript function each time it queries the status value from IW server. This function should be provided by user (JavaScript function).
    • New method CenterInParent() available in TIWCustomControl and TIWBaseContainer (TIWRegion and descendants). Centers a control within its parent’s client area
    • New property CustomLockerAnimationFile (an animated gif file name), which allows you to customize the IWLocker image. A new (slightly bigger) locker is default. Many free sample lockers can be found inside \Images\LoadingGif subfolder
    • New properties:
      • TIWBaseForm.IsFirstRequest
      • TIWBaseForm.IsPostBack and TIWApplication.IsPostBack
      • TIWApplication.IsFormFirstRequest
    • Bug fix: Frame name validation wrongly raises an exception when 2 existing frames descend from the same parent frame (check the new “Frame Inheritance” demo project in our demo repository)
    • Bug fix: Aligned invisible controls (e.g. IWRegion with Visible=True, Align=alBottom) would still be considered when aligning other controls. This caused other controls to be wrongly aligned, as the invisible control was actually visible.
    • Bug fix: TIWDBLookupComboBox and TIWDBLookupListBox could show NonSelectionText property instead of actual selected item text after sync event
    • Bug fix: possible issue with multiple threads uploading files (FFileList)
    • Bug fix: WebApplication methods SwitchToSecure/SwitchToNonSecure (HTTPS <-> HTTP) could fail
    • Bug fix: Under very rare circumstances, some temporary files could remain until application termination
    • Bug fix: TIWDBGrid rendering issues when a control is assigned to a cell. Refreshing the Grid in Edit mode should not raise excepion
    • Modified: IWLists.pas has been renamed to IW.Common.Lists.pas
    • Modified: Faster SA Server with an Indy intercept class customization
    • Modified: IW Version check form is non modal, so IDE continues loading while the form is visible
    • Modified: TIWCompressionOptions.MinSize is now 512 bytes (instead of 1024)
    • Modified: “attr” tag is used instead of “attribute” in XML node (async response). This reduces the size of XML response, in average, 100+ bytes per object modified in an AJAX request.
    • Modified: TIWResyncInfo record (used when detecting sync issues/BackButton events) has 2 new members: FormOutOfSync and TrackIdOutOfSync.
    • IWBundledRemovalTool is now part of IntraWeb installation. It can be found inside folder \Tools\BundledRemoval
    • Dozens of other small improvements and fixes

14.0

  • 14.0.63 and before (7/30/2016)

    History for these versions was imported from our old web site. Some older links may be broken or refer to content that no longer exists.

    14.0.63

    • Bug fix: ISAPI Basic Authentication was not working properly. “Authentication Failed” message was returned before user authentication occurs.
    • Bug fix: Delphi 10.1 Berlin PRO IDE package could fail to validate bundled license
    • Modified: Improved resolution of callback method names. Custom callback (Async) functions can be registered using a DOT, providing fully qualified method names (e.g. “IWForm1.MyCallback”). This modification should not affect existing code.
    • Modified: ServerController.RewriteURL can also be used in Stand Alone applications (makes easy to integrate with Reverse Proxy servers, e.g. Abyss Web Server)
    • This version is binary compatible with 14.0.53+

    14.0.62

    • Bug fix: On x64 TIWServerInternalFiles.GetResourceStream() could fail
    • Bug fix: TIWApplication.TerminanteAndRedirect() method would fail if called from within a content handler’s Execute() method
    • Bug fix: Do not trigger ServerController.OnNewSession event when session is terminated during OnBrowserCheck event. Session termination should work as expected.
    • Modified: TIWApplication.Terminate method (the overloaded version without string parameter) will return a 404 code when no content is provided by the user
    • Modified: TIWApplication.Browser internal instance is now destroyed after application forms (avoid issues if WebApplication.Browser is referenced during form destruction)
    • Small performance improvements
    • This version is binary compatible with 14.0.53+

    14.0.61

    • Bug fix: In some circumstances (mainly using a proxy/load balancer server) link files could be rendered with wrong URL (AddLinkFile)
    • Bug fix: ASPX Library could fail with 3rd party controls (CG Tools)
    • Improved Delphi IDE Edition detection. This fixes many installation problems, mainly on Delphi 10 Seattle and 10.1 Berlin
    • Bug fix: New C++ ISAPI created using IntraWeb Application Wizard would contain wrong #include file list among other issues.
    • This version is binary compatible with 14.0.53+

    14.0.60

    • Bug fix: Setting Enabled and Visible properties of TIWComboBox control and descendants during async evens would fail
    • Bug fix: Changing the Items list of a TIWComboBox control and descendants could make ItemIndex property invalid
    • This version is binary compatible with 14.0.53+

    14.0.59

    • Bug fix: IWDBComboBox: Clearing the underlying DataField during async event wouldn’t update the control text
    • Bug fix: IWComboBox and descendant classes would fail to render in Async if NoSelectionText contained some XML special char (<, &, >, ” and ‘)
    • Bug fix: TIWSlimReaderWriter could fail when compiled as x64
    • Bug fix: EAbort should be silent when raised during form execution
    • Modified: IWJclDebug now ignores all EIdSilentException (e.g. EIdConnClosedGracefully) and EAbort exceptions
    • This version is binary compatible with 14.0.53+

    14.0.58

    • Setup fix: IntraWeb setup program failed to update some files.
    • This version is binary compatible with 14.0.53+

    14.0.57

    • Bug fix: ISAPI ThreadPool should disable itself under Apache (or other web server which does not support the asynchronous I/O used by the thread pool, like Abyss)
    • Bug fix: ISAPI application could fail during start up when compiled as x64 (didn’t affect x86)
    • Bug fix: Redirection to HTTPS was not working properly when using content handlers
    • Bug fix: Content Handlers discovery could fail when query string was not empty
    • Bug fix: Content handlers execution when starting a new session could fail
    • Modified: MappedURL should not be cleared unless when changing active form
    • Improvements in TIWTemplateProcessorHTML performance
    • Other small changes and fixes
    • This version is binary compatible with 14.0.53+

    14.0.56

    • This version is binary compatible with 14.0.53+. It fixes the following bug(s):
    • Bug fix: Unicode chars in content fields were not handled correctly (ISAPI only).
    • Bug fix: Content fields bigger than 64Kb would be truncated  (ISAPI only).
    • Bug fix: IWComboBox/IWListBox would present wrong selected items after populating the list in Async event handlers.
    • Small improvements in ISAPI code. Less AnsiString <-> String conversions.

    14.0.55

    • This version is binary compatible with 14.0.53 and 14.0.54. It fixes the following bug(s):
    • Bug fix: Content-type header field was missing when serving really small files which were sent inline (not using temp files). Some browsers won’t handle the file correctly without the Content-type header field. This issue affects ISAPI projects only.

    14.0.54

    • This version is binary compatible with 14.0.53. It fixes the following bug(s):
    • Bug fix: Under specific circumstances, AJAX call could fail to execute. It was confirmed in XE6 only, but it might affect all other IDEs.

    14.0.53

    • New: Delphi 10.1 Berlin support, both Delphi and C++ Builder, x32 and x64. Before installing it in Delphi 10.1 Berlin, please remove the bundled version, following these instructions (download an run the updated IW Bundled Removal Tool, which supports Delphi 10.1 Berlin).
    • New: Support for OpenSSL version 1.0.2g and later in stand alone servers (updated Indy Open SSL units)
    • New property ServerController.PostRedirectGet, which implements a Post/Redirect/Get pattern in post requests
    • New: properties FriendlyName, CloseButtonVisible and CloseOnEscKey added to IWModalWindow.
    • New: ISAPI implementation was rewritten (new unit IW.ISAPI.Extension.pas). The new implementation is much faster and is not based on WebBroker. New TIWISAPIThreadPool class (new unit IW.Isapi.ThreadPool.pas) which replaces the Delphi built-in TISAPIThreadPool. Read more about it here.
    • New constant RSAuthFailedMessage which allows you to modify the “Authentication failed” default message string.
    • New IWForm events OnRefreshForm and OnGenerateForm. OnRefreshForm event is triggered in a response to a GET request, when the form is rendered again due to a browse refresh, back button click or redirection (e.g. 302 or 307 responses)
    • Bug fix: When IWModalWindow was visible, focusable elements beneath overlay div could be focused using tab key.
    • Modified: ESC key now closes IWModalWindow (the same as close button “x” at the top right was pressed)
    • Modified: IWModalWindow resets tabIndex property of all focusable elements (keeping relative order), making navigation using tab key more user friendly
    • Bug fix: IWModalWindow.RenderStyle property now works correctly.
    • Bug fix: IWLabel: NoWrap works as expected when StyleRenderOptions.RenderSize = False (AutoSize = True). Text is now truncated, which is the expected behavior. IWLabel does not render non-standard tag anymore.
    • Bug fix: Setting IWComboBox and IWListBox ItemIndex property at runtime during an Async event might not work as expected
    • Bug fix: a bug introduced in IW 14.0.51 broke IWBackIntercept normal behaviour
    • Modified: TFrame alignment works as expected when created at runtime.
    • Bug fix: ResetSessionId wasn’t working as expected when AllowMultiSessionPerUser was true.
    • Bug fix: Correct TrackID handling when used in Ajax requests, i.e., an Ajax request increments TrackID as it should
    • Modified: Session log updated to support reset session ID event. Stream version updated. Log files created with this version need newest log file viewer application.
    • Extended: LogSessionEvent now correctly logs Callback (AJAX) request parameters. Requires new version of Log viewer application.
    • Bug fix: Included Indy fix for HTTP 411 error on GET request from iOS 8 Safari
    • TIWResyncInfo record used in OnBackButton event now also contains the session object (Session: TIWApplication). Few issues regarding OnBackButton were fixed.
    • Many other small fixes and improvements.

    14.0.52

    • Bug fix: In TIWFileUploader, when selecting multiple files, event OnAsyncSelectFile parameters only contain the first file name. This issue affects all browses, except Internet Explorer.
    • Bug fix: In MS Edge, gradients (TIWGradButton) didn’t show correctly
    • Bug fix: Under very rare circumstances a exception ‘aBytes is not large enough to hold stream’ could be raised when committing the reply
    • Bug fix: Do not trigger IWForm.OnShow event handler when destroying the Session
    • This version is binary compatible with version 14.0.48 and later

    14.0.51

    • Bug fix: Fixes gSessions.LockList/UnLockList error when used from another thread.
    • Bug fix: Fixes “Bad Request” errors in Internet Explorer 11 and MS Edge browsers when handling OnAsyncKeyDown/Up events and keys like Shift or Backspace were pressed.
    • Improved: Serving static files (css, javascript, images, etc.) from ISAPI.DLL
    • Small fixes in IntraWeb setup program
    • New version of optional CrossTalk package
    • This version is binary compatible with version 14.0.48, 14.0.49 and 14.0.50, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

    14.0.50

    • Bug fix: an access violation could occur when rendering template-based forms where controls are referenced using dotted notation, like
    • Due to refactorings in the template handling logic, this version performs significantly better than versions 14.0.47 and prior, when processing template-based forms.
    • Modified: IntraWeb setup program now installs all design time packages (one dclIntraWeb_14_xx.bpl file for each Delphi IDE) under the same folder named “bin” under IntraWeb’s main installation folder. This makes things easier and more manageable. Also, no files are installed under Delphi’s own bin folder.
    • This version is binary compatible with version 14.0.48 and 14.0.49, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

    14.0.49

    • Bug fix: Unicode chars in file name could cause IWFileUploader to raise exception “No mapping for the Unicode character exists in the target multi-byte code page” when OnAsync events are assigned. This error only occurs in Internet Explorer 10 and 11
    • Bug fix: When calling gSessions.UnlockList() method, an exception with message “The session does not hold a lock in session list” could be raised.
    • This version is binary compatible with version 14.0.48, so you don’t need to update other dependant packages (CG Dev Tools, TMS, IW Bootstrap)

    14.0.48

    • Improved TIWContainerContext. Drastically improved page rendering speeds, specially when rendering a page with several controls (hundreds or more). Reduced memory usage. This affects all controls descending from TIWContainer, like IWRegions and several CG Dev Tools controls
    • TIWCustomListbox and TIWCustomComboBox refactored. Async response does not recreate items if list hasn’t changed. This drastically improves performance when items list contains a huge number of items.
    • Workaround for Delphi 2009 TFileStream bug: TTempFileStream now descends from THandleStream and correctly respects share mode
    • Modified: User configurable PacketBufferSize, via THttpPacket.PacketBufferSize class property.
    • Bug fix: New version of ASPX redistributable binaries, fixes server error 500 when refresing a page
    • Bug fix: Under certain circumstances a browser without cookie support would cause an infinite request loop
    • Bug fix: Fixed cookie support exception
    • Bug fix: SRW Lock improved detection on Windows Vista
    • Bug fix: IntraWeb’s JavaScript libraries: FindElem() replaced by document.getElementById() calls in order to avoid problems with CG Dev Tools libs
    • Bug fix: revert IWCheckBox state in case confirmation question is used and user cancels it
    • Bug fix: Under very rares circumstances a memory leak could occur when destroying the IWApplication instance
    • Modified: In TIWMenu, HideComboBoxes is not used anymore. This only makes sense in IE 6 and below
    • Refactored TIWSessions (gSessions instance). TIWSessions.LockList now has a parameter named AWriteAccess (boolean). When true, the list will be locked with a write lock, otherwise a shared (read) lock will be used. Only use the write lock if absolutely required, once it has influence over IWApplication locking mechanism. TIWSessions.UnlockList now has a parameter named AList (type TList). The list obtained as a result of LockList() method should always be used as a parameter.
    • Lots of other small improvements.

    14.0.47

    • Bug fix: Registration of IntraWeb in Delphi 10 Seattle could fail. This problem could only be reproduced in Windows 10 machines, but may affect other versions of Windows as well.
    • Bug fix: IWForm’s OnDefaultAction event does not trigger
    • Bug fix: In Firefox and Chrome an Ajax execution could fail when the page has CSS from another domain
    • Bug fix: ExplicitStart() correctly terminates existing session
    • Bug fix: IWForm.JavaScriptOnce was not working properly.
    • Stability of design time package was greatly improved. Possible access violations or invalid pointer operation exceptions were eliminated.
    • Various improvements on session locking mechanism. Many exlusive locks were replaced by shared locks, meaning much better performance under heavy usage.
    • New in TIWFileUploader: New public methods: StartUpload(), SelectFile(), ClearList(). These methods can only be used in an Async request.
    • Modified: TSessionTimeoutThread only clear expired sessions list if ServerController.RestartExpiredSession = True. This means that there is no performance penalty when Session timeout thread executes and your application is not using the RestartExpiredSession feature.
    • Modified TIWCheckBox: Default cursor and removed inline style setting cursor
    • Modified TIWBrowser class: refactorings for improved detection of bots, search engines and other browsers
    • Modified: TIWContainer.RenderComponents() now use display CSS property when control has StyleRenderOptions.UseDisplay = True. This way, “display: none” is used instead of “visibility: hidden” when an invisible control is rendered, i.e. when its parent container has RenderInvisibleControls = True. When StyleRenderOptions.UseDisplay = False (the default value), the old behavior is preserved, i.e. “visibility: hidden” is used.
    • Modified: TIWControl.RenderAsyncCommonProperties now use display CSS property when control has StyleRenderOptions.UseDisplay = True
    • Modified: DesignMode property removed from TIWApplication instance. Use IsDesignMode instead.
    • Lots of other small improvements and fixes.

    14.0.46

    • New Delphi/RAD Studio 10 Seattle support (including C++ x86/x64)
    • New MIME types compressed by default when using SA server (json, xml, xhtml)
    • New TIWApplication.ResetApplicationID() method, allows you to change the session ID after a user logon (experimental)
    • New ServerController.ProxyPortRedirection property. This property allows you to control the port used by IntraWeb server when creating responses that will redirect the browser to another address within the same domain/application. This should be used when the application is behind a proxy (or load balancer, etc.) that redirects received requests to your application, using another HTTP or HTTPS port.
    • Bug fix: an access violation could occur withing exception logger
    • Bug fix: issue with new notification dialogs when AllowMultipleSessionsPerUser = True
    • Bug fix: TWImageFile.ScriptEvents[‘onClick’] will trigger IW application’s OnClick even even returning false
    • Bug fix: Under very rare circumstances, FindSubmitElement could raise an exception “Cannot find submit component”
    • Massive code cleaning/formatting. Most unused units were removed from uses clause, from all units. This means shorter build times when using IW sources
    • Few other small bug fixes and improvements

    14.0.45

    • New: WebApplication.ShowMessage(), ShowMessageEx(), ShowConfirm(), ShowPrompt(), ShowNotification() methods. These methods show new cross-browser, dynamic JavaScript dialogs. New demos are being prepared.
    • New property UseAjaxNotify in TIWServerControllerBase class. When True (default), WebApplication.ShowMessage will use the new JavaScript based dialogs instead of alert() when using WebApplication.ShowMessage(). Set it to false to restore the old behavior.
    • Bug fix: Fixes a JavaScript error in IWRadioButtons and IWCheckBoxes when using IE8 and 7
    • BugFix: Possible error during AJAX response processing in Firefox and Chrome if the document has style sheets hosted in other domain
    • Bug fix: ExecuteWebEditor() restored. This allows users to edit HTML pages using IntraWeb built-in HTML editor, using /$/iwedit command.
    • Improved error logging. Added Request information
    • New P3P property and DefaultP3P class var in THttpReply class. Although P3P is not developed/supported anymore, Internet Explorer browsers still need P3P header in order to work property under some circumstances. Read more about it here.
    • Microsoft Edge browser support

    14.0.44

    • Bug fix: Possible AV when destroying an IWFrame containing a IWTemplateProcessorHTML component
    • Bug fix: TIWDBMemo Async events cause a line feed to be inserted
    • IWApplication.NewWindow() replaces path delimiters (\) with URL delimiters (/) to avoid runtime errors
    • Improved browser detection, specially older Chrome, newer Samsung mobile devices based on Android and Safari Mobile
    • Maximize icon on SA server main window
    • This version is binary compatible with previous versions 14.0.41/.42/.43
    • This version is compatible ith RAD Studio/Delphi XE8 and XE8 update 1

    14.0.43

    • Bug fix: Fixed incompatibilities with Internet Explorer 7, 8 and 9 when updating hyphenated style properties (e.g. background-color, font-size, etc.)
    • Bug fix: if IWEdit.SubmitOnAsync is false, OnSubmit event does not fire
    • This version is binary compatible with previous versions 14.0.41 and 14.0.42
    • This version is compatible ith RAD Studio/Delphi XE8 and XE8 update 1

    14.0.42

    • Bug fix: Under some circumstances IWStringReplace() could fail.
    • Installer fix: CrossTalk for RAD Studio XE8 install could fail
    • This version is binary compatible with previous verson 14.0.41

    14.0.41

    • New: C++ Builder x64 support from XE3 to XE8
    • Bug fix: OnSubmit event didn’t fire
    • Bug fix: Under some circumstances (e.g. an IWButton with assigned OnClick event, and confirmation message), the event OnClick could be triggered twice after when the page was rendered a second time.
    • Modified: Few IW units using generics were refactored to remove generics dependency. Some 3rd party code had problems with some compilers in units using generics code.

    14.0.40

    • Delphi / RAD Studio XE8 support
    • Bug fix: A JavaScript error caused IW applications to fail under IE7
    • Bug fix: Change that cause fail of JavaScript when using templates was rolled back
    • Bug fix: When using start parameters, IW_AjaxID parameter was added to the existing parameter list using ‘?’ as a separator, causing 2 question marks to appear in the url
    • Bug fix: Under very rare circumstances, the destruction of a IWForm/DataModule could cause an Access violation
    • Modified: If IWRegion.StyleRenderOptions.RenderBorder = False, no border style attribute is rendered. This is the correct, expected behaviour of this property. As a side effect, when a IWRegion is rendered with StyleRenderOptions.RenderBorder = True, setting it to false during an Async (AJAX) call won’t cause the border to be invisible again. In this case, the IWRegion.BorderOptions property should be used instead.

    14.0.39

    • Fixed: Interface change broke TMS IntraWeb pack build.

    14.0.38

    • New: QueryStatus request feature. New public property IWApplication.Status.
    • New component: TIWMonitor
    • New component: TIWModalWindow
    • New IWBaseForm.OnShow() event: this event is triggered every time that the form becomes the active form. This may happen when its Show() method is called, or when the current active form is destroyed (in this case, the last form in the form stack becomes visible).
    • New property RenderjQuery in TIWServerController.JavaScriptOptions. When FALSE, IntraWeb will not generate code (