X-Component XP-UI Suite for NET v2007.10-rG serial key or number
X-Component XP-UI Suite for NET v2007.10-rG serial key or number
Table of Contents
Key Features
- Production-grade stable component for commercial use
- Latest HTML5 Rendering Engine (Blink for Windows 7, 8, 10 and WebKit for Windows XP)
- Supports both x86 and x64 Architectures
- Latest Google V8 JavaScript Engine with ES6 & Harmony
- Dual Browsing & Editing modes
- Utilizes CEF3 out-of-process model (separation of Render and Browser Processes)
- Stable multi-threaded loop for use with single-threaded applications
- Hardware Accelerated WebGL for 60 FPS web games
- Advanced Selection and CSS3 Styling APIs
- Support for Tables (selecting, merging, splitting, editing)
- CSS3 selector-based Properties, Methods and Events
- Selection synchronization between Designer and Source Editor (like FrontPage, Dreamweaver, etc.)
- Selector-based HTMLElement Navigation
- Editing of InnerHTML, OuterHTML, Style and Attributes of Elements
- Extended Selection support for Images and non-focus-able Elements
- HTML Events with addEventListener/removeEventListener using AddressOf or IDispatch
- Support for both synchronous (cancelable, prevent default) and asynchronous DOM Events
- Unicode Ready API, can be used for any Locale / Language
- WYSIWYG HTML5 Editing
- Explicit & Implicit File Download Control
- Chrome Developer Tools integration
- Debugger Ready - can connect to it over Web Sockets Debug API
- PDF Viewer - can view PDF files
- Save HTML as PDF and Printing HTML & Markup features
- CallByName JavaScript functions from executable
- JavaScript Callbacks, calling JavaScript functions on a specific V8 Context, from Native code
- Dispatch custom HTML DOM events from your executable directly to JavaScript event handlers
- Overwrite Cross-Origin Resource Sharing (CORS) response headers
- Overwrite Content Security Policy (CSP) response headers
Compatibility
Even though the control is promoted and supported only for Visual Basic 6.0 SP6, it is compatible with any OLE/COM capable Integrated Development Environments and x86 programming language. The following programming languages and IDE are reported to be compatible with WebKitX:
- Visual Basic 6.0 SP6 SUPPORTED
- Microsoft Visual Studio .NET 2010/2015/2017 (VB.Net, C#) SUPPORTED
- Microsoft Office Visual Basic for Applications 2003/2007/2010/2015/2016 (VBA, Access, Excel, etc.)
- Borland Delphi (down to version 5.0)
- Embarcadero RAD Studio (any Windows version)
- Qt (any Windows version)
- Xojo 2017 (any Windows version)
- Visual FoxPro
- PowerBuilder
- WinBatch
- Internet Explorer (requires NirSoft ActiveX Compatibility Manager)
- Ruby (via the 'win32ole' library included in the standard Ruby 1.8.x or later distribution)
- dBase (from 12 Plus down to 2.80 Plus)
WebKitX Architecture
WebKitX CEF3 ActiveX is a light-weight MFC ATL component for use with OLE/COM Programming Languages. At runtime the ActiveX starts CEF3XClient.exe process, passing to it its Window Handle (hWnd).
CEF3XClient Process starts CEF3 Browser and Render sub-processes and establishes a seamless back-to-back Interprocess Communication Mechanism (IPC) between the ActiveX and all CEF3 processes. Chrome Browser is parented in ActiveX hWnd but lives in its own process.
All COM-based method and property calls between the ActiveX and CEF3XClients are marshalled using CoWaitForMultipleHandles, allowing your application's UI to be responsive. For time-consuming tasks, such as URL loading, COM events provide you callbacks when the tasks are finished.
The important aspect of this architecture design is that all WebKit HTML5 rendering and V8 JavaScript execution are taking place outside your application, offering your application stability and isolation.
Getting Started
Installation
Download WebKitX setup package and install it in a place like C:\Program Files (x86)\WebKitX CEF3 ActiveX for x86 Application Development, or in a place like C:\Program Files\WebKitX CEF3 ActiveX for x64 Application Development. The ActiveX registers itself in Windows Registry and requires permissions to do so, so please make sure you run the installation by choosing Run as administrator.
Before the installation starts, the setup program will check if your Workstation requires Visual C++ 2017 Runtimes, and install it if it does. Depending on your Operating System, its Service Pack and WebKitX bundle, a different C++ redistributable might be installed. Please have a look further below in Commercial Distribution chapter for information about redistributing your application with WebKitX runtimes.
Evaluation
You are welcome to evaluate WebKitX for as long as you want and feel free to contact us with your questions, your suggestions and your bounties! During evaluation, when opening a URL and at random intervals WebKitX displays a notification window informing you that it is a commercial product and that it requires a License, but it wont prevent you from using all its features.
Loading Sequence
WebKitX provides several Events during its initialization, creation of the browser and loading of a URL. First you need to set the licensing information by handling the early Form Loading or Creation event. Then you can control CEF Browser creation by handling the OnCreate event. Once the browser is ready it will emit the the OnBrowserReady event where you can enable JavaScript or HTML5 editing parameters. In OnBrowserReady you should also load the HTML5 markup or navigate to the URL you want to load. During loading WebKitX will fire several loading events such as OnLoadStart and OnLoadEnd. If you are loading HTML with frames (IFRAMEs) then some events will fire multiple times, such as OnPageLoadStart and OnPageLoadEnd. When the main frame is loaded WebKitX will fire OnLoadEnd and when all frames have loaded WebKitX will fire the OnPageComplete event.
When you receive the OnLoadEnd and OnPageLoadEnd events, it means that network-wise the contents have downloaded but HTML-wise the contents might not be fully parsed yet. In HTML terms this means that document.readyState value might not not set to complete. Pages in window or sub frames might be in interactive state and resources might be loading in the background. The only event that guarantees that the main window frame and all sub-frames have document.readyState = complete is OnPageComplete. Internally, WebKitX uses an asynchronous task that checks the document.readyState for all frames; if this check result is "complete" with a count equal to browser frames, then the event is fired. If some frames have loaded while other frames have failed, the event will not fire. The check takes place on a fresh HTML DOM snapshot obtained every time at the moment of the check, and examines the current number of frames. The frames must remain unchanged for 3 seconds before the event is fired; this way, any dynamic loading or unloading of frames is taken into account.
Please note that some frameworks such as Angular and React dynamically load portions of the page. WebKitX events will keep firing while dynamic content is downloaded. You need to examine the behavior of the control in relation with the web site you want to display and adjust your event handling accordingly.
Getting Started with Visual Basic 6.0
Creating a Simple Browser Application
Start Visual Basic 6.0 and create a new Standard EXE Application.
Right-click on the Toolbox and select Components... in the Popup Menu.
In Components dialogue select and check mobileFX WebKitX CEF3 ActiveX and click OK.
The component will appear on the Toolbox as illustrated below.
Select the component from the Toolbox and draw it on the Form. Your Developer UUID will be displayed on the control's canvas and on control Properties.
Form_Load()
First you must activate WebKitX ActiveX by providing your License Key. If you are using early binding, a good place to do that is on Form_Load event. If you are using late binding you are advised to activate the control straight after its creation. This step applies only to license owners. During trial evaluation of WebKitX you may skip it.
WebKitX1_OnCreate(Settings, CommandLineSwitches)
Next you may control the creation of CEF3 Browser and Client Processes. OnCreate event provides you a Settings object that controls CEF3 Application and CEF3 Browser creation and initialization settings. The recommended defaults are preset in this object but you may want to provide your own settings such as Localization, Cache paths, Security settings, etc. The second parameter is CommandLineSwitches that are additional CEF3 preferences and even JavaScript flags that you want to provide to CEF3 Client Processes.
For a list of command line switches please have a look here: https://peter.sh/experiments/chromium-command-line-switches
Default WebKitX CEF3 Command Line Switches
- -allow-file-access
- -allow-file-access-from-files
- -allow-insecure-localhost
- -allow-running-insecure-content
- -allow-silent-push
- -always-authorize-plugins
- -cipher-suite-blacklist=0x0005,0x0004,0x002f,0xc012,0xc011,0x003c,0xc011,0x0032,0xc007,0xc00c (Why?)
- -disable-domain-blocking-for-3d-apis
- -disable-machine-cert-request
- -disable-origin-chip
- -enable-async-dns
- -enable-download-resumption
- -enable-encrypted-media
- -enable-es3-apis
- -enable-experimental-canvas-features
- -enable-font-antialiasing
- -enable-smooth-scrolling
- -enable-webgl-draft-extensions
- -expose-internals-for-testing
- -ignore-certificate-errors
- -ignore-gpu-blacklist
- -ignore-urlfetcher-cert-requests
- -javascript-harmony
- -print-to-pdf
- -reduce-security-for-testing
- -repl
- -save-page-as-mhtml
- -ssl-version-min=tls1 (Why?)
WebKitX1_OnBrowserReady()
OnBrowserReady event notifies you that CEF3 processes and WebKitX control have been successfully created and the Interprocess Communication Mechanism (IPC) is established. At this point you can define secondary behavioral parameters such as focus control, formatting APIs, script downloading control, etc. but most importantly after OnBrowserReady event you can successfully start loading URLs for browsing or editing.
WebKitX1_OnLoadEnd()
OnLoadEnd event is fired when your URL is completely downloaded. At this point you can enable HTML5 Editing or Preview (Browsing) and set the HTML DOM events you want WebKitX to subclass for every HTML Element on the document. After you receive this event you can start using the Selection and Formatting APIs.
Getting Started with C#
Creating a Simple Browser Application
Start Visual Studio .NET and create a new C# Windows Forms Application.
Right-click on Project References and select Add Reference...
Select COM tree node and type webkitx on search textbox; the list will display mobileFX WebKitX CEF3 ActiveX. Check the checkbox next to it and click OK.
The control will appear in the Toolbox as illustrated below.
Drag the control on the Form. On the control's canvas will appear the Developer UUID of your Workstation. Send it by email to info@mobilefx.com.
Create an event handler for the Form's Load event.
In Form_Load event handler, enter your activation information as illustrated below.
Switch back to Form Designer and create an event handler for the OnBrowserReady event.
Activate Scripts and open the URL you wish to browse.
Compile and Run!
WebKitX 64-bit Application Development with C#
To enable 64-bit application development both 32-bit and 64-bit versions of WebKitX ActiveX must be installed on your development Workstation.
WebKitX 32-bit ActiveX Registry Verification:
WebKitX 64-bit ActiveX Registry Verification:
In the Simple Browser example above, Visual Studio C# project is set to Any CPU and by default it will compile a 32-bit application. When you run Simple Browser, you will notice in Task Manager that both SimpleBrowser.exe and CEF3XClient.exe processes are 32-bit.
To enable 64-bit application compilation you need to define a new Solution Platform. Go to Solution Platforms drop-down and select Configuration Manager...
In Configuration Manager, in the Active Solution platform drop-down, select <New...> and in the New Solution Platform dialogue enter x64. Click OK and Close to return to Visual Studio IDE.
The 64-bit x64 Solution Platform is now active; you can hit Run to compile and run the 64-bit Simple Browser application.
When you run Simple Browser, you will notice in Task Manager that both SimpleBrowser.exe and CEF3XClient.exe processes are now 64-bit.
Please note that if you close the IDE while the x64 Solution Platform is selected, the next time you will try to load your Project the IDE will default to 64-bit and it will fail to load the Form Designer. Visual Studio Form Designer works only with 32-bit ActiveX Controls. So, just make sure you select Any CPU before your save and close your project.
WebKitX API programming in C#EXPERIMENTAL
As of version 2.x WebKitX ActiveX ships with C# samples for both x32 and x64 architectures. The IDL COM API of WebKitX is using OLE/COM Variants for passing data back and forth to the ActiveX. In C# the Variant data type is not available but you may substitute it with object array like the example below:
Behavior Configuration IMPORTANT NOTES
Enabling JavaScript
Please note that in WebKitX downloading script tags is disabled by default because in editor mode JavaScript execution often messes with HTML5 styles, especially if you are using features such as Parallax Scrolling and JavaScript-aided responsive layouts. If you want to download and execute JavaScript you must explicitly enable it using WebKitX1.DownloadScripts = True in OnBrowserReady() event handler, as illustrated in code fragment below.
As a side note, in editor mode of WebKitX you can execute JavaScript at run-time using Eval, AddScript, AddCode and ExecuteCommand methods, even if DownloadScripts is false. The key difference is download-time and run-time JavaScript execution and WebKitX DownloadScripts parameter controls download-time JavaScript and not run-time JavaScript.
Setting HTML5 by code at Runtime
WebKitX offers your two ways to load HTML: either by WebKitX.Open() method or by WebKitX.HTML property. Please note that providing a URL is recommended for successfully downloading relative resources such as Images, Style Sheets, Scripts, etc. If however you need to use the WebKitX.HTML property you first need to set a fake-but-valid URL and BaseURL. Chromium Embedded Framework Browser requires a valid URL page before you can inject HTML and/or JavaScript by code at run-time. To do so please use the WebKitX.URL and WebKitX.BaseURL properties before you use the WebKitX.HTML property.
Disabling GPU
In WebKitX GPU Hardware Acceleration is enabled by default. However, there are cases that you might need to host your application in a Virtualized environment such as VMware, Citrix or Virtual Box where GPU emulation is not available. You may disable GPU by handling the OnCreate() event and adding --disable-gpu --disable-webgl --disable-3d-apis --disable-gpu-compositing in CommandLineSwitches and setting Settings.webgl = False.
Setting CEF3 Preferences at Runtime
WebKitX offers GetPreference() and SetPreference() methods to read / modify CEF3 preferences at run-time. Please note that setting preferences causes CEF browser to recreate and it is time-costly, so use it with caution, especially when synchronizing WebKitX HTML with a Code Editor (like HTML5 Pad does). For example to enable / disable Spell Checking, WebKitX uses an internal Boolean latch in order to avoid browser recreation and you should use WebKitX1.SpellChecking = true instead of SetPreference("browser.enable_spellchecking", "true").
For a list of preference please have a look here: https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/pref_names.cc?view=markup
WebKitX Plugins
WebKitX plugins are disabled by default. To enable plugins you need to handle the OnCreate event and set Settings.plugins = True as illustrated below:
PDF Viewer Plugin
When plugins are disabled PDF files will download as regular files rather than render on the screen. To enable PDF Viewer you need to handle the OnCreate event and set Settings.plugins = True.
Flash Player Plugin
To enable Flash player you need to download a x86 version of pepflashplayer.dll and provide the path to it by setting the Settings.flash_player_dll_path property in OnCreate() event, as illustrated below. If you copy the DLL in the ActiveX folder then you do not need to provide the full path. If you decide to install the DLL in a different folder you should provide the path with forward slashes (unix-style paths).
Chrome DevTools Plugin
Chrome DevTools is a set of web developer tools built directly into the Google Chrome browser. DevTools can help you diagnose problems quickly, which ultimately helps you build better websites, faster. To show built-in DevTools use the WebKitX.ShowDevTools(0) command.
Calling JavaScript
Calling JavaScript Functions by Name - CallByName()
The simplest way to call a JavaScript function in WebKitX is WebKitX.CallByName(Name, Variant) method. You can pass to JavaScript function arbitrary arguments using an OLE/COM Variant, and receive the function's result value, as an OLE/COM Variant too. Execution of CallByName is IPC-synchronous and this method is an elegant alternative to WebKitX.Eval() code as you can pass back-and-forth your variables without stringifying them. For more information about this mechanism have a look in OLE/COM Variants to V8 Values Conversion.
Calling JavaScript Functions for a Specific Execution Context - JSCallback()
WebKitX JavaScript Callbacks is a mechanism to register and call JavaScript functions by name, within a specific V8 JavaScript Execution Context. The key difference from CallByName() is that CallByName can only invoke functions registered in the Global Scope of the Main Window, where as JavaScript Callbacks allow you to call functions registered in any scope and window.
Registering JavaScript Callbacks
Each frame in a browser window has its own V8 context. The context defines the scope for all variables, objects and functions defined in that frame. WebKitX allows you to register a JavaScript callback in a V8 context using window.register(name, callback, this) method. The first argument is the string name of the function, the second is the function callback and the 3rd optional parameter is the execution context. If the 3rd parameter is not defined then the global object is assumed.
Invoking JavaScript Callbacks
To invoke the JavaScript callback you simply need to call WebKitX.JSCallback(name, params, async) method passing the name of the JavaScript function you want to invoke and a Variant with the arguments. For critical real-time applications you should set async parameter to True, which executes the IPC call synchronously. The result depends on the JavaScript function and can be either a scalar value or a variant array of variants.
OLE/COM Variants to V8 Values Conversion EXPERIMENTAL
WebKitX has a powerful OLE/COM Variant to Google V8 Value bi-directional converter that works both for Scalar and Array values, including nested array values (arrays of arrays of variants). This conversion mechanism is available to any WebKitX method transmitting and/or returning an OLE/COM Variant, such as CallByName(), JSCallBack() and DispatchEvent().
WebKitX can serialize variant scalars VT_BSTR, VT_UINT, VT_INT, VT_NULL, VT_BOOL, VT_R4, VT_R8, VT_CY, VT_DATE as well as variant safearray of variants VT_ARRAY|VT_VARIANT and even typed arrays VT_ARRAY|VT_BSTR, VT_ARRAY|VT_UINT, VT_ARRAY|VT_INT, VT_ARRAY|VT_BOOL, VT_ARRAY|VT_R4, VT_ARRAY|VT_R8, VT_ARRAY|VT_CY, VT_ARRAY|VT_DATE to Google V8 value objects. Currently serialization of VT_DISPATCH is not supported and therefore you cannot pass OLE/COM Objects to JavaScript.
On the OLE/COM side, to pass multiple arguments to a JavaScript callback function you need to wrap them in a Variant Array of Variants.
On the JavaScript side, you can return V8 Scalar or V8 Array values to OLE/COM side, including nested V8 Arrays. WebKitX can serialize V8 scalar Boolean, Number, String, Null, Date values and Array of [Boolean or Number or String or Null or Date or Array] V8 values. Google V8 Arrays are always returned as Variant Arrays of Variants.
On the receiving OLE/COM side the scalars are converted to a Variant of equivalent scalar type and Arrays are converted into a Variant Array of Variants.
HTML5 DOM to COM Events
Selector based API
Asynchronous DOM to COM Events
HTML5 DOM Events are generated by WebKit Blink Engine and are copied into an immutable format before they are transmitted from CEFXClient process to WebKitX ActiveX. Once WebKitX ActiveX receives an event notification through IPC, it fires a COM Event with the copied data of HTML DOM event. Thus, CEFXClient process does not block waiting for your client code to handle the event. WebKitX DOM Events are Immutable, meaning that you can only read event data but you cannot cancel events, stop them from bubbling or prevent default behavior.
Synchronous DOM to COM Events
WebKitX as of version 1.5.11.2591 supports synchronous DOM to COM events by implementing CefMessageRouter circuit. Events generated from WebKit Blink Engine are serialized and passed from Rendering to Browser process, which transmits them to the ActiveX. The browser process waits for the ActiveX to handle the event, where you can also cancel event bubble or prevent event's default behavior.
Please note that blocking Inter-process Communication (IPC) between 3 processes is not advisable for casual event handling and you should do so only if you need to cancel specific events. Synchronous DOM to COM Events are thread-safe and care has been placed in order to support this feature seamlessly in single-threaded Applications without deadlocks. For that purpose, synchronous events are serialized using mutex synchronization on entry, meaning that synchronous events occupy the IPC channel one at a time. Please contact us for more implementation details or if you need a different handling of DOM to COM events.
Listening to DOM Events
You can use addEventListener and removeEventListener for attaching and detaching on HTML DOM events. WebKitX offers two methods:
- Sub AddEventListener(Selector As String, Event As String, AddressOfEventHandler As Long, UseCapture As Boolean, Async As Boolean)
This method expects a Visual Basic 6.0 Sub defined in a public Module (.bas). - Sub AddEventListenerEx(Selector As String, Event As String, vbObject As Object, vbObjectFunctionName As String, UseCapture As Boolean, Async As Boolean)
This method expects a Visual Basic 6.0 Object (Class, Form, Control) and the name of a public Sub.
The signature of the public methods is defined by OnEvent() event which is:
EventData are a JSON string representation of DOM Event:
{ "eventName": "click", "eventType": "[object MouseEvent]", "altKey": false, "bubbles": true, "button": 0, "buttons": 0, "cancelBubble": false, "cancelable": true, "clientX": 86, "clientY": 178, "composed": true, "ctrlKey": false, "currentTarget": "", "defaultPrevented": false, "detail": 1, "eventPhase": 1, "fromElement": "", "isTrusted": true, "layerX": 86, "layerY": 178, "metaKey": false, "movementX": 0, "movementY": 0, "offsetX": 86, "offsetY": 89, "originalTarget": "", "pageX": 86, "pageY": 178, "path": "#lga", "relatedTarget": "", "returnValue": true, "screenX": 566, "screenY": 415, "shiftKey": false, "srcElement": "#lga", "sourceCapabilities": {}, "target": "#lga", "timeStamp": 8625.205000000002, "toElement": "#lga", "type": "click", "which": 1, "x": 86, "y": 178, "region": null, } | { "eventName": "mousemove", "eventType": "[object MouseEvent]", "altKey": false, "bubbles": true, "button": 0, "buttons": 0, "cancelBubble": false, "cancelable": true, "clientX": 136, "clientY": 1, "composed": true, "ctrlKey": false, "currentTarget": "", "defaultPrevented": false, "detail": 0, "eventPhase": 1, "fromElement": "", "isTrusted": true, "layerX": 136, "layerY": 1, "metaKey": false, "movementX": -1, "movementY": -2, "offsetX": 136, "offsetY": 1, "originalTarget": "", "pageX": 136, "pageY": 1, "path": "#viewport", "relatedTarget": "", "returnValue": true, "screenX": 616, "screenY": 238, "shiftKey": false, "srcElement": "#viewport", "sourceCapabilities": {}, "target": "#viewport", "timeStamp": 276604.28, "toElement": "#viewport", "type": "mousemove", "which": 0, "x": 136, "y": 1, "region": null, } |
DOM Events Handling Example
WebKitX Events Sample demonstrates handling DOM events and reading values from Input elements. In the following code fragment are demonstrated the three (3) different methods you can use. The generic method, the AddressOf method that requires a Module, and the IDispatch method that requires an Object. The sample loads a INPUT element and a BUTTON and when you click the button it fires an event which is handled by VB6. The event handler code in VB6 uses WebKitX API to read the value of the INPUT.
Firing Custom HTML5 Events - DispatchEvent()
WebKitX DispatchEvent() method allows you to fire DOM events directly into JavaScript and handle those events by JavaScript event handlers. You can pass the target selector that will receive the event, the event name, event initialization parameters (bubbling, cancelable, composed) and an OLE/COM Variant that will be converted into a V8 JavaScript object and added in the details field of the Event object. Event execution can be both synchronous and asynchronous in terms of IPC tunneling, and it is always synchronous in terms of DOM.
WebKitX HTML5 Editor
There are some best practices when using WebKitX as an HTML5 Editor:
Disabling JavaScript download
Disabling scripts downloading is advisable when using WebKitX as an Editor because JavaScript execution often messes with HTML5 styles, especially if you are using features such as Parallax Scrolling and JavaScript-aided responsive layouts.
Detecting Edit Mode from JavaScript
There are cases where your JavaScript code might need to detect if WebKitX is in Edit mode. To do that simply read window.__WEBKITX_EDITABLE__ variable. You should wrap Google Analytics and Google Tags Manager initialization code inside a conditional block and download Google scripts (or any other script) by URL, as illustrated below:
Getting HTML Source
To retrieve HTML5 source as a String you can use WebKitX.HTML property.
Getting XHTML Source
You can configure WebKitX to return XHTML instead of HTML by setting Settings.enable_xml_html = true in OnCreate() event handler. This setting enables DOM parsing by XMLSerializer that trans-codes your HTML into XML. The output results in better structured and faster parsed documents but XMLSerializer also encodes the source code of <script> elements; in particular XMLSerializer HTML-Encodes any Entity Character such as ampersand (&) to &, less than (<) to <, grater than (>) to >, etc. You should make sure that all your <script> elements are referenced and not embedded.
Using WebKitX with MDI Forms
MDI Forms in most programming languages suffer from flickering effects. When using WebKitX in an MDI child Form, you may notice rendering problems when MDI children overlap each other during resizing or moving. To treat this problem you need to add WebKitX.SetMDIWindow(hWND) in every MDI child Form that uses WebKitX control. The call installs a window sub-class hook that detects WM_WINDOWPOSCHANGING and WM_MOVING messages and repaints the entire MDI Form. In order to avoid further flickering and redundant repaints, WebKitX uses Timer that absorbs repeated WM_WINDOWPOSCHANGING and WM_MOVING messages. For SetMDIWindow() to work, the WebKitX control must be directly placed inside an MDI Child Form and must not be contained inside another control (such as a TabStrip).
Overlapping Form Controls (re-positioning / re-z-indexing)
When you place WebKitX control inside a TabStrip control you must control its Visibility in order to avoid rendering problems. Most TabStrip controls during page selection, instead of toggling the visibility of the pages and/or their contained controls, they simply re-position the inactive controls in a non-visible area or re-position the controls along the z-axis. However, CEF3 window is an out-of-process overlay window on-top of WebKitX COleControl window and re-positioning or re-z-indexing form controls can cause rendering problems to WebKitX and other controls in your form too.
To avoid this problem as of version 1.5.11.3370 WebKitX does not resize/re-position CEF3 browser window if WebKitX control is invisible (WebKitX.Visible = False). However, there is a best practice you must follow in order to achieve the desired behavior: you need to control WebKitX visibility by code, as illustrated below. Also, we have added WebKitX.SetAutoResize(Enable) method to explicitly enable or disable CEF3 resize/re-position. Please note that to force WebKitX / CEF3 to resize/re-position after they become visible again, you must call WebKitX.Repaint() method.
The problem described does not appear only with TabStrip controls; the same defect appears if you have custom control layouting implementation in your Forms that re-positions controls or re-indexes controls z-index.
Content Filtering EXPERIMENTAL
UNSUPPORTED EXPERIMENTAL FEATURE
WebKitX Content Filtering is a mechanism that allows you to remove HTTP Response Headers, such as Content Security Policy (CSP) response header, and alter or remove Cross Origin Resource Sharing (CORS) response header. WebKitX implements in CEF3 Client I/O Thread a custom Resource Handler that intercepts normal HTTP and HTTPS requests and spawns a light-weight object that downloads the resource instead. Once the HTTP Response Headers for a particular resource are available, they are being filtered-out and passed to the IO thread for further processing.
This mechanism works for the following HTTP methods: GET, POST, HEAD, DELETE and PUT, and works for any MIME type resource. WebKitX content filtering works both with HTTP and HTTPS requests, meaning that it works perfectly with server-side SSL encryption, but it does not work if client-side SSL authentication is enabled. Please read further below for more information about Microsoft IIS Client SSL certificate configuration.
Overwrite Cross-Origin Resource Sharing (CORS)
Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional HTTP headers to tell a browser to let a web application running at one origin (domain) have permission to access selected resources from a server at a different origin. A web application makes a cross-origin HTTP request when it requests a resource that has a different origin (domain, protocol, and port) than its own origin.
An example of a cross-origin request: The frontend JavaScript code for a web application served from http://domain-a.com uses XMLHttpRequest to make a request for http://api.domain-c.com/data.json.
For security reasons, browsers restrict cross-origin HTTP requests initiated from within scripts. For example, XMLHttpRequest and the Fetch API follow the same-origin policy. This means that a web application using those APIs can only request HTTP resources from the same origin the application was loaded from, unless the response from the other origin includes the right CORS headers.
The CORS mechanism supports secure cross-origin requests and data transfers between browsers and web servers. Modern browsers use CORS in an API container such as XMLHttpRequest or Fetch to help mitigate the risks of cross-origin HTTP requests.
This cross-origin sharing standard is used to enable cross-site HTTP requests for:
- Invocations of the XMLHttpRequest
- Web Fonts (for cross-domain font usage in @font-face within CSS)
- WebGL textures
- Images/video frames drawn to a canvas using drawImage()
- Stylesheets (for CSSOM access)
- Scripts (for unmuted exceptions)
To enable CORS, you need to configure your web server to return the Access-Control-Allow-Origin HTTP header:
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
In WebKitX you can overwrite web server's Access-Control-Allow-Origin by handling the OnCreate() event and setting Settings.filter_response = true and Settings.access_control_allow_origin to "*" or the domain you wish to allow.
Overwrite Content Security Policy (CSP)
WebKitX due to JavaScript injection features and extensive use of eval() requires Content Security Policy (CSP) to be suppressed. If you try to load a URL with CSP enabled in WebKitX, it will result in a series of error messages related to unsafe-eval, like the one below:
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP is designed to be fully backward compatible. Browsers that don't support it still work with servers that implement it, and vice-versa: browsers that don't support CSP simply ignore it, functioning as usual, defaulting to the standard same-origin policy for web content. If the site doesn't offer the CSP header, browsers likewise use the standard same-origin policy.
To enable CSP, you need to configure your web server to return the Content-Security-Policy HTTP header (sometimes you will see mentions of the X-Content-Security-Policy header, but that's an older version and you don't need to specify it anymore).
In WebKitX you can overwrite web server's Content-Security-Policy by handling the OnCreate() event and setting Settings.filter_response = true and Settings.remove_response_headers to "x-webkit-csp,content-security-policy,x-content-security-policy". The same feature can be used to remove any other response header.
Some sites stop loading after enabling Content Filtering
WebKitX Content Filtering features and SSL Client Certificate enabled on your Web Server cannot work together. You must either disable WebKitX Content Filtering or disable SSL Client Certificate on your Web Server, as illustrated below:
Page Encoding problems with early implementation of Content Filtering
CEF 3.3202.1692 ignores Content-Type charset option when using custom CefResourceHandler, causing pages such as Google.gr or Google.de to render with unreadable characters. [bug link]. To treat this problem, WebKitX Content Filtering enforces UTF-8 BOM insertion in text/plain, text/html, application/json, application/javascript, application/ecmascript, text/css, text/xml MIME types. Please note that the bug appears only if content filtering is enabled and does not affect normal (unfiltered) browsing or editing. The plan about this bug is to switch to newer version of CEF3 on January 2019.
Loading www.google.gr with content filtering with version 1.5.11.3220:
Loading www.google.gr with content filtering with version 1.5.11.3297 (Sep 2018) and later:
Commercial Distribution
Commercial License Activation
If you own a commercial license of WebKitX ActiveX control, you need to add in your program your License Key. By doing so, the component will supress licensing messages at run-time (when compiled). Add this line in your code: WebKitX1.ActivateCommercial "your@email", "your_commercial_license_key"
Developer Workstation Activation
If you own a commercial license of WebKitX ActiveX control, you need to send us the Developer UUID of the control and we will issue a Design-Time activation code for your licensed workstation. By doing so, the component will suppress licensing messages at design-time (when coding). The Developer UUID can be found printed on the canvas of the control; it can also be copy-pasted into an email from the properties window of your IDE by seleting the control and browsing its properties. Add this line in your code: WebKitX1.ActivateWorkstation "your_workstation_key"
Finding your Developer UUID
In some programming languages such as PowerBuilder, Delphi, Embarcadero RAD Studio, when placing the control on the Form does not display the Developer UUID. To find your Workstation's Developer UUID for WebKitX, locate the DeveloperUUID.exe program in WebKitX installtion folder and run it.
Commercial Distribution
Creating a setup script to install WebKitX on a different computer should be straight-forward:
- For x86 your script must copy the files of the C:\Program Files (x86)\WebKitX CEF3 ActiveX\bin folder to the other computer.
The destination folder is irrelevant and can be anywhere you choose. - For x64 your script must copy the files of the C:\Program Files\WebKitX CEF3 ActiveX\bin folder to the other computer.
The destination folder is irrelevant and can be anywhere you choose. - For x86 your script must run Microsoft Visual C++ 2015 Redistributable Package (x86) for the Windows OS and Service Pack bundle of the other computer.
For detailed information please see the WebKitX Runtime Dependencies paragraph above. - For x64 your script must run Microsoft Visual C++ 2015 Redistributable Package (x64) for the Windows OS and Service Pack bundle of the other computer.
For detailed information please see the WebKitX Runtime Dependencies paragraph above. - Your script must register WebKitX ActiveX into the Windows Registry using this command: regsvr32 /s WebKitXCEF3.ocx
- If your product does not use Chrome DevTools, you may skip devtools_resources.pak to decrease size.
- If your product uses Flash Player you should add Pepper Flash Player.
WebKitX Runtime Dependencies
WebKitX requires Microsoft C++ Runtime. During installation WebKitX setup will automatically install Microsoft C++ Redistributable Package for the following list of Windows Operating Systems:
- Windows 7 Service Pack 1SUPPORTED
- Windows 10SUPPORTED
- Windows 8.1
- Windows 8
- Windows Server 2008 R2 Service Pack 1
- Windows Server 2008 Service Pack 2
- Windows Server 2012
- Windows Vista Service Pack 2
- Windows XP Service Pack 3SUPPORTED
The latest supported Visual C++ downloads by Microsoft
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
.NET Redistributables (for C# samples)
http://download.microsoft.com/download/F/9/4/F942F07D-F26F-4F30-B4E3-EBD54FABA377/NDP462-KB3151800-x86-x64-AllOS-ENU.exe
Visual Basic 6.0 Redistributables (for VB Samples)
http://support.microsoft.com/default.aspx?scid=kb;en-us;290887
General Trouble Shooting
WebKitX installation Fails
If during WebKitX installation you get an error message that WebKitXCEF3.ocx and cmax40.dll failed to register, it most certainly means that Microsoft x86 C++ 2015 Redistributable Package failed to automatically install because the Windows OS version and/or its current Service Pack are not compatible with the included Microsoft x86 C++ 2015 Redistributable Package. You are advised to download Microsoft x86 C++ 2015 Redistributable Package for you Operating System and Service Pack bundle, and install it manually.
Nothing Paints on my Form
WebKitX ActiveX provides OLE Control Host Window Handle (HWND) to Chromium Embedded Framework (CEF3), which in turn paints the HTML5 composite image to the OLE Control Host Device Context (HDC). This mechanism requires you to Disable Double Buffering Features of the Host Form or OLE Control Host. Furthermore please make sure you set the scale mode of your Host Form or OLE Control Host to Pixels.
I get unsafe-eval error messages
WebKitX due to JavaScript injection features and extensive use of Eval() requires Content Security Policy (CSP) to be suppressed. If you try to load a site with CSP enabled in WebKitX, it will result in a series of error messages related to unsafe-eval. Please refer to Content Filtering article above for information how to by-pass CSP in WebKitX.
My web site does not load properly
JavaScript in WebKitX is disabled by default and as a result most sites will not load properly. Please handle the OnBrowserReady event and enable JavaScript by setting WebKitX1.DownloadScripts = True.
My web site does not load at all
WebKitX Content Filtering features and SSL Client Certificate enabled on your Web Server cannot work together, by design. You must either disable WebKitX Content Filtering or disable SSL Client Certificate on your Web Server. Please note this has nothing to do with HTTPS. For more information please refer to Content Filtering chapter.
WebKitX SamplesWebKitX HTML5 Editor (VB6)
This is a simple, yet complete, sample of WebKitX CEF3 ActiveX control. The sample is shipped both as Visual Basic 6 source code project, as well as a complete binary bundle that includes CodeMax Editor ActiveX and CEF3 binaries. The sample demonstrates all WebKitX advanced features including FrontPage-like selection synchronization between HTML5 Designer and Source Editor, Table Editing, Selector API, and advanced CSS3 styling. The binary bundle can be used as a royalties-free stand-alone HTML5 Editor.
Simple Browser (VB6)
This sample demonstrates the WebKitX Browser. You can embed WebKitX in your applications with just 3 lines of code!
Advanced Installer
Version History
Version 17.4
Released on August 26th, 2020- Azure Key Vault digital signing support
- Enabling integration for third-party digital signing tools
- "Quick MSI to MSIX" conversion workflow
- Predefined prerequisites for "SQL Server ODBC Driver 17.6"
- Over 24 enhancements and bug fixes
Version 17.2
Released on June 30th, 2020- Import and Edit support for MSIX bundle
- Driver Dependencies support for MSIX
- Add wizard for the "Modification Package" project
- Predefined launch conditions for "Windows 10 version 2004"
- Over 37 enhancements and bug fixes
Version 17.0
Released on April 27th, 2020- MSIX Package Manifest Editor
- Powershell automation support for Custom Actions
- Support deploying an MSIX package with MSIX Core on Windows 7, 8 and 8.1
- Predefined prerequisites for "ASP.NET Core Runtime 3.1.3"
- Over 26 enhancements and bug fixes
Version 16.9
Released on March 17th, 2020- Windows Services support for MSIX
- Add FileSystemWrite Virtualization, RegistryWrite Virtualization, PackageIntegrity, SupportedUsers and AllowExecution flags for MSIX packages
- New view for MSIX comparison
- Over 27 enhancements and bug fixes
Version 16.7
Released on January 15th, 2020- Predefined launch condition and prerequisite for ".NET Core Runtime 3.1"
- Predefined prerequisites for ".NET Core Desktop Runtime 3.1" and ".NET Core IIS Hosting 3.1"
- New registry entries for latest install path and version of "Advanced Installer"
- Over 15 enhancements and bug fixes
Version 16.6
Released on December 12th, 2019- Create an MSIX/APPX package for the Microsoft Store
- PowerShell automation to manage properties
- Destination, ReadOnly and Exclusion support for File Redirection (Package Support Framework)
- Predefined launch conditions for "Windows 10 version 1909 (November 2019 Update)"
- Over 20 enhancements and bug fixes
Version 16.5
Released on November 13th, 2019- MSIX Package Editor
- Running PowerShell scripts in MSIX
- Preserve IIS client customizations on upgrades
- Predefined launch condition and prerequisite for "SQL Server 2019 Express"
- Predefined launch condition and prerequisite for "Java 13"
- Over 23 enhancements and bug fixes
Version 16.4
Released on October 8th, 2019- PowerShell automation to manage Digital Signature
- Predefined launch condition for "Windows Azure VM"
- Predefined launch condition to check if an AntiVirus is running
- Predefined launch condition and prerequisites for ".NET Core Runtime 3.0"
- Predefined prerequisites for "Microsoft OLE DB Driver for SQL Server 18"
- Over 20 enhancements and bug fixes
Version 16.3
Released on September 4th, 2019- Compare XML files
- Filter new project in Start Page
- Oracle Java 11(LTS) and 12 support
- Digital signature timestamp delay option between consecutive signing operations
- Over 28 enhancements and bug fixes
Version 16.2
Released on August 1st, 2019- New Light theme for MSI/EXE packages
- Create virtual machines for vSphere
- Start service without Administrator privileges
- Office 2019 add-ins registration support
- Predefined prerequisites for “.NET Core 2.2”
- Predefined prerequisites for “.NET Core Runtime 2.2”
- Predefined prerequisites for “Visual C++ Redistributable for Visual Studio 2019”
- Over 76 enhancements and bug fixes
Version 16.0
Released on May 28th, 2019- Add Undo functionality to Table Editor
- Detect Default Programs and related File Type Associations when importing a RPK file
- Predefined launch conditions for "Windows 10 May 2019 Update"
- Predefined launch condition and prerequisite for ".NET Framework 4.8"
- Predefined launch condition and prerequisite for "Java 12"
- Over 52 enhancements and bug fixes
Version 15.9
Released on April 23rd, 2019- Support for asset packages when building MSIX bundle
- Support for Windows Sandbox
- Early build validations for MSIX in Windows Store projects
- Support for asp.net website and web applications for Visual Studio extension
- Support for adding temporary files using Command Line
- Predefined prerequisites for "SQL Server Express 2016 & 2017" offline installer
- Predefined prerequisites for "SQL Server Express LocalDB 2016 & 2017"
- Predefined prerequisites: Microsoft System CLR Types for SQL Server 2016
- Over 35 enhancements and bug fixes
Version 15.7
Released on February 13th, 2019- New streamlined Repackager workflow, for simpler and faster packaging
- Advanced Installer extension for Visual Studio 2019
- Predefined launch condition for Windows Server 2019
- Predefined launch condition for Java 11
- Predefined prerequisites for SQL Server ODBC Driver 13.1
- Over 30 enhancements and bug fixes
Version 15.5
Released on November 21st, 2018- Package Support Framework (PSF) integration for MSIX packages
- Import and customize MSIX Modification Packages
- Target Package registry preview for MSIX Modification Packages
- Support for MSIX Windows Store Project registry
- CURRENT USER registry support for MSIX projects
- Prerequisite .NET Core 2.1 IIS hosting bundle
- Over 21 enhancements and bug fixes
Version 15.4
Released on October 17th, 2018- Full redesign of the Repackager user interface
- Show target files for Modification Package
- Dedicated wizard to convert packages (EXE, MSI, APP-V, and AppX) into MSIX
- Predefined launch conditions for Windows 10 October 2018 Update
- Over 10 enhancements and bug fixes
Version 15.2
Released on August 13th, 2018- Deploy packages to Microsoft Intune
- Support for command-line activation of Universal Windows Apps
- Set permissions for XML files created with Advanced Installer
- Over 30 enhancements and bug fixes
Version 15.1
Released on July 23rd, 2018- Create MSIX installers; the new standard from Microsoft
- Support auto-updates for sideloaded UWP and Desktop Bridge apps
- 3 bug fixes
Version 15.0
Released on June 28th, 2018- AppX bundles support
- New flags for Desktop Bridge apps: - Console UWP apps - Multiple-Instance apps - Broader File-System access
- Request MSI elevation, aka "Run as administrator" (without an EXE bootstrapper)
- Import and merge multiple INI files with automated parsing for MSI property references
- Performance boost: Visual Studio extension re-implementation using COM
- Support for .NET Core for the Visual Studio extension
- Command line for setting the EULA from LicenseAgreementDlg predefined dialog
- Over 30 enhancements and bug fixes
Version 14.9
Released on May 24th, 2018- Undo functionality when using the Dialog Editor
- Test certificate for signing packages
- Predefined prerequisites and launch condition for Java 10
- Predefined prerequisites and launch conditions for .NET Framework 4.7.2
- Predefined launch conditions for Windows 10 April 2018 Update
- Over 43 enhancements and bug fixes
Version 14.6
Released on February 19th, 2018- Custom Actions to Install/Uninstall a certificate
- Custom Actions to Install/Uninstall an APPX package
- Support for UWP localizations
- Support for COM import from an APPX package
- UWP synchronization for registry protocols and startup tasks
- Conditional installation of directory structures
- Ability to store a property during an Administrative Install
- Placeholder text for Edit Boxes when using Enhanced UI
- Search functionality in Translations for Project Strings and Default Strings
- Over 69 enhancements and bug fixes
Version 14.5
Released on November 27th, 2017- Predefined prerequisites and launch conditions for ".NET Core 2.0"
- Predefined prerequisites and launch conditions for ".NET Framework 4.7.1"
- Predefined prerequisites and launch conditions for "SQL Server Express 2017"
- New search type for registry keys that checks if sub-values enumeration contains a certain version
- Over 42 enhancements and bug fixes
Version 14.4
Released on October 26th, 2017- Languages support for UwpAppX builds
- Built-in testing for PowerShell custom actions
- Deploy Advanced Installer on Visual Studio Team Services hosted VMs (Visual Studio Extension)
- Complete support for Visual Studio Team Services (PATH detection and MSBuild tasks)
- Support for repackaging product families
- Predefined launch conditions for "Windows 10 Fall Creators Update"
- Over 80 enhancements and bug fixes
Version 14.3
Released on September 18th, 2017- VSTS integration
- Preview, Thumbnail, and Property Handler support for the File Type Association Properties extension
- Predefined launch conditions for Java 9
- COM support for UWP
- Import InstallShield MSI project (BETA version)
- Over 52 enhancements and bug fixes
Version 14.1
Released on June 27th, 2017- Support for repackaging on remote Hyper-V VMs
- Windows Store and UWP apps Firewall Rules declarations
- Predefined launch condition for "Windows Server 2008 SP2"
- Predefined launch condition for "Windows 10 Anniversary Update"
- Predefined launch condition for "Windows 10 Creators Update"
- Predefined launch condition for ".NET Framework 4.7"
- Predefined prerequisites for ".NET Framework 4.7"
- Predefined prerequisites for "Visual C++ Redistributable for Visual Studio 2017"
- Over 32 enhancements and bug fixes
Version 14.0
Released on May 7th, 2017- Debug Desktop Bridge applications in Visual Studio 2015 & 2017 using Advanced Installer's Extension
- New Desktop Bridge project for the Visual Studio Extension - import and debug any AppX package
- Windows 10 Creators Update: - Application Alias support for UWP apps - Data Migration support from MSI to UWP apps - User Transition: - Taskbar Pins and Start Tiles for UWP apps - File type associations for UWP apps
- "UWP AppX Import" project type
- Support for automatically pinning desktop applications to Start during installation
- Over 20 enhancements and bug fixes
Version 13.8
Released on March 30th, 2017- MSI UWP (Desktop Bridge) bootstrapper
- Create and customize Windows 10 Start Screen tiles from your MSIs
- Adding a folder and its content as temporary
- "Start Service" predefined custom action
- Over 28 enhancements and bug fixes
Version 13.7
Released on February 27th, 2017- Support for Visual Studio 2017 RTM
- Advanced Installer Extension is available from the Visual Studio Marketplace
- Desktop Bridge support from the VS extension
- 1 bug fix
Version 13.6
Released on February 15th, 2017- Repackager Assistant for recording repackager settings
- Support for VSIX v3
- Updater for UWP packages
- Shortcut arguments for applications from a Desktop Bridge package
- Support for conditioning an update install based on the target OS version
- Testing package installations in VMs from a SYSTEM account
- Support for specifying command line parameters when using "Run/Run in VM" commands
- Predefined prerequisites for "Access 2016 Runtime"
- Predefined prerequisite for "SQL Server Express 2016 SP1"
- Predefined launch condition for "SQL Server 2016 SP1"
- Over 26 enhancements and bug fixes
Version 13.5
Released on December 14th, 2016- Dedicated GUI for advanced configuration of AppX packages
- New predefined custom action "Process Data" for string processing (with regex)
- Predefined launch condition for "PowerShell 5.1"
- Over 50 enhancements and bug fixes
Version 13.4
Released on November 16th, 2016- Support for Visual Studio 2017
- Advanced Installer Extension is available from the Visual Studio Marketplace (on upgrade you must install the extension manually)
- 4 enhancements and bug fixes
Version 13.3
Released on October 31st, 2016- Support for building Nano Server WSA packages from existing MSI projects
- Updated support for UWP AppX builds to Windows 10 Anniversary Edition
- Windows Features Bundle support for "Windows Server 2016"
- Predefined launch condition for "Windows Server 2016"
- Predefined prerequisites
- Microsoft System CLR Types for SQL Server 2012 SP3
- Microsoft System CLR Types for SQL Server 2014 SP2
- Microsoft Report Viewer 2012 Runtime
- Microsoft Report Viewer 2015 Runtime
- PowerShell 5.0
- Over 30 enhancements and bug fixes
Version 13.2
Released on October 6th, 2016- Support to create/update AppX packages for Windows 10 native UWP apps
- WSIWYG dialog editor and localization support for the Bootstrapper UI
- Command Line Editor for App-V 5.x packages
- MSI Conflict Detector tool
- Support for SCCM 2016
- Support for SharePoint 2016
- VSIX package support for Visual Studio 2012/2013/2015
- Launch Conditions
- Predefined launch condition for ".NET Framework 4.6.2"
- Predefined launch condition for "SQL Server Express 2012 SP3"
- Predefined launch condition for "SQL Server Express 2014 SP2"
- Predefined launch condition for "SQL Server 2016"
- Prerequisites
- Predefined prerequisites for ".NET Framework 4.6.2"
- Predefined prerequisites for "SQL Server Express 2012 SP3"
- Predefined prerequisites for "SQL Server Express LocalDB 2012 SP3"
- Predefined prerequisites for "SQL Server Express 2014 SP2"
- Predefined prerequisites for "SQL Server Express LocalDB 2014 SP2"
- Predefined prerequisite for "SQL Server Express 2016"
- Over 25 enhancements and bug fixes
Version 13.1
Released on July 19th, 2016- App-V package content validation - detection of unsupported resources (drivers ...)
- Automatic fixes for App-V packages: store OS driver resources in a separate companion MSI package
- Repackager QA: compare output with original package
- Import Visual Studio "15" Preview projects
- Advanced Installer Extension for Visual Studio "15" Preview
- Software Environment Reports for Installer Analytics
- Over 37 enhancements and bug fixes
Version 13.0
Released on June 2nd, 2016- Build UWP AppX packages using your current Advanced Installer project
- Win32 to UWP App Converter
- Collect Installer Analytics data for Software Environment report
- Project Content Summary and Reporting
- Over 60 enhancements and bug fixes
Version 12.8
Released on March 23rd, 2016- Support to create a new virtual machine for testing or repackaging operations
- Detect embedded MSI installs during EXE repackaging
- Launch condition to allow packages installation on Windows XP/2003 only with latest Service Pack
- Over 41 enhancements and bug fixes
Version 12.7
Released on February 4th, 2016- SHA-1/2 smart double-signing support
- Mitigations for DLL hijacking vulnerability
- Major upgrades support for multiple instances
- Support new options for a registry based COM Class
- Weekly Mail report for Installer Analytics users
- Predefined launch condition for ".NET Framework 4.6.1"
- Predefined prerequisites for ".NET Framework 4.6.1"
- Over 31 enhancements and bug fixes
Version 12.6
Released on December 8th, 2015- Wizard for sequencing an existing application for App-V virtualization
- Support to enable "Browser Helper Objects" in App-V 5.x packages
- Predefined dialog for SQL Server connections
- "Run Windows PowerShell Script From File" predefined custom action
- Predefined launch condition for "SQL Server Express 2014 SP1"
- Predefined launch condition for "SQL Server Express 2008 R2 SP3"
- Predefined launch condition for "SQL Server Express 2008 SP4"
- Predefined launch condition for "PowerShell 5.0"
- Predefined prerequisites for "SQL Server Express with Tools 2014 SP1"
- Predefined prerequisites for "SQL Server Express 2014 SP1"
- Predefined prerequisites for "SQL Server Express LocalDB 2014 SP1"
- Over 44 enhancements and bug fixes
Version 12.5
Released on October 21st, 2015- Run and Log when testing in VM
- Uninstall Survey report in Installer Analytics
- "/ImportMsi" command line
- "/ImportMsm" command line
- Predefined launch conditions for "IIS 10"
- Predefined launch condition for "JRE 1.8"
- Predefined launch condition for ".NET Framework 3.5 SP1"
- Predefined launch condition for "SQL Server Express 2012 SP2"
- Predefined prerequisites for "SQL Server Express 2012 SP2"
- Predefined prerequisites for "SQL Server Express LocalDB 2012 SP2"
- Predefined prerequisites for "SQL Server Express with Tools 2012 SP2"
- Predefined prerequisites for "SQL Server Express with Tools 2014"
- Over 36 enhancements and bug fixes
Version 12.4
Released on September 7th, 2015- Support installing OS features on Windows 10
- Atlassian Bamboo plugin for Advanced Installer
- Support extracting archive files at install time
- App-V 5.1 predefined support
- Predefined launch condition for ".NET Framework 4.6"
- Predefined launch conditions for "Office 2016"
- Predefined prerequisites for ".NET Framework 4.6"
- Predefined prerequisites for "Visual C++ Redistributable for Visual Studio 2015"
- Over 15 enhancements and bug fixes
Version 12.3
Released on July 16th, 2015- Support to download files at install time
- Installer Analytics new report types: Launch conditions, User base with timeline and versions, Users per version, New or returning users and Geographic per user
- Predefined prerequisites for ".NET Framework 4.6 RC"
- Predefined launch conditions for "Windows 10"
- Added support for Office 2016 VSTO add-in
- Over 36 enhancements and bug fixes
Version 12.2
Released on June 10th, 2015- Advanced Installer extension for Visual Studio 2015
- TeamCity build system plugin
- Installer Analytics new report types: Prerequisites, Weekly/Monthly and Geographic
- Predefined launch condition for "SQL Server Express 2014"
- Predefined launch condition for "DirectX 12"
- Over 15 enhancements and bug fixes
Version 12.1
Released on May 19th, 2015- Installer Analytics new report types: - Uninstall and Upgrade - Environment - Exceptions - Users - Versions
- Support appending permissions to existing folders/registry during installations
- Import Windows Firewall rules
- Command line option to add/delete "File Associations"
- Predefined prerequisite for "IIS URL Rewrite Module"
- Over 31 enhancements and bug fixes
Version 11.9
Released on March 17th, 2015- App-V 5.0 package editor
- Import ThinApp workspaces
- Support for IIS FastCgi Applications
- Support to deploy AppX packages through SCCM
- Predefined prerequisites for ".NET Framework 4.6 Preview"
- Predefined prerequisites for "Remote Server Administration Tools"
- Over 34 enhancements and bug fixes
Version 11.8
Released on January 28th, 2015- Import App-V 5.0 packages
- New streamlined user interface for easily configuring browsing for IIS application pools, web-sites and virtual directories
- Predefined prerequisite for Microsoft Access 2010 SP2 Runtime(KB2687444)
- Over 27 enhancements and bug fixes
Version 11.7
Released on December 16th, 2014- Support for editing advanced VMware ThinApp options
- New streamlined user interface for easily configuring browsing for SQL servers and databases
- Support for building UNICODE Updates Configuration files
- Over 31 enhancements and bug fixes
Version 11.6
Released on October 23rd, 2014- VM Profiles Editor - used by Run in VM option and VM repackaging
- UI automation for testing packages in VM
- Support for automatically pinning shortcuts to taskbar
- Secured updates through digital signature
- Check for updates at application launch
- Predefined prerequisites for SQL Server Express LocalDB
- Support for UNICODE updates configuration files
- Over 54 enhancements and bug fixes
Version 11.4
Released on July 30th, 2014- Support publishing web apps to Microsoft Azure and IIS using Microsoft Web Deploy
- Team Foundation Server (TFS) integration
- Predefined prerequisites for IIS Web Deploy 3.5
- Over 37 enhancements and bug fixes
Version 11.3
Released on June 17th, 2014- Support for deploying setups as SCCM applications for SCCM 2012
- Support for deploying App-V packages to SCCM
- Support for deploying SQL Server Reporting Services (SSRS) reports
- Quick Selection List control
- Predefined prerequisites for .NET Framework 4.5.2
- Predefined prerequisites for Adobe Flash Player 13
- Predefined prerequisites for Java SE 7 and 8
- Predefined prerequisites for SQL Server Express 2014
- Predefined prerequisites for SQL Server ODBC Driver 11
- Predefined prerequisite for Microsoft Silverlight 5 64-bit
- Over 43 enhancements and bug fixes
Version 11.2
Released on May 21st, 2014- Support for Windows Server Roles
- Dynamic installation support for Multiple Instances
- Simultaneous registration support for 32-bit and 64-bit version of the same COM
- Display chained packages installation progress into the main UI
- Predefined prerequisite for Apache Tomcat 8.0
- Predefined prerequisites for DirectX 11.0
- Predefined prerequisites for DirectX 11.1
- Predefined prerequisite for MSXML 6.0 64-bit
- Predefined prerequisites for MSXML 4.0, 6.0 SP1 and SP2
- Predefined prerequisite for Windows Mobile Device Center 6.1 64-bit
- Predefined prerequisites for Windows Imaging Component
- Over 24 enhancements and bug fixes
Version 11.1
Released on April 28th, 2014- Support repackaging applications in Hyper-V VMs
- Automatic conversion from MSI to App-V 5.0
- Added full command line support for SCCM tool
- Predefined build event for deploying to SCCM
- Support for IIS 8.0 Application Initialization
- Support for IIS 8.0 Dynamic IP Restriction
- Automatic project recovery
- Predefined prerequisites for Access 2013 Runtime
- Predefined prerequisite for Access 2010 Runtime 64-bit
- Predefined prerequisites for MySQL Server 5.5
- Predefined prerequisites for SQL Server Compact 4.0 SP1
- Predefined prerequisite for Visual F# 2.0 SP1 Runtime
- Windows Installer 3.1 for Windows XP/Server 2003 predefined prerequisites
- Windows Installer 3.0 for Windows 2000/XP/Server 2003 predefined prerequisites
- Over 85 enhancements and bug fixes
Version 11.0
Released on March 13th, 2014- Support for deploying setup packages to SCCM
- Import IntelliJ IDEA projects
- Support for running SQL Scripts on Microsoft Windows Azure
- Sandbox test for SQL Queries and Connections
- SQL Scripts error logging
- Support for IIS 7+ Module Mapping
- Support for IIS 8.0 CPU Throttling
- Windows Firewall support for Merge Modules
- Flat buttons Air theme variation
- Organization page refresh
- Predefined prerequisites for Internet Explorer 11
- Predefined prerequisites for Internet Explorer 7/8/9/10 64-bit
- Predefined prerequisites for PowerShell 1.0, 2.0 and 4.0
- Predefined prerequisites for Windows Management Framework BITS
- Predefined prerequisite for Visual C++ 2008 SP1 x64 (MFC Security Update)
- Predefined prerequisite for Visual C++ 2008 x64
- Predefined prerequisite for Visual C++ 2005 x64
- Over 69 enhancements and bug fixes
Version 10.9
Released on January 23rd, 2014- Support Java 7 on Mac OS X
- Bundle JRE for Mac OS X
- Predefined prerequisites for "SQL Server 2012 Express SP1"
- Predefined prerequisites for "SQL Server Express" 64-bit
- On-the-fly conversion of WIX, Install Shield and Visual Studio setup projects from Visual Studio Extension
- Over 43 enhancements and bug fixes
Version 10.8
Released on December 10th, 2013- MSI and MST Diff
- Online Activation Support for Licensing Library
- Support for bulk editing SQL Scripts
- Updated all .NET Framework prerequisites
- Predefined prerequisite for .NET 4.5.1
- Predefined launch condition for .NET 4.5.1
- Predefined launch condition for IIS 8.5
- Predefined launch condition for PowerShell 3.0
- Predefined launch condition for Windows Server 2012 R2
- Over 40 enhancements and bug fixes
Version 10.7
Released on November 11th, 2013- Updated Windows Features support for Windows 8.1 and Windows Server 2012 R2
- Predefined custom action to run PowerShell scripts with inline (dedicated) editor
- Visual Studio 2013 Setup Project Extension
- Predefined prerequisite for Visual Studio C++ Redistributable 2013
- Predefined prerequisite for Windows PowerShell 3.0
- Over 53 enhancements and bug fixes
Version 10.6
Released on September 30th, 2013- Complete redesign for the Repackager
- Support to directly import&convert App-V 4.x packages to App-V 5.0
- Support configuration of all IIS advanced properties
- Automatically detect MSM resources and replace them with original MSM packages
- Open containing folder, file context menu entry in Files and Folders page
- Redesigned and extended support for ODBC
- Support 64-bit ODBC driver in DSN UI
- MSI QuickEditor now supports editing MSI packages with non-standard table schemas
- Over 37 enhancements and bug fixes
Version 10.5
Released on September 2nd, 2013- Windows 8.1 support
- Visual Studio 2013 setup project extension
- MST Editor
- Adaptive image stretching for MSIs in High-DPI environments
- Global build events
- Fast-scan engine for Repackager
- Over 64 enhancements and bug fixes
Version 10.2
Released on May 27th, 2013- Windows Features configuration support
- Dynamic Repackager profile update
- New Repackager UI for configuring multiple applications to be repackaged at once
- Ability to create a Repackager noise profile scan
- Ability for Bootstrapper to remove a previous version of the package it installs
- Custom defined .CUB files (for ICE validations)
- Digital Signature for MSI Editor
- Internet Explorer 10 predefined prerequisite
- Over 56 enhancements and bug fixes
Version 10.1
Released on May 2nd, 2013- Direct Editor (with GUI) for existing MSIs
- Ability to query SQL databases (fetch data)
- Greatly improved configuration UI for all predefined Custom Actions
- Further reduction of generated MSI size
- Added persistent properties support for MSMs
- Added the ability to configure port ranges in Windows firewall rules
- Over 50 enhancements and bug fixes
Version 10.0
Released on March 21st, 2013- Support for AppV 5.0
- IIS WebSite ISAPI Filters and Restrictions
- Allow "Visual Studio Application" import to create imported files per configuration/build
- Customizable Summary Information for MSI
- New 64-bit LZMA encoder for handling larger archives with high compression ratios
- Over 37 enhancements and bug fixes
Version 9.8
Released on December 20th, 2012- App-V packages import
- Smart condition editor
- Categorized updates
- Set Product Version from file
- IIS ASP.NET Impersonation support
- IIS Basic Authentication support
- SQL Server 2008 Express SP3 predefined prerequisite and launch condition
- Adobe Reader XI predefined prerequisite and launch condition
- Over 38 enhancements and bug fixes
Version 9.7
Released on November 29th, 2012- Import Real Studio Desktop solutions
- Direct deployment for SharePoint WSP files
- Automatically upgrade existing SharePoint solutions
- Vital SharePoint solutions
- Package UI project wizard page
- Install updates without elevation
- Download updates without automatic installation
- SQL Server 2008 R2 Express SP2 predefined prerequisite and launch condition
- Over 34 enhancements and bug fixes
Version 9.6
Released on October 5th, 2012- Dictionary editor
- Microsoft Office 2013 support
- Prevent Start Page auto-pin for shortcuts on Windows 8
- Option to disable shortcut taskbar pinning
- Run as Administrator option for shortcuts
- “New project” command line option
- IIS 8 Express predefined prerequisite
- Visual C++ Redistributable for Visual Studio 2012 predefined prerequisite
- SharePoint 2013 predefined launch condition
- Ability to digitally sign files in a merge module
- Download progress for web installers
- Over 36 enhancements and bug fixes
Version 9.5
Released on September 10th, 2012- New installer theme (Surface)
- White background Air theme variation
- Predefined dialog with both EULA and installation folder
- Repository manager
- Repository dialog import
- Bulk editing for XML elements and attributes
- XML file updates in Merge Module projects
- Elevation failure detection with user prompt
- Uninstall/Change button when overriding the Windows Installer programs entry
- Project-based download of predefined prerequisites for off-line installers
- MSZip archives support for SharePoint features
- Over 39 enhancements and bug fixes
Version 9.4
Released on July 26th, 2012- Windows Server 2012 support
- Product SKUs based on serial numbers
- Styled progress bar control in enhanced UI
- Collapsible groups in enhanced UI
- Hyperlinks inside static text controls
- Backup and restore files and registry entries
- Installation path validation
- Feature conditions based on UI elements
- Persistent property values
- File move operations on component uninstall
- SQL Server Native Client predefined prerequisites
- Apache Tomcat predefined prerequisites
- ASP.NET MVC predefined prerequisites
- SQL Server 2008 R2 Express SP1 predefined prerequisite
- Over 30 enhancements and bug fixes
Version 9.3
Released on June 26th, 2012- Import Embarcadero RAD Studio projects
- Import WISE projects
- Select install features based on detected CAB archives
- Spawn support for predefined installer dialogs
- Predefined tabbed dialog for package features and installation folder
- List project and output files that will be digitally signed
- Bulk editing for XML files
- PNG and GIF support in Enhanced UI
- Over 29 enhancements and bug fixes
Version 9.2
Released on May 23rd, 2012- Pre-flight checks for project source files
- Single-dialog installers
- Custom check box control in enhanced user interface
- Predefined properties for localized user accounts and groups
- Determine free disk space predefined custom action
- Redesigned Updater view
- Over 43 enhancements and bug fixes
Version 9.1
Released on May 2nd, 2012- Windows 8 Consumer Preview support
- Silverlight applications support
- Import Visual Studio 11 projects
- Visual Studio 11 integration
- Adaptive fonts and text styles for enhanced UI
- Redesigned Media view
- .NET Framework 4.5 predefined launch condition and prerequisite
- IIS 8.0 predefined launch condition
- Internet Explorer 10 predefined launch condition and search
- MySQL Server 5.5 predefined prerequisite
- SQL Server 2012 Express predefined launch condition and prerequisite
- Apache HTTP Server 2.2.22 predefined prerequisite
- Over 25 enhancements and bug fixes
Version 9.0
Released on March 26th, 2012- Ribbon Toolbar
- Ability to convert EXE packages to MSIs
- Import packed SharePoint solutions
- Minimal progress dialog for image slideshow
- Digital Signature command line option
- New path variable command line option for merge module projects
- Redesigned Custom Actions view
- Over 50 enhancements and bug fixes
Version 8.9
Released on January 26th, 2012- Maintenance operations for feature-based prerequisites
- Support for always-installing prerequisites
- Microsoft Silverlight 5 predefined prerequisite
- Microsoft Games for Windows - LIVE predefined prerequisite
- NVIDIA PhysX predefined prerequisite
- Visual Studio Tools for Office 3.0 SP1 predefined prerequisite
- Action Data for UI event Custom Actions
- Install, uninstall and maintenance custom action predefined conditions
- Automatically detect and add JAR file dependencies to project
- Over 34 enhancements and bug fixes
Version 8.8
Released on December 22nd, 2011- ThinApp Virtualization support
- Internal Digital Signature Tool
- Single-click predefined prerequisites
- Unified Prerequisites view includes: pre&post-install, chained and feature-based
- UltiDev Web Server predefined prerequisite
- Over 38 enhancements and bug fixes
CorelDRAW
Compatibility
For the first time, OpenType versions of Helvetica, Frutiger, Futura and Garamond #3 font families (32 fonts total) from Linotype foundry are included instead of the Bitstream counterparts. All but Garamond are in OpenType Pro format.[24]
Corel X7 introduced 30-day and 365-day rentals (subscriptions) as an alternative to buying a perpetual license. Corel Content Exchange, an online source for fonts, fill patterns and other materials, required continuing payments for access to the full range of content.[28]
An online app is now included, and MacOS is supported, requiring 10.12 (Sierra) or better.[33][34]
(22)
Features include new AI-assisted PowerTRACE, bitmap upsampling, and bitmap artifact compression removal; new Stylized effects such as Pastel and Woodcut; nondestructive (lens) bitmap effects; another edge-finding mask tool; improved search and replace; and sliders to adjust OpenType variable fonts (Windows only).[35]
What’s New in the X-Component XP-UI Suite for NET v2007.10-rG serial key or number?
Screen Shot
System Requirements for X-Component XP-UI Suite for NET v2007.10-rG serial key or number
- First, download the X-Component XP-UI Suite for NET v2007.10-rG serial key or number
-
You can download its setup from given links: