A port of WebKit (specifically, webcore+libs) to JavaScript aimed at running in both node.js and browsers. Currently available for contributors; and testers. However this is not recommended for production or beta environments.
See the webkit.js Google Group for Discussions & Questions
Current Issues
Supported Features
The entire HTML5, CSS3 and SVG rendering is supported; the following features are not supported and probably will never be.
Fonts are rendered via freetype2, fontconfig and cairo for consistent font rendering across all platforms. Native video and audio decoding is supported but not included in the regular build. Eventually i'll post instructions on compiling in native video/audio support.
Requirements
webkit.js can be built on linux, osx, or windows.
$ xcode-select --install (Mac OS X only)Building webkit.js step-by-step
git clone https://github.com/trevorlinton/webkit.js webkitjs ; cd webkitjs
./setup.sh
./config.sh
./build.sh
./build.sh debug
See demo.html and webkit.js in the "bin" folder, runs best in Firefox (Chrome/Safari seem to have large long hiccups and freezes due to garbage collection).
http://trevorlinton.github.io/
Getting around the code
/deps/WebKit/ This is a modified version of Apple's official repo./deps/WebKit/Source/WebCore This is where 90% of the work is done./deps/WebKit/Source/WebCore/bindings/scripts This is an important folder where WebKit autogenerates bindings/deps/WebKit/Source/WTF/ is a cross-platform library for common tasks such as HashMaps, etc./deps/WebKit/Source/WTF/PlatformJS.h these are C++ pre-process settings for PLATFORM(JS)/features.gypi You can turn various features in WebCore on and off here/common.gypi You can change various compiler settings, system paths, etc./webkit.gyp This contains the build arch and is the first file used when generating project files with gyp./sources.gypi This file contains the list of all of the sources to compile./derived.gypi This file is auto-generated by make-source-files.sh in the tools directory, it hunts down any changes vs. what's in derived.gypi currently and adds it in. This is convenient only when you've done a pull from WebKit and need to make sure you've properly added/removed files based on what's happened upstream./config.sh This autogenerates the project files, it also tries to find em++/emcc and all of your tools, if config files, check the file to make sure its finding emscripten and clang./src This contains all of the derived sources, bindings, and custom code to link in with WebCore and bind it to canvas, node and javascript contexts. This will also be where the API will be built./bin This contains the latest builds for debug and release modes. Note that the debug builds are compressed for the sake of github./src/WebView.cpp This is the main 'essential' class and loading class for everything./src/Main.cpp This is a proxy from C++ to C, so we can use the emscripten exported symbols features./src/Symbols.exports This contains a list of C functions that are exported to javascript (and thus accessible to the javascript API./src/webkit.api.js This is the javascript file thats exposed to javascript programmers.It's important to know
features.gypi will have a lot of consequences, most of the disabled features are disabled because there's no possible work around for including the platform specific or network layer code (bindings to forward this to the native browser/nodejs module will need to be built). In addition, if features.gypi is modified that you update featurs.make within the tools folder.src/WebCoreDerived, it's autogenerated and will most likely be overwritten if the derived sources needs to rebuild.config.sh and common.gypi (and related gypi/gyp files). While not all settings will be overwritten with a new config, there's a chance some of your settings may need to be added to these files.Roadmap
BSD License. Use of this source code is governed by a BSD-style license that can be found in the LICENSE files contained in the root of the respective source code.
© True Interactions 2014 (www.trueinteractions.com)
(top 24 of 26)
9,083 followers · starred Jun 2014
4,611 followers · starred Jan 2014
1,260 followers · starred Jan 2014
5,783 followers · starred Mar 2016
A port of WebKit (specifically, webcore+libs) to JavaScript aimed at running in both node.js and browsers. Currently available for contributors; and testers. However this is not recommended for production or beta environments.
See the webkit.js Google Group for Discussions & Questions
Current Issues
Supported Features
The entire HTML5, CSS3 and SVG rendering is supported; the following features are not supported and probably will never be.
Fonts are rendered via freetype2, fontconfig and cairo for consistent font rendering across all platforms. Native video and audio decoding is supported but not included in the regular build. Eventually i'll post instructions on compiling in native video/audio support.
Requirements
webkit.js can be built on linux, osx, or windows.
$ xcode-select --install (Mac OS X only)Building webkit.js step-by-step
git clone https://github.com/trevorlinton/webkit.js webkitjs ; cd webkitjs
./setup.sh
./config.sh
./build.sh
./build.sh debug
See demo.html and webkit.js in the "bin" folder, runs best in Firefox (Chrome/Safari seem to have large long hiccups and freezes due to garbage collection).
http://trevorlinton.github.io/
Getting around the code
/deps/WebKit/ This is a modified version of Apple's official repo./deps/WebKit/Source/WebCore This is where 90% of the work is done./deps/WebKit/Source/WebCore/bindings/scripts This is an important folder where WebKit autogenerates bindings/deps/WebKit/Source/WTF/ is a cross-platform library for common tasks such as HashMaps, etc./deps/WebKit/Source/WTF/PlatformJS.h these are C++ pre-process settings for PLATFORM(JS)/features.gypi You can turn various features in WebCore on and off here/common.gypi You can change various compiler settings, system paths, etc./webkit.gyp This contains the build arch and is the first file used when generating project files with gyp./sources.gypi This file contains the list of all of the sources to compile./derived.gypi This file is auto-generated by make-source-files.sh in the tools directory, it hunts down any changes vs. what's in derived.gypi currently and adds it in. This is convenient only when you've done a pull from WebKit and need to make sure you've properly added/removed files based on what's happened upstream./config.sh This autogenerates the project files, it also tries to find em++/emcc and all of your tools, if config files, check the file to make sure its finding emscripten and clang./src This contains all of the derived sources, bindings, and custom code to link in with WebCore and bind it to canvas, node and javascript contexts. This will also be where the API will be built./bin This contains the latest builds for debug and release modes. Note that the debug builds are compressed for the sake of github./src/WebView.cpp This is the main 'essential' class and loading class for everything./src/Main.cpp This is a proxy from C++ to C, so we can use the emscripten exported symbols features./src/Symbols.exports This contains a list of C functions that are exported to javascript (and thus accessible to the javascript API./src/webkit.api.js This is the javascript file thats exposed to javascript programmers.It's important to know
features.gypi will have a lot of consequences, most of the disabled features are disabled because there's no possible work around for including the platform specific or network layer code (bindings to forward this to the native browser/nodejs module will need to be built). In addition, if features.gypi is modified that you update featurs.make within the tools folder.src/WebCoreDerived, it's autogenerated and will most likely be overwritten if the derived sources needs to rebuild.config.sh and common.gypi (and related gypi/gyp files). While not all settings will be overwritten with a new config, there's a chance some of your settings may need to be added to these files.Roadmap
BSD License. Use of this source code is governed by a BSD-style license that can be found in the LICENSE files contained in the root of the respective source code.
© True Interactions 2014 (www.trueinteractions.com)
(top 24 of 26)
9,083 followers · starred Jun 2014
4,611 followers · starred Jan 2014
1,260 followers · starred Jan 2014
5,783 followers · starred Mar 2016