IntraWeb 15 History

15.1

  • 15.1.22 Version History (5/8/2020)

    Bug fixes

    • IWEdit and descendants wouldn’t render border even when not Editable and NonEditableAsLabel is set, even when StyleRenderOptions.RenderBorder is set
    • TMS IW controls: TTIWAdvTimeEdit, TTIWDBAdvTimeEdit (and possible other controls descending from TIWCustomEdit) wouldn’t render correct style when Editable = False
    • IW applications based on Indy servers could fail to receive multiple uploaded files 

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.19 Version History (3/31/2020)

    Bug fixes

    • Bug fix: Showing a new form during Async in ISAPI applications could fail. This is similar to fix in previous update 15.1.18, however only affects ISAPI applications

    Modified

    • Improved compatibility with reverse proxy servers and URL Rewrite module

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.18 Version History (3/28/2020)

    Bug fixes

    • Bug fix: Showing a new form during Async request when cookies are not used could fail.
    • Bug fix: IWCheckBox and IWRadioButton shouldn’t trigger OnChange when loading component from DFM

    Modified

    • Make sure that WebApplication.FindFormByName() and WebApplication.FindFormByClassName() methods always return a TIWForm instance or nil
    • Improved IWFont.GetHashCode() method

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.17 Version History (3/11/2020)

    Bug fixes

    • Fixes a memory leak when using IWRtlFix unit in your project.

     

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.16 Version History (3/5/2020)

    Bug fixes

    • Fix a critical issue in IWBootstrap components (both versions 3 and 4) which may cause random AV exceptions. If your application contains any IWBSButton or IWBSDropDown (IWBootstrap3) or IWBS4Button,  IWBS4DropDown or IWBS4CheckBox (IWBootstrap4) it is strongly recommended that you update to the latest version.
    • Fix rare exception when rendering IWFont
    • TerminateAndRedirect() could fail when using ISAPI and URLRewrite

    Modified

    • Release of IWForms will make sure that a released form is removed from active form list even if the destruction of the form raises an exception
    • ESessionAlreadyLocked exception will log URLPath of 2nd conflicting request 
    • Some minor performance improvements

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.15 Version History (2/23/2020)

    Bug fixes

    • CheckFormId could incorrectly fail to validate legitimate requests

    Modified

    • IWEdit renders inputmode=”numeric” attribute when configured to use IntraWeb numeric validation. In mobile browsers, this forces the numeric key pad to be used instead of the generic keypad.

    This version is binary compatible with previous versions from 15.1.12 (no need to update 3rd party libraries)

  • 15.1.14 Version History (2/11/2020)

    Bug fixes

    • TerminateAndRedirect() would fail if absolute URLs were used (regression introduced in 15.1.13)

    This version is binary compatible with previous version 15.1.12 (no need to update 3rd party libraries)

  • 15.1.13 Version History (2/7/2020)

    Bug fixes

    • IWLink OnClick event could fail depending on external styles applied to it
    • URL Parameters containing encoded chars “&” and “?” could be incorrectly decoded if ShowStartParams is set
    • Fix Paint handler of TIWComboBox classes (design time only)
    • Changing an IWBootstrap RadioButton control inside a IWBootstrap modal window wouldn’t trigger async event
    • Fix for JS error when closing IWBootstrap Modal window
    • IWBootstrap RadioButtons would fail to report correct state after being set via code
    • Note: IWBootstrap fixes require update of JS runtime files (development and production). Check the option “Install IWBootstrap Demos and Resources” when installing if you are also installing IWBootstrap library.

    Modified

    • Do not format numeric input fields when displaying max or min validation tooltip
    • Modified relative redirection which enhances compatibility with some reverse proxy servers
    • Search input type included in built-in styles

    This version is binary compatible with previous version 15.1.12 (no need to update 3rd party libraries)

  • 15.1.12 Version History (1/16/2020)

    Bug fixes

    • Fixes a broken file included in the release version of IWData.res  which makes an IntraWeb page to fail to load.
  • 15.1.11 Version History (1/15/2020)

    New

    • New HTML5 input types: color, Date, Time, Email, Month, Number, Password, Range, Tel, Url (all implemented in standard TIWEdit, TIWDBEdit). You can just set a few properties of all your existing TIWEdit controls and have it working in minutes. It is time to replace your old 3rd party input boxes with a new modern implementation!
    • New properties DataType and DataTypeOptions in TIWEdit and TIWDBEdit
    • New TIWButton.Image property. Buttons now can have images (custom or even from Web fonts like Font Awesome!)
    • New numeric input built-in in TIWEdit, TIWDBEdit with Currency, Float and Integer sub-types
    • RegionalSettings added to IWApplication/ServerController. Allow customization of currency string, decimal separator, messages used by new input types (mainly numeric ones).
    • New property SessionOptions.RequiresExplicitStart. When true, session can only be started using “/$/start” in URL, otherwise a 404 status is returned
    • New property SecurityOptions.AllowedStartParams (TStrings): Developer can use this property to restrict parameters allowed to start a new session. If the list is not empty, trying to start a session using some parameter not explicitly allowed will not start a session and return 404 status instead
    • New property SessionOptions.HttpStatysForDeniedSessions (Integer, default 404). Allows easy configuration of http status code that should be returned when IW rejects a request for new session (because one of the various security settings)
    • DBLookupComboBox and DBLookupListBox new feature AutoSetListSourceCursor.
      Allows automatic refresh/sync of DBLookupComboBoxes/ListBoxes when lookup DataSets are part of Master/Detail relationship (some specific rules apply)
    • New Css property for IWForms. Theme property for IWServerController. New built in UI themes (styles).
      Themes are global styles applied to most common elements like edit boxes, combo boxes, buttons and allow the user to modernize the UI with very little effort.

    Modified

    • Increased LockSessionTimeout default value to 180000 ms (3 minutes)
    • IWCheckBox will render a label instead of span element (internal element which contains the check box text)
    • Hash code is added to JS and CSS internal files. Hash is calculated once during application start up using a very fast hash algorithm. This replaces the timestamp of session added to internal JS file names and guarantees that a modified JS or CSS file will be correctly retrieved, skipping the browser cache.

    Bug fixes

    • Some regions rendered by CG components could be wrongly resized after Async events
    • Fixes AV when CheckMimeType is used in OnAsyncUploadCompleted event
    • Authentication wouldn’t occur before rendering a form if application main form doesn’t check for authentication
    • Http.sys could generate wrong response in response to an ajaxCall() request
    • Class of IWBS forms could be overwritten by IW ‘iw_default_submit_form’
    • When changing pages some Ajax calls could fail and display a message to the user (e.g. IWTimer)
    • Fix possible failure when setting URLBase
    • Cell controls changed during async calls can be moved to top/left of IWGrid
    • Font would not change when FontFamily/FontVariant properties changed
    • SessionOptions.LockSessionTimeout when set to zero will use 5 minutes by default
    • Other small fixes in IW JavaScript code
  • 15.1.10 Version History (11/28/2019)

    Bug fixes

    • Exception renderer would report EIWSessionException instead of original exception ESessionAlreadyLocked
    • Fixes rare AV when adding huge strings as attributes in tags
    • Fix for rare but possible memory leak in font cache

    Modified

    • Improvements in JavaScript libraries as a workaround for bugs in TMS IW code (events handlers don’t pass event as argument)
    • Render padding attribute during async
    • Hiding command window when executing Edge from SA window

    This version is binary compatible with previous version

  • 15.1.9 Version History (11/20/2019)

    What’s new

    • Compatible with Rad Studio 10.3.3 Rio

    Bug fixes

    • Serving acme-challenge files (Let’s Encrypt certificate challenge) could fail
    • Certain valid characters would be wrongly removed when setting URLBase

    This version is binary compatible with previous version

  • 15.1.8 Version History (11/12/2019)

    What’s new

    • New event OnValidateComponent for IWTemplateProcessorHTML. Allows users to create controls at run time on demand.
    • TIWFont using a style cache which makes rendering much faster
    • TContentForm has new property AppendMappedURL

    Modified

    • Improved detection of some file types (DOCX, XLSX, PPTX) using TIWFileUploader.CheckMimeType() method

    Bug fixes

    • SetFocus might be called a second time after an Async call
    • Registration of callbacks in IWForm’s constructor (not OnCreate event) could fail (also affects C++ Builder)
    • IWBSCheckBox and IWBSRadioButton checked state wouldn’t be correctly retrieved in Async calls (IWBS3 and 4 versions)
    • Sync OnResize event when set could cause other sync events to fail
  • 15.1.7 Version History (10/21/2019)

    Bug fixes

    • Fix a regression bug regarding alignment of controls in 15.1.6

    This version is binary compatible with 15.1.6

  • 15.1.6 Version History (10/20/2019)

    What’s New

    • New class method CheckMimeType helps user to detect a few specific file types after upload is complete based on file signature
    • SetWorkingDir and WorkingDir properties introduced in TIWCGIRunner class. When SetWorkingDir is True (default) and WorkingDir is empty, the CGI script path will be used as working directory.

    Bug fixes

    • Unregistration of callback functions could fail
    • issue rendering aligned controls of CG Dev Tools package (e.g. accordion)
    • Style issues with templates and CG Dev Tools
    • IWBS issues/IWBSRadioButton fix
    • JavaScript error when setting IWTreeView.ScrollToName property
    • When using URLBase, cookie path should not end with a slash
    • Changing ZIndex during Async call doesn’t invalidate IWCustomControl or IWCustomRegion and descendants
    • When using templates, showing/hiding controls would fail if TemplateProcessor.RenderStyles = True
    • AcceptFiles not accepting correct strings
    • compatibility issue with IE (possible JS error after Ajax calls)
    • Under some circumstances, a browser refresh would change the active form in the browser
    • IWBSRestServer callback methods with empty parameters would fail
    • Possible JavaScript error in IE (all versions) when processing an Ajax request
    • Search Engine content handler would fail to execute during session initialization
    • Call to ajaxCall() could fail if no parameter was provided

    Modified

    • Unregistration of standard callbacks for IWCustomControls when destroying
  • 15.1.5 Version History (9/13/2019)

    What’s New

    • New property ServerController.SSLOptions.CertificateOptions which allows the user to set certificate path and file names. Path must be the same for all certificate files. If Path is left blank, application path will be used. If some file name is left blank, the default file name will be used.
    • SurrogateSessionId in ServerController.SecurityOptions. When set, IntraWeb will use an alternate unique ID in URL when SessionOptions.UniqueUrl = True. The actual session id is not exposed which increases application security (this option requires that cookies are also enabled)
    • CheckWindowId in ServerController.SecurityOptions. When set, IntraWeb will generate code to avoid that the same session is used in a different browser tab (e.g. the URL of an existing session is copied and used in a new browser tab).
    • DefaultBtnOnEnter in IWModalWindow

    Bug fixes

    • Duplicate styles being generated when changing visibility of control. This could have adverse effect on rendering after an async event.
    • TIWCustomGrid would get wrong position and/or size after Async update
    • List index out of bounds error in TIWTemplateProcessorHTML when RenderStyles = True

    Modified

    • Session ID is now 160 bits (vs 128 bits before)
    • Breaking change: New IWGrid property InnerTableCss. When set, IW will render class attribute for inner table using the property value
    • Removed server signature in Http.sys
    • More performance improvements
  • 15.1.4 Version History (8/21/2019)

    Bug fixes

    • FormDefaultSubmit() not working. This caused the form to be submitted when pressing ENTER in a IW page
    • Flickering when switching forms through Async calls
    • SVG locker image file would fail when used with reverse proxy servers and upper case URL base

    Note about RAD Studio 10.3.2: This version is compatible with Delphi 10.3.2. Users must apply the runtime package compatibility patch: https://cc.embarcadero.com/item/30886

    This version is binary compatible with previous 15.1.x versions.

  • 15.1.3 Version History (8/12/2019)

    Bug fixes

    • DataModules created in secondary threads would fail to resolve references to other components
    • Fixes start parameters when ShowStartParams = False
    • Fixes many issues regarding session tracking when not using session cookies
    • Fixes IWBootstrap 4 hanging browser application due to missing JavaScript call

    Modified

    • ServerController.OnBackButton event: SetActiveForm default is true now. This helps to resolve issues regarding form synchronization when same session is used in more than one browser tab
    • Improved performance of some low level system functions

    Note about RAD Studio 10.3.2: This version is compatible with Delphi 10.3.2. Users must apply the runtime package compatibility patch: https://cc.embarcadero.com/item/30886

    This version is binary compatible with previous 15.1.x versions.

  • 15.1.2 Version History (7/31/2019)

    31-Jul-2019

    What’s new

    • New IntraWeb Bootstrap 4 Library. IntraWeb Bootstrap 4 is based on latest Bootstrap 4 version (more about it here https://getbootstrap.com/). Once IWBS 4 requires a different set of files, it should not be mixed with IWBS 3 in the same IWForm (it is possible to mix IWBS3 and 4 in the same application though). IWBS 4 was created by IntraWeb users, based on original IWBS 3 and it’s also open source, and incorporated to our setup as an optional component.

    Bug fixes

    • Fixes several issues regarding control names using masks (* and ?) in templates
    • Remove cookie if EInvalidAppID is raised
    • IWTreeView (sync) OnClick events fail
    • Redirection could fail if not not using cookies
    • Duplicated controls added to template when using masked names, when controls are contained in a IWFrame
    • SA-GUI doesn’t show icon on task bar
    • CORS check could fail
    • THttpRequest.GetFieldValue fails when there is no space separating after the comma
    • Start content hanlder could fail
  • 15.1.0 Version History (7/14/2019)

    14-Jul-2019

    What’s new

    • Since latests versions of IW 14, it was possible to create applications that didn’t rely on cookies as a session tracking mechanism. This feature has been extended and now you can have applications which don’t require cookies at all, regardless of your AllowMulitpleSessionsPerUser setting. As a consequence, you are able to create applications which can start two or more independent sessions in different browser tabs, using a clean URL (i.e. the session Id won’t be part of your URL, e.g. http://yourapp.com/ only)
    • ServerController Options Wizard (right click on ServerController, inside IDE) allows you to set most common settings in a quick and intuitive way.
    • ServerController properties can now be automatically loaded at runtime from an .INI file when AutoLoadIniSettings = True. This new feature allows you to change the behavior of your application externally without rebuilding it. At design time you can save current settings or an empty template .INI file through ServerController Options Wizard. 
    • IntraWeb install program allows you to optionally install two memory managers: FastMM 4.992 and ScaleMM 2. FastMM 4.992 contains latest enhancements targeting multi-threaded applications.
      ScaleMM 2 has been extensively tested with IntraWeb and it shows superior performance (when compared to FastMM 4.9x) in some test scenarios. Both perform better than standard Delphi memory manager (which is also a FastMM branch).
    • Content Security Policy (CSP) support. Read more about CSP here. https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
      Good part of the rendering engine was refactored to remove inline JavaScript, CSS and unsafe code (according to CSP best practices). A nonce is now included in all scripts/link files.
    • Cross-Origin Resource Sharing (CORS) support. Read more about CORS here: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
    • New SVG based locker image (the “loading” image). SVG is much more compact in size, has perfect rendering regardless of the background color.
    • Callback function infrastructure was completely refactored: Better performance and more flexible, now you can have anonymous methods as Ajax Callbacks. No need to unregister callbacks for IW components/controls anymore. RegisterCallBack() method has several overloads and it is available from TIWForm instances.
    • New advanced lock-free data structures used for session control. This was a big boost in performance and scalability, once there are no critical sections locking the session list anymore.
    • New ServerController.SessionOptions.AllowSearchEngines property. If false, all search engines are blocked right from the start before session creation. IntraWeb now also responds with a build-in robots.txt file to SearchEngine requests.
    • New start-up/loading code is used when starting a new session. Less redirections are used and application loads faster.
    • New property ServerController.BlockedDocExtensions (list of file extensions). It allows developers to block certain requests right when they are first parsed, depending on the URI extension. For example, by default, all URI requests ending in ‘.php’ are blocked. Several web “exploit kits” assume that the target site is written in PHP and use several pre-configured URIs, all ending with ‘.php’. This makes the IW application much more robust and less vulnerable to such attacks.
    • Several internal improvements regarding performance.

    Modified

    • Session control properties are now grouped together under ServerController.SessionOptions.
    • IWSessions.LookUp has a different signature (and works slightly different). TIWSessions.LockList/UnlockList have been discontinued and replaced by a different mechanism.
    • Enhanced IWRtlFix unit (removed a critical section which could cause performance bottlenecks). Now each session has its own internal list which makes a critical section unnecessary. 
    • ServerController.OnBrowserCheck event was made optional in most cases. If browser is not detected, Intraweb will create a TChrome instance by default and continue without the need of any user code. As a consequence you won’t get any “unknown browser” exceptions.
    • AllowMulitpleSessionsPerUser property was made public (instead of published) meaning that it won’t show in Object Inspector anymore. It has been kept for compatibility, but its meaning has changed.
    • IWBoostrap updated to use Boostrap 3.4.1.
    • Rendering of style attributes during async calls: If you want to change any style attribute after rendering through Async calls – including “Visibility” (or “Display” for that matter) – then you need to set:-> IWTemplateProcessorHTML.RenderStyles := TrueSince version 15.0.0 we have been slowly changing the behavior of Async rendering when templates are enabled, in such a way that an Async response won’t break styles of components styled by external style sheets. In IW 15.1 we enforced that no style attribute is rendered in Async when IWTemplateProcessorHTML.RenderStyles = False. You can use Component’s StyleRenderOptions and TIWTemplateProcessorHTML’s StyleAttributesToRemove properties to have a finer control over what is rendered in case you have IWTemplateProcessorHTML.RenderStyles = True.

    Bug fixes

    • IW 15.1.0 is based on IW 15.0.23 code base and contains all fixes from 15.0.24 version. 

    Compability with 3rd party component libraries (TMS, CG Dev Tools, IW Bootstrap)

    • TMS library should be compatible, but the user must rebuild all TMS packages from source code.
    • CG Dev Tools users will need a new version from CG, once some changes in source code will be necessary.
    • IW Boostrap branch found on Github needs to be modified to compile with IW 15.1.0. However, IW 15.1.0 already contains a modified version which can be used out of the box.

     

15.0

  • 15.0.24 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)
    • Fix for position of IW locker when scroll bars are visible
    • Workaround for bug in TMS’s TIWAdvEdit rendering (empty onfocus and onblur event handlers). Other TMS controls possibly affected.

    This version is binary compatible with previous IW 15.0.21 to IW 15.0.23 versions

  • 15.0.23 Version History (6/15/2019)

    15-Jun-2019

    Bug fix

    • IWForm’s resize timer events (both async and sync) could fail due to JavaScript error

    This version is binary compatible with previous IW 15.0.22 and IW 15.0.21

  • 15.0.22 Version History (6/10/2019)

    10-Jun-2019

    Bug fix

    • IWTreeView fails to initialize when first node is added through Ajax call
    • TContentForm might fail when AllowMultipleSessionsPerUser = True

    This version is binary compatible with previous IW 15.0.21

  • 15.0.21 Version History (4/24/2019)

    24-Apr-2019

    New

    Modified

    • Exception logger refactoring. Removed lock/critical section
    • Small refactorings improving performance

    Bug fix

    • IW JavaScript loading code should render server error messages when http code is 500
    • Improved detection of Firefox browsers which should fix cases where Firefox is installed but not detected by IW SA application

    This version is not binary compatible with previous IW 15.0.20, meaning that 3rd party dependent libraries  (e.g. TMS or CG Dev Tools) need to be recompiled from sources.

  • 15.0.20 Version History (3/27/2019)

    27-Mar-2019

    Bug fixes

    • Fixes a JavaScript error during async requests

    This version is not binary compatible with previous IW 15.0.18, meaning that 3rd party dependent libraries  (e.g. TMS or CG Dev Tools) need to be recompiled from sources.

  • 15.0.19 Version History (3/25/2019)

    25-Mar-2019

    Bug fixes

    • Fixes an issue in IW JavaScript library which causes hooking of user events to fail under certain circumstances
    • Fixes C++ Builder template for SA project. Fixes compilation of C++ Builder XE7 SA projects in x64.

    Modified

    • IWTimer is able to recover from Ajax calls errors (e.g. due to connectivity issues). ServerController.JavaScriptOptions.AjaxErrorMode should be set to emNone or emConsole.
    • Change of behavior of wwwroot and Templates folders when debugging. Read more about it here.

    This version is not binary compatible with previous IW 15.0.18, meaning that 3rd party dependent libraries  (e.g. TMS or CG Dev Tools) need to be recompiled from sources.

  • 15.0.18 Version History (2/19/2019)

    19-Feb-2019

    What’s New

    • Delphi 10.3.1 Rio support.

    Bug fixes

    • TIWDBImage image won’t load if vFileAccess is set to faRequireSession in ServerController OnValidateCacheFileAccess event
    • C++ Builder project templates (TIWStart and TIWStartHSys should call Execute class method directly)
    • IWEdit could render with no position information (top, left style Attributes) when NonEditableAsLabel = True
    • IWTree rendering would fail when using templates and TemplateProcessor.RenderStyles = False
    • In certain cases (AllowMultipleSessionsPerUser = True, CookieOptions.UseCookies = False) IW could fail to serve some static files (e.g. images) returning status 404 instead
    • ISAPI fails to load in Evaluation even when using localhost
    • When using templates, IW would fail to correctly render attribute names containing dashes (“-“), e.g. {%IWEDIT1 data-dom=”test” placeholder=”something”%}
    • TIWMimeTypes.GetAsString should not raise an exception when MIME type is not found
    • Favicon was not being cached correctly by the browser

    Modified

    • Include RSIWAppSessionID in Exception logger when available
    • IWForm’s EnableImageToolbar is deprecated and removed from generated HTML

    This version is not binary compatible with previous IW 15.0.17, meaning that 3rd party dependent libraries  (e.g. TMS or CG Dev Tools) need to be recompiled from sources.

  • 15.0.17 Version History (11/24/2018)

    24-Nov-2018

    What’s New

    • Delphi 10.3 Rio support (introduced in 15.0.16). (Please make sure you have at least build 26.0.32429.4364)

    Bug fixes

    • Bug fix: fixes a non critical but annoying bug which wrongly disables browser buttons on SA GUI main window
    • Bug fix: THttpCookieList.RemoveCookie() could fail under some specific circumstances 
  • 15.0.16 Version History (11/22/2018)

    22-Nov-2018

    What’s New

    • Delphi 10.3 Rio support!! (Please make sure you have at least build 26.0.32429.4364)
    • New Chrome App mode in Stand Alone (GUI). A new icon is now available in SA GUI which starts Chrome in App mode (new window with no toolbar and menu)

    Bug fixes

    • Bug fix: Under rare circumstances, IWEdit could render wrong tag when NonEditableAsLabel = True
    • Bug fix: in TIWCustomEdit and descendant controls, Placeholder attribute was being cleared even when iaPlaceholder is not set (i.e. control shouldn’t render placeholder attribute)
    • Bug fix: Callback request could fail when trying to send the encodeURIComponent parameters. This only affects Http.sys applications
    • Other smaller fixes
  • 15.0.15 Version History (11/4/2018)

    Bug fixes

    • Bug fix: IWEdit/IWDBEdit would render incorrectly when NonEditableAsLabel = True
    • Bug fix: Controls inside nested frame could fail to execute associated events due to naming conflicts
    • Bug fix: IWModalWindow could fail to show content region when StyleRenderOptions.UseDisplay = True

    Modified

    • Enhanced performance of IWModalWindow.
  • 15.0.14 Version History (10/17/2018)

    Bug fixes

    • New zlib compression based on Cloudflare branch built with unnecessary AVX instructions. This caused x64 applicaitons to crash on very old processors (which don’t support AVX). Unnecessary AVX instructions were removed.
    • ZLib x64 based on Cloudflare needs SSE 4.2 instruction set. IntraWeb will detect SSE 4.2 and disable zlib compression in case it is not supported. A warning will be saved to application log file in this case. Most Intel and AMD processors released after 2008/2009 support it, so this should hardly ever occur.
    • OnHTMLTag could cause error when building IWBS projects in C++ Builder
    • IWBSCustomInput.pas wrongly defines HAS_TFORMATSETTINGS
    • Minor fixes to IWBoostrap
    • OnValidateCacheFileAccess could fail if file name ends with extension other than .tmp
    • IWModalWindow fails to center region when it uses an external template
    • Http.sys only: Fixes unicode chars conversion in query string
    • Fixes IsPostBack when showing a form the first time. Dead code removed
    • If TIWButton has both OnAsyncClick and OnClick assigned, only OnAsyncClick should be hooked/rendered

    Modified

    • IWBoostrap demos included
    • IWModalWindow rendering enhanced. Minor issues with overlay div were fixed
  • 15.0.13 Version History (9/23/2018)

    Bug fixes

    • Fixes “Content Encoding Error” when using zlib compression in Delphi/RAD Studio XE8 and 10 Seattle
  • 15.0.12 Version History (9/18/2018)

    Bug fixes

    • Fixes “List index out of bounds” error which happens on some compilers (XE2 to XE7 were confirmed) due to a failure when certain methods were inlined
  • 15.0.11 Version History (9/12/2018)

    What’s new

    • New property ServerController.SSLOptions.EnableACME, enables serving of Let’s Encrypt ACME challenge files automatically (subfolder acme-challenge)
    • Second round of IWTreeView enhancements. New properties and methods. Full Async support.
    • New class IWCGIRunner which runs CGI applications from IntraWeb in an isolated process
    • OnMetaTag event in ServerController
    • Property Attributes for IWDBMemo, IWDBEdit (as in IWMemo and IWEdit)
    • AutoScrollPos (published), BrowserScrollPosX, BrowserScrollPosY (public) properties introduced in TIWBaseForm

    Bug fixes

    • Fixes OnValidateCacheFileAccess when AllowMultipleSessionsPerUser = True
    • Fixes issues with IWTabControl tab rendering
    • Setting multiple cookies in a Http.sys server response could fail
    • MappedURL in TContentForm could set wrong URL
    • Adding custom cookies in an Http.sys application would fail
    • Fixes possible install issue on RAD Studio 2009 and 2010

    Modified

    • Empty ALT text for images which improves rendering
    • IWBoostrap redistributable files included in standard installation
    • Div elements do have tabIndex attribute in HTML 5 spec
    • Improved preformance of some core classes with inlining
  • 15.0.10 Version History (7/31/2018)

    What’s new

    • TIWTreeView was completely refactored. It is fully async-capable now. A new demo is being prepared to show new features
    • New property TIWImageList.CacheImages (default True). When enabled, TIWImageList will generate image files on disk only once. Subsequent request will use the same cached image. This will greatly improve rendering performance on browser side, once all images can be cached by the browser.

    Bug fixes

    • TIWTabControl tab heigh wouldn’t render as expected. Other small fixes in TIWTabControl
    • Adding custom cookies in an Http.sys application would fail
  • 15.0.9 Version History (7/24/2018)

    What’s new

    • TIWTreeView.AsyncMode property. When True TreeView will work using async calls

    Modified

    • Improved rendering performance of aligned controls

    Bug fixes

    • Evaluation versions could fail if no IWLicenseKey.pas file is found
    • Chrome, Safari and Opera browser would show scroll bar after resizing right or bottom aligned controls
  • 15.0.8 Version History (7/13/2018)

    Bug fixes

    • File uploads could fail in Http.sys applications
    • File uploads > 2 Gb could fail on ISAPI and Indy servers
    • Parse of received content could fail (RegisterContentType)
  • 15.0.7 Version History (7/8/2018)

    What’s new

    • New methods THttpFile.ReadAllText and THttpFile.ReadAllBytes. They work similarly to RTL’s TFile.ReadAll* methods (unit System.IOUtils).
    • New ServerController event OnValidateCacheFileAccess which allows user to set grant cache file access on a per-file basis. Some customers have very tight cache file access requirements. This allows developers to grant/deny or require session validation before serving each file in session cache.
    • new property ThreadsPerCore and LimitThreadCountInDebug (Http.sys applications only). Read about them (and about Http.sys development) here: https://doc.atozed.com/en/iw15/develop/creating-http-sys-applications-with-intraweb/

    Modified

    • IntraWeb will display better, more informative, error messages when handling access denied exceptions (Http.sys applications only).

    Bug fixess

    • Fix in license validation: Under some circumstances eval reason could be blank
    • UrlBase added to start url in SA GUI application (Http.sys only)
  • 15.0.6 Version History (6/19/2018)

    Bug fixes

    • IW Boostrap layout manager could fail to generate links for files in the form *.js?xyz or *.css?xyz
    • Template based forms could fail to load if parent container is not rendered (i.e. is not present in template)
    • Custom stand alone wouldn’t initialize TIWCompressor correctly and it would cause an AV when compression is enabled
  • 15.0.5 Version History (6/12/2018)

    What’s new

    • IW_15 directive in IWBootstrap include file

    Bug fixes

    • IW Bootstrap: AV when rendering TIWBSModal
    • JavaScript rendered by some IW Bootstrap components could fail

    Modified

    • Some few optimizations and minor bug fixes
  • 15.0.4 Version History (6/11/2018)

    Bug fixes

    • TIWTemplateProcessorHTML would fail to use and merge own MasterTemplate (ServerController.MasterTemplate would work as expected, though)
    • TIWMonitor would fail to load
    • Calling IWForm.Release() from async method could fail

    Modified

    • Internal refactoring as preparation for IW 17
  • 15.0.3 Version History (6/8/2018)

    What’s New

    • Some new base classes introduced as preparation for IW 17

    Bug fixes

    • Empty license would cause evaluation version to fail

    Modified

    • TIWServerControllerBase.DisableFixupPatch class property renamed to FixupPatchEnabled. Default is false, meaning that the fix up mechanism is disabled by default.
  • 15.0.2 Version History (6/6/2018)

    What’s New

    • New base class for IWBaseForm (IW 15 form)

    Bug fixes

    • Registration of new license type 11 during setup could fail
    • ContentHandlers execution could fail if session not created
    • Cross site scripting vulnerability fixed
  • 15.0.1 Version History (6/5/2018)

    What’s New

    • IWFileUploader will correctly set <accept> tag. Open file dialog will use this tag to filter files by extension. Not all browser support it (Chrome, Firefox, Opera, Edge, Safari and latest IE support it)

    Bug fixes

    • Cross-site scripting vulnerability when processing AJAX requests was fixed
    • IW pages would fail to load in IE and Safari if ServerController.Compression.PreCompress = True
  • 15.0.0 Version History (6/4/2018)

    What’s New

    • New Http.sys application type. Http.sys is the Windows Kernel mode driver which is the core of IIS. Http.sys IntraWeb applications are also stand alone, blazing fast, easy to debug and deploy because they don’t require IIS!
    • IW Bootstrap is now included with IntraWeb. All IDEs are supported (from Delphi 2009 to 10.2 Tokyo). Full source code included.
    • New zlib library. IW zlib is based on zlib Cloudflare code base and is more than 8x faster than Delphi XE7 zlib (x64). Still almost 2x faster than Delphi XE8-10.2 (x64). IW zlib is the fastest zlib available for Delphi! From now on we build our own zlib so you can have the best performance ever!
    • New TIWTemplateParserHTML. Template parsing and processing is more than 300% faster than IW 14 version.
    • Removed /$/ (Exec command) from URL in browser. Exec command “/$/” is still used internally though.
    • SameSite cookie attribute is now supported in all IntraWeb application modes (except ASPX Library, because ASP.NET doesn’t support it directly). Improves security and prevents CSRF attacks. Read more about it here: https://www.owasp.org/index.php/SameSite
    • IW 15 requires new license, i.e. existing IW 14 licenses won’t work at all with IW 15. A new license has been generated for all paid customers with valid subscription and the new license can be obtained online at https://app.atozed.com
    • Improved IWModalWindow: New properties HasHeader, HasFooter, BorderWidth and CloseOnClick
    • Extended HTML 5 attributes (Autocomplete, Spellcheck, Placeholder) for TIWEdit, TIWMemo and descendant classes
    • jQuery version updated to version 1.12.4 (same used by IW Bootstrap library). jquerymaskedinput.js updated to latest version 1.3.1
    • New property ServerController.JavaScriptOptions.jQueryVersion (string), returns version of jQuery
    • Templates: Attributes are allowed inside template control tags
    • LockSessionTimeout property in ServerController (in milliseconds). Default is 30000 milliseconds
    • New event ServerController.OnBind which can be used to set HTTP and HTTPS at runtime (Ultimate only)
    • New methods in THttpRequest: THttpRequest.HasField(), THttpRequest.GetQueryFieldValue()
    • TIWLinkBase and descendants have new property HasTabOrder
    • New feature CheckWindowId which allows applications to detect when a link to a valid IW application session is used in another browser tab
    • TIWGrid has a new property HeaderRowCount. TIWGrid and descendants now render <thead> and <tbody> tags which makes easier to integrate them with 3rd party JavaScript libraries like DataTables.
    • 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
    • New TContentBase.RequiresSession property (default True). When false, a content handler can be executed before session validation. It can be used, for instance, to provide custom static content which don’t require a user session.

    Modified

    • Remove Styles from IWControls when rendering in Async, if TemplateProcessor.RenderStyles = False. This fixes several problems when using templates
    • Improved and shorter JavaScript code generated in IW pages for object initialization
    • Set Password type for inputs during async
    • IWImageList.ExtractImageToCache is made virtual (makes it compatible with IW 12 implementation)
    • Stack trace of all threads included in IWJclStackTrace
    • IW.Common.System renamed to IW.Common.SysTools. Applications shouldn’t use IW.Common.System directly. However, existing applications will still build/work when using IW.Common.System (a wrapper unit for compatibility is provided). Name has been changed due to issues caused by name conflicts in some versions of C++ Builder compiler.
    • IWPaintHandlers: Use an ancestor paint handler at design time, when a specific paint handler is not registered
    • Several fixes regarding IPv6 in SA mode
    • TIWCustomRegion.get_HTMLName made protected and virtual so it can be overridden in descendant classes
    • CheckConnectionMode (secure/non secure) executed before Form execution
    • New SessionLocked.html exception. New default colors for built-in Exception renderer
    • “Cannot find submit component” exception is now EIWSubmitException and should contain the referenced component name (easier to identify problems during development and also in production)
    • MIME types are consts now instead of resource strings to avoid C++ Builder bug (IWMimeTypes.pas)
    • Breaking change: StyleRenderOptions.RenderBorder is FALSE for for IWEdit, IWLisBox, IWComboBox, IWMemo controls and descendants by default. This shouldn’t affect most existing applications. Now, if no style is provided, these controls will render using browser default style.
    • Modified: Invisible controls should be aligned by default (restored behavior of 14.0.x branch).
    • TIWFile finally removed from IW 15 codebase. Use TIWFileUploader instead. All references to IWFile.pas should be removed from IW applications.
    • Several performance improvements and optimizations

    Bug Fixes (baseline is 14.2.7)

    • ISAPI applications would fail to create valid responses (status code 500) when parsing invalid header (including cookie) fields.
    • Fixed issue in TextToJsonString method
    • Fix for IWRegions owned by TFrame which is also owned by other TFrame
    • ASPX loader fix: Obtaining correct port number from request
    • Bug in fixup mechanism fixed (IWClassesFix)
    • TIWCustomEdit (and descendants) text wouldn’t clip if NonEditableAsLabel = True
    • Do not render style tag in async when using templates and RenderStyle is False
    • Better sizes for scaled windows fonts (125% and 150%) when using SA-GUI application
    • Fixed empty stack trace when using jdbg format for map files
    • Several issues in IW Bundled Removal Tool were fixed it has been greatly improved