What’s New in 1.7.0

Get the SDK

Awesomium 1.7.0 for Windows is now stable and feature-complete! Download the SDK from the link below:

Download 1.7.0 for Windows
API Docs for C++
API Docs for .NET

We will be releasing updates for Mac OSX and Linux soon.

Top 3 Changes in the Core

1. SSL Certificate API

We’ve added some new SSL certificate handlers and methods to help you better verify and display secure web-pages within your application.

You can now get SSL info for a certain WebView via WebView::RequestPageInfo and the corresponding WebViewListener::Dialog::OnShowPageInfoDialog.

Here’s an example:

// Request additional SSL info asynchronously
myWebView->RequestPageInfo();


// Define our Dialog listener
class MyDialogListener : public WebViewListener::Dialog {

  // Other methods go here

  void OnShowPageInfoDialog(Awesomium::WebView* caller,
                            const Awesomium::WebPageInfo& page_info) {

    if (page_info.security_status == kSecurityStatus_Authenticated)
      std::cout << "The web-page has a secure connection!";
    else
      std::cout << "The web-page is insecure."
  }

  void OnShowCertificateErrorDialog(Awesomium::WebView* caller,
                                    bool is_overridable,
                                    const Awesomium::WebURL& url,
                                    Awesomium::CertError error) {
    // handle SSL Certificate error here
  } 
};

2. Navigation Interceptor

You can now block page navigations via ResourceInterceptor::OnFilterNavigation. This is useful for implementing custom whitelist or blacklist behaviors.

class MyResourceInterceptor : public ResourceInterceptor {

  // other methods go here

  bool OnFilterNavigation(int origin_process_id,
                          int origin_routing_id,
                          const Awesomium::WebString& method,
                          const Awesomium::WebURL& url,
                          bool is_main_frame) {
    // Be careful, this callback is dispatched on the IO thread
    if (URLShouldBeBlocked())
      return true;
    else
      return false;
  }
};

3. Asynchronous JSObject API

You can now define properties and invoke methods on remote JavaScript Objects asynchronously.

Previously, when you called JSObject::SetProperty on a remote JSObject (eg, a DOM Object in the renderer), the operation was dispatched synchronously which would cause the main-process to stall until the renderer had completed the request. This was not optimal if you needed to initialize a remote object with a large number of properties at once.

You can now call JSObject::SetPropertyAsync to batch up all subsequent calls until the next update.

myObject->SetPropertyAsync(WSLit("foo"), WSLit("bar"));
myObject->SetPropertyAsync(WSLit("color"), WSLit("blue"));
myObject->SetPropertyAsync(WSLit("universe"), 42);

More changes:

That’s just a few of the core changes we’ve made in 1.7.0.

View the Changelog.

Top 3 Changes in the .NET Bindings

1. Predefined Menus and Controls

We have added predefined drop-down (popup) menus, dialogs and controls to both the WPF and Windows Forms assemblies.

Windows Forms WebControl Designer

2. JavaScript Handling

You now have the ability handle JavaScript dialog calls. Predefined dialogs are included or you can design and show your own.

Windows Forms WebControl Designer

Better support has also been added for JavaScript window.open as well as other methods such as window.close. DLR (dynamic) programming features have been improved and extended with support for asynchronous bindings.

3. Better Design-Time Support

Rich design-time experience with RoutedCommands, MarkupExtensions
and data providers in WPF and new components, action lists and smart tags in Windows Forms.

Windows Forms WebControl Designer

More changes:

That’s just a few of the changes we’ve made in Awesomium.NET for the final release of 1.7.0.

View the Changelog.

Also read...

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>