├── CNAME ├── .gitignore ├── 404.html ├── _includes ├── themes │ ├── awesome │ │ ├── settings.yml │ │ ├── page.html │ │ ├── post.html │ │ └── default.html │ └── twitter │ │ ├── settings.yml │ │ ├── page.html │ │ ├── post.html │ │ └── default.html ├── JB │ ├── sharing │ ├── comments-providers │ │ ├── livefyre │ │ ├── intensedebate │ │ ├── facebook │ │ └── disqus │ ├── analytics │ ├── comments │ ├── analytics-providers │ │ ├── google │ │ ├── getclicky │ │ └── mixpanel │ ├── setup │ ├── tags_list │ ├── categories_list │ ├── liquid_raw │ ├── posts_collate │ └── pages_list └── site │ └── navigation ├── _layouts ├── page.html ├── post.html └── default.html ├── assets ├── images │ ├── tutorial-2 │ │ ├── screen-1.png │ │ └── screen-2.png │ └── tutorial-3 │ │ ├── screen-1.png │ │ └── screen-2.png └── themes │ ├── awesome │ ├── images │ │ ├── arrow-down.png │ │ ├── white-linen.png │ │ ├── octocat-small.png │ │ ├── logo-delimiter.png │ │ ├── awe-flat-icon-logo.png │ │ └── awe-trans-icon-logo.png │ ├── webfonts │ │ ├── 27DDD3_0_0.eot │ │ ├── 27DDD3_0_0.ttf │ │ ├── 27DDD3_0_0.woff │ │ └── MyFontsWebfontsKit.css │ ├── javascripts │ │ └── scale.fix.js │ └── stylesheets │ │ ├── pygment_trac.css │ │ └── styles.css │ └── twitter │ ├── bootstrap │ └── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ └── css │ └── style.css ├── sitemap.txt ├── licensing ├── index.md └── licensing-overview.md ├── tutorials ├── index.md ├── tutorial-2-displaying-your-first-page.md ├── tutorial-1-hello-awesomium.md └── tutorial-3-hooking-up-events.md ├── changelogs ├── index.md ├── whats-new-1-7-3.md ├── whats-new-1-7-2.md ├── whats-new-1-7-4.md ├── whats-new-1-7-5.md └── whats-new-1-7-0.md ├── general-use ├── index.md ├── loading-remote-assets.md ├── changing-the-user-agent.md ├── sharing-render-processes-between-web-views.md ├── distributing-awesomium-with-your-application.md ├── reduce-size-of-library.md ├── loading-local-assets.md ├── working-with-windowed-web-views.md ├── handling-child-web-views.md ├── using-web-sessions.md ├── using-data-sources.md ├── using-global-javascript-objects.md ├── porting-to-1-7.md ├── working-with-offscreen-web-views.md ├── declaring-custom-javascript-methods.md ├── introduction-to-web-views.md └── introduction-to-javascript-integration.md ├── getting-started ├── index.md ├── setting-up-on-linux.md ├── setting-up-on-windows.md ├── setting-up-on-macosx.md └── basic-concepts.md ├── index.md ├── atom.xml ├── README.md ├── _plugins └── debug.rb ├── _config.yml └── Rakefile /CNAME: -------------------------------------------------------------------------------- 1 | wiki.awesomium.com -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | Sorry this page does not exist =( 2 | -------------------------------------------------------------------------------- /_includes/themes/awesome/settings.yml: -------------------------------------------------------------------------------- 1 | theme : 2 | name : awesome -------------------------------------------------------------------------------- /_includes/themes/twitter/settings.yml: -------------------------------------------------------------------------------- 1 | theme : 2 | name : twitter -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | {% include JB/setup %} 5 | {% include themes/awesome/page.html %} 6 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | {% include JB/setup %} 5 | {% include themes/awesome/post.html %} 6 | -------------------------------------------------------------------------------- /assets/images/tutorial-2/screen-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/images/tutorial-2/screen-1.png -------------------------------------------------------------------------------- /assets/images/tutorial-2/screen-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/images/tutorial-2/screen-2.png -------------------------------------------------------------------------------- /assets/images/tutorial-3/screen-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/images/tutorial-3/screen-1.png -------------------------------------------------------------------------------- /assets/images/tutorial-3/screen-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/images/tutorial-3/screen-2.png -------------------------------------------------------------------------------- /assets/themes/awesome/images/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/arrow-down.png -------------------------------------------------------------------------------- /assets/themes/awesome/images/white-linen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/white-linen.png -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | theme : 3 | name : awesome 4 | --- 5 | {% include JB/setup %} 6 | {% include themes/awesome/default.html %} 7 | -------------------------------------------------------------------------------- /assets/themes/awesome/images/octocat-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/octocat-small.png -------------------------------------------------------------------------------- /assets/themes/awesome/webfonts/27DDD3_0_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/webfonts/27DDD3_0_0.eot -------------------------------------------------------------------------------- /assets/themes/awesome/webfonts/27DDD3_0_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/webfonts/27DDD3_0_0.ttf -------------------------------------------------------------------------------- /assets/themes/awesome/webfonts/27DDD3_0_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/webfonts/27DDD3_0_0.woff -------------------------------------------------------------------------------- /assets/themes/awesome/images/logo-delimiter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/logo-delimiter.png -------------------------------------------------------------------------------- /assets/themes/awesome/images/awe-flat-icon-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/awe-flat-icon-logo.png -------------------------------------------------------------------------------- /assets/themes/awesome/images/awe-trans-icon-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/awesome/images/awe-trans-icon-logo.png -------------------------------------------------------------------------------- /assets/themes/twitter/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/twitter/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /assets/themes/twitter/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/awesomium/wiki/HEAD/assets/themes/twitter/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /_includes/JB/sharing: -------------------------------------------------------------------------------- 1 | {% if site.safe and site.JB.sharing.provider and page.JB.sharing != false %} 2 | 3 | {% case site.JB.sharing.provider %} 4 | {% when "custom" %} 5 | {% include custom/sharing %} 6 | {% endcase %} 7 | 8 | {% endif %} -------------------------------------------------------------------------------- /sitemap.txt: -------------------------------------------------------------------------------- 1 | --- 2 | # Remember to set production_url in your _config.yml file! 3 | title : Sitemap 4 | --- 5 | {% for page in site.pages %} 6 | {{site.production_url}}{{ page.url }}{% endfor %} 7 | {% for post in site.posts %} 8 | {{site.production_url}}{{ post.url }}{% endfor %} -------------------------------------------------------------------------------- /_includes/themes/twitter/page.html: -------------------------------------------------------------------------------- 1 |
We'll show you how to reduce memory and active processes by sharing renderers between Web-Views
9 | 10 | Each WebView that you spawn via `WebCore.CreateWebView` gets its own render process (eg, `awesomium_process.exe`) with its own set of resources. This is great for isolation and multi-process rendering but sometimes you need to create boatloads of views and don't want to spend boatloads of resources. 11 | 12 | ### Child Process Trick 13 | 14 | One way to force WebViews to share a render process is to make one master WebView and use it to spawn a bunch of smaller web views (e.g., `window.open()` in JavaScript). Child WebViews will share the same process as the parent. 15 | -------------------------------------------------------------------------------- /atom.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: nil 3 | title : Atom Feed 4 | --- 5 | 6 |#{obj.class}\n#{obj.pretty_inspect}"
33 | end
34 |
35 | end # DebugFilter
36 | end # Jekyll
37 |
38 | Liquid::Template.register_filter(Jekyll::DebugFilter)
--------------------------------------------------------------------------------
/_includes/JB/comments-providers/disqus:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 | blog comments powered by Disqus
15 |
--------------------------------------------------------------------------------
/general-use/reduce-size-of-library.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title : Reduce the size of the library
4 | group: General Use
5 |
6 | ---
7 |
8 | You can reduce the size of the Awesomium libraries by using **UPX** to compress the individual DLLs of the Awesomium SDK.
9 |
10 | 1. Download the latest version of UPX for your platform, here: [http://upx.sourceforge.net/](http://upx.sourceforge.net/)
11 | 2. Copy the upx executable to the **_build/bin_** folder of the SDK.
12 | 3. Open a Console/Terminal window and navigate to the **_build/bin_** folder of the SDK.
13 | 4. Execute the following commands:
14 |
15 | {% highlight bash %}
16 | upx --best --lzma awesomium.dll
17 | upx --best --lzma icudt.dll
18 | {% endhighlight %}
19 |
20 | You can now delete the copy of the upx executable from the **_build/bin_** folder of the SDK.
21 |
22 | ### Notes
23 |
24 | * It is not necessary to reduce the size of any other libraries of the Awesomium SDK, since they are of relatively small size.
25 | * Do not apply this technique to the managed assemblies or the Awesomium libraries accompanying **Awesomium.NET**; a packed version of Awesomium.NET will be available with the final release of version 1.7.
26 |
--------------------------------------------------------------------------------
/general-use/loading-local-assets.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title : Loading Local Assets
4 | group: General Use
5 | weight: 20
6 |
7 | ---
8 |
9 | ### Loading Assets from the Filesystem
10 |
11 | You can load pages and assets into a WebView from the local filesystem by using `WebView::LoadURL` with a local `file:///` URL.
12 |
13 | {% highlight cpp %}
14 | view->LoadURL(WebURL(WSLit("file:///C:/Users/awesomium/Documents/webpage.html")));
15 | {% endhighlight %}
16 |
17 | This is just like opening a local HTML file into your browser.
18 |
19 | ### Loading Assets from a DataSource
20 |
21 | Instead of putting all of your assets in a local folder alongside your application, we recommend using a DataSource (or even a DataPakSource) to distribute sensitive assets. A DataSource gives you complete control over how the resource is loaded (allowing you to implement encrypted and/or compressed loading schemes).
22 |
23 | **See [this article](using-data-sources.html) for more information on using DataSource.**
24 |
25 | ### Same-Origin Policy
26 |
27 | By default, Awesomium uses Chrome's "same-origin" policy to prevent cross-site scripting requests. If you wish to disable this behavior please see `WebPreferences.enable_web_security`.
--------------------------------------------------------------------------------
/general-use/working-with-windowed-web-views.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title : Working with Windowed Web-Views
4 | group: General Use
5 | weight: 4
6 |
7 | ---
8 |
9 | ### Windowed Web-Views
10 |
11 | Windowed Web-Views are a new feature to the 1.7 branch that essentially allow you to render a WebView directly to a platform-specific window (such as a HWND on Windows).
12 |
13 | These Web-Views capture mouse/keyboard input and usually must be attached to some kind of container to be displayed.
14 |
15 | Rendering a WebView directly to a window can dramatically improve performance in situations where a WebView needs to be displayed in a conventional, 'popup' manner (as opposed to layered within a 3D engine or projected non-uniformaly onto a surface).
16 |
17 | ### Creating a Windowed Web-View
18 |
19 | You can create a windowed Web-View via `WebCore::CreateWebView`. Here's an example of how to create such a view on the Windows platform
20 |
21 | {% highlight cpp %}
22 | // Create a windowed WebView with initial size of 500 x 500
23 | WebView* view = web_core->CreateWebView(500, 500, 0, kWebViewType_Window);
24 |
25 | // Attach the window to our parent window container
26 | view->set_parent_window(parent_hwnd);
27 | {% endhighlight %}
--------------------------------------------------------------------------------
/changelogs/whats-new-1-7-4.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title : What's New in 1.7.4
4 | group: Changelogs
5 | weight: 6
6 |
7 | ---
8 | {% include JB/setup %}
9 |
10 | > These notes are for the core C++ API, __click here for the .NET notes__.
11 |
12 |
13 | ### Major Core Changes
14 | * Removed quota limit on local storage and session storage
15 | * Fixed issue with `WebConfig::user_script` on Mac OSX
16 | * Fixed issue with `about:blank` being added to history at beginning of `WebView` lifetime
17 | * Fixed issue with PDF files not being downloaded when Adobe Reader is installed
18 | * Fixed crash that occurs when `JSObject::Invoke` fails on executing a callback with invalid JavaScript
19 | * Fixed crash issue when JavaScript is disabled
20 | * Fixed crash issue with `requestQuota`
21 | * Fixed crash when users hit `CTRL+LEFT` at beginning of line
22 |
23 | ### Major API Changes
24 | * Added `WebConfig::asset_protocol`
25 | * Added catch-all rule to `WebSession::AddDataSource`
26 | * Added host and request parameters to `DataSource::OnRequest`
27 |
28 | ### .NET Changes
29 | * Click here for the .NET notes
30 |
--------------------------------------------------------------------------------
/assets/themes/awesome/webfonts/MyFontsWebfontsKit.css:
--------------------------------------------------------------------------------
1 | /* @license
2 | * MyFonts Webfont Build ID 2612691, 2013-07-30T17:40:11-0400
3 | *
4 | * The fonts listed in this notice are subject to the End User License
5 | * Agreement(s) entered into by the website owner. All other parties are
6 | * explicitly restricted from using the Licensed Webfonts(s).
7 | *
8 | * You may obtain a valid license at the URLs below.
9 | *
10 | * Webfont: Neo Sans Std Bold by Monotype Imaging
11 | * URL: http://www.myfonts.com/fonts/mti/neo-sans/std-bold/
12 | * Copyright: Copyright 2004 Monotype Imaging, Inc. All Rights Reserved.
13 | * Licensed pageviews: 250,000
14 | *
15 | *
16 | * License: http://www.myfonts.com/viewlicense?type=web&buildid=2612691
17 | *
18 | * © 2013 MyFonts Inc
19 | */
20 |
21 |
22 | /* @import must be at top of file, otherwise CSS will not work */
23 | @import url("//hello.myfonts.net/count/27ddd3");
24 |
25 |
26 | @font-face {font-family: 'NeoSansStd-Bold';src: url('/assets/themes/awesome/webfonts/27DDD3_0_0.eot');src: url('/assets/themes/awesome/webfonts/27DDD3_0_0.eot?#iefix') format('embedded-opentype'),url('/assets/themes/awesome/webfonts/27DDD3_0_0.woff') format('woff'),url('/assets/themes/awesome/webfonts/27DDD3_0_0.ttf') format('truetype');}
--------------------------------------------------------------------------------
/_includes/JB/tags_list:
--------------------------------------------------------------------------------
1 | {% comment %}{% endcomment %}
19 |
20 | {% if site.JB.tags_list.provider == "custom" %}
21 | {% include custom/tags_list %}
22 | {% else %}
23 | {% if tags_list.first[0] == null %}
24 | {% for tag in tags_list %}
25 | {{text | replace:"|.", "{" | replace:".|", "}" | replace:">", ">" | replace:"<", "<" }}
31 | {% endif %}
32 | {% assign text = nil %}
--------------------------------------------------------------------------------
/getting-started/setting-up-on-linux.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title : Setting Up on Linux
4 | group: Getting Started
5 | weight: 3
6 |
7 | ---
8 |
9 | > These notes are for developing a C++ application. If you are a developing a .NET/C# application please see our [.NET Wiki](http://wiki.awesomium.net/getting-started/) instead.
10 |
11 | ### Checklist
12 |
13 | Before we begin, you'll need the following:
14 |
15 | * The **Awesomium SDK** (download it [here](http://www.awesomium.com/download))
16 | * Ubuntu Linux
17 |
18 | ### Install the SDK
19 |
20 | 1. After downloading the SDK, extract it to a folder in your home directory.
21 | 2. Open the Terminal.
22 | 3. Change directories to the SDK files you just extracted.
23 | 4. Run `sudo make all` to install the library to your machine.
24 |
25 | ### Run the Samples
26 |
27 | You should now be able to run the samples. Change directories to the `./bin` folder and run some samples:
28 |
29 | The Hello World example loads up Google and renders it to a JPG on disk:
30 |
31 | ./awesomium_sample_hello
32 |
33 | The WebFlow sample depends on SDL 1.2 and OpenGL, demonstrates a simple 3D browser:
34 |
35 | ./awesomium_sample_webflow
36 |
37 | ### Using Awesomium
38 |
39 | To use most of the Awesomium API in your C++ code, just include the following:
40 |
41 | #include In this tutorial, we'll load our own HTML into a WebView and display it within a window.
10 | 11 | ### Start With This Code 12 | 13 | It's quite a bit of work to set up an empty Windows GDI or Mac OSX Cocoa application. To save some time we've gone ahead and done some of the work for you. 14 | 15 | Start by downloading the framework below and following the README for your platform: 16 | 17 | * [Tutorial Framework for Awesomium (GitHub ZIP)](https://github.com/awesomium/tutorial-framework/archive/master.zip) 18 | 19 | #### Windowed WebViews 20 | 21 | It's important to note that we will be using Windowed WebViews (as opposed to Offscreen WebViews) with the Tutorial Framework. These views render directly to a platform-specific graphics surface and capture input as well. 22 | 23 | ### Loading Custom HTML 24 | 25 | After setting up your project using the tutorial framework, open up `main.cc` and find the following code: 26 | 27 | {% highlight cpp %} 28 | // Inherited from Application::Listener 29 | virtual void OnLoaded() { 30 | view_ = View::Create(500, 300); 31 | // < Set up your View here. > 32 | } 33 | {% endhighlight %} 34 | 35 | The `OnLoaded` method is called within the tutorial framework once the application has finished launching. This is your best chance to set up your WebViews and make them do interesting things. 36 | 37 | The framework uses a special wrapper class called `View` which consists of a platform window and a WebView. Notice the code above creates one View with dimensions of 500x300. 38 | 39 | If you ran this code right now, nothing would be displayed because the WebView contains no content. Let's fix that. 40 | 41 | Replace the `//In this tutorial, we'll load a remote page into a WebView and save the result to a JPEG.
10 | 11 | ### Start With This Code 12 | 13 | > Make sure you've read the [Getting Started](http://wiki.awesomium.com/getting-started/) articles before we begin. 14 | 15 | Create a new file called __main.cc__ and add the following code to it: 16 | 17 | {% highlight cpp %} 18 | // Various included headers 19 | #includeIt's easy to communicate with web-pages using JavaScript; here's a quick overview of the classes you'll need to use.
10 | 11 | ## JSValue Class 12 | 13 | The JSValue class is used as an intermediary to translate C++ types into Javascript variables and vice-versa. To get a better understanding of how this relationship works, here’s how types are mapped between Javascript and C++ using JSValue: 14 | 15 || Javascript | C++ |
|---|---|
| Number | double or int |
| Boolean | bool |
| String | WebString (UTF-16) |
| Object | JSObject |
| Array | JSArray |
| Null | JSValue::Null() |
| Undefined | JSValue::Undefined() |
In this tutorial, we'll show how to hook up events between the page and host application via JavaScript callbacks.
10 | 11 | ### Start With This Code 12 | 13 | It's quite a bit of work to set up an empty Windows GDI or Mac OSX Cocoa application. To save some time we've gone ahead and done some of the work for you. 14 | 15 | Start by downloading the framework below and following the README for your platform: 16 | 17 | * [Tutorial Framework for Awesomium (GitHub ZIP)](https://github.com/awesomium/tutorial-framework/archive/master.zip) 18 | 19 | ### Create Your HTML Interface 20 | 21 | Create a new HTML file named `app.html` somewhere on your hard drive and add the following content to it: 22 | 23 | {% highlight html %} 24 | 25 | 26 |