
open-webkit-sharp
OpenWebKitSharp is a .net wrapper for the webkit engine based on the WebKit.NET 0.5 project. It adds more functionality to the 0.5 version and it provides more methods than that build. OpenWebKitSharp supports both the Cairo build (0.5) and the nightly builds of webkit (Nightly by default). In Version 1.5 Stable and more the nightly build is included and automatically copied after building. In earlier versions this happens with the cairo build. OpenWebKitSharp currently powers GTLite Navigator, a fast, stable and flexible web browser.
OpenWebKitSharp is developed by GT Web Software (http://www.gt-web-software.webs.com/)
Show us what you have done with OpenWebKitSharp: http://gt-web-software.webs.com/apps/forums/show/6508813-show-off-your-openwebkitsharp-application-
Version 3 re-released as Version 3.0.1.0023 with important bug fixes
Check below in the changelog for more details
Important - critical bug fixed!
Version 3.0 has been released with the most important change being the fix to a huge memory leak that occured due to false management of mouseDidMoveOverElement inside uiDelegate.cs. The code has been modified but the methods that relied on this buggy implementation are still avaiable and working correctly. A lot of changes have been made to the project to keep the same features while reducing memory usage, together with the Dispose() and Release() (internal) methods for DOM objects.
Support by Donating
If you want to support this project financially you can do so using this page: http://gt-web-software.webs.com/apps/donations/
WebKit Developers needed
As some of you might already know, a huge number of methods and properties are not implemented in the Windows port of the Nightly WebKit Build, like DOMEvents, Undo/Redo actions (custom method implemented in OpenWebKitSharp) and Headers management. All these things are implemented inside OpenWebKitSharp but cannot be used because they are not available inside WebKit. So, if some of you are interested in helping the development of OpenWebKitSharp and you have the appropriate knowledge to improve the Windows port of WebKit then your contribution would be highly appreciated and you will certainly be credited.
Updates
Version 3.0.1.0023:
Fixed dispose and finalizing bugs that could cause crash FIxed printing dialogs' size bug
Fixed Binary_NET2 files because they were build for .NET Framework 4.0 instead of 2.0
Added new event: HTTPErrorOccured
Minor bug fixes
Version 3.0:
Fixed huge memory leak which occured due to false management of the mouseDidMoveOverElement method from UIDelegate
Using custom WebKit build with better DOM management (source included) and more methods implemented
Added more functions for interfering with HTML inside DOM
Added Dispose() method inside DOM and HTML classes, which destroy the COM object using Marshal.ReleaseCOMObject() in order to fix memory leaks
Version 2.9:
Added LinuxWebKitBrowser for use in Linux with GTK
Fixed IgnoreSSLErrors
Minor bug fixes and optimizations
Included JSCore in OpenWebKitSharp.sln
Upgraded engine
Version 2.8:
Added Appearance class for interfering with how the page looks
Now PopupCreated and NewWindowCreated events are trigered also at the first time a link is clicked
PluginFailed is also trigered via IWebUIDelegatePrivate and with description string
Focus issues fixed
Windows 8 compatibility improved
Version 2.7.0.2301:
Fixed null events
Added AddMessageToConsole event at ScriptManager
Fixed minor bugs
Better error handling to increase stability
Fixed some methods inside uiDelegate.cs that would throw exceptions during debugging
Version 2.7(r119):
Updated to the latest WebKit revision (108083)
Created custom undo-redo system
Added the ability to accept or reject a Geolocation policy request
Added the WebKit Modified Source folder to show the changes that are made in the interfaces and not violate Apple's license
Added Binaries.txt
Minor code optimizations
Reset repository due to TortoiseSVN errors
Version 2.6.1(r118):
Fixed null events
Created Binary_NET2 and updated all folders with the correct DLL combinations
Updated the example projects to use the correct dlls
Version 2.6(r117):
Fixed minor bugs and removed unnecessary code parts
Added the ability to listen to specific events of all the DOM Objects that can be accessed including mouseover, click, keyup, keydown and focus
Version 2.5(r115):
Upgraded to the latest WebKit revision
Fixed context menu bugs
Fixed JSManagement.CallFunction that didn't work in previous versions
Improved Downloader's compatibility
General bug fixes and overall performance improved
Disabled the run of the terminal at the startup by using IWebPreferencesPrivate to enable the inspector
Version 2.4(r111):
Added modified JSCore project to enable JavaScript access via C# (only in .NET 4)
Upgraded to the latest WebKit (r103679)
Fixed general bugs
Fixed Printing (it is now done via the .NET WebBrowser object)
Created Release_NET2 and Debug_NET2 for people who want to use OpenWebKitSharp with .NET Framework 2 but they don't have access to JSCore
Reorganized project
Version 2.3(r105):
PopupCreated event and NewWindowCreated events are propertly working
LinkContextMenu added
Improved the way modals are loaded
Fixed minor bugs
Version 2.2(r100):
WebInspector is now available to be used
Fixed Download Image bug
Added PageZoom property
Improved Downloader's performance
Started developing a method for listening DOM events (cannot be used yet)
Version 2.1(r67):
Fixed print dialog issues
Fixed stability issues (downgrading to earlier WebKit)
Version 2.1(r55):
Improved LanguageLoader with more languages (Credits at Credits.ini)
Upgraded to the latest WebKit revision
Fixed general bugs
Removed the dependency on WebKit.Interop.old.dll and IWebFramePrivate interface
imported to the new interop and type library
Printing bugs probably fixed (testers needed)
From now on, the development of OpenWebKitSharp will move to revision changes intead of version changes
Version 2.0:
Completely changed working environment
Upgraded to newer WebKit engine
Major bug fixes (including the NullReferenceExceptions when editing preferences)
Stability increased and no more COMException crashes
Fixed the Navigating event
languageLoader completed
Added Header support (edit, add and get headers for a request)
ResourceIntercepter completed
Compatibility with VS2011 improved
Added How-To-Use.txt (Please read it! Important changes compared to earlier versions)
Version 1.9:
Added ResourceIntercepter class (monitoring the loading of all resources that the page attempts to load)
Improved Popup Detecter
Many Bug-Fixes and General and Stability Improvements
OpenWebKitSharp.manifest can now be created if not exists in the build directory
Added How to use.txt file
Added example of the ResourceIntercepter class in the example project
Major bug in GlobalPreferences fixed (sometimes the preferences were not editable)
Version 1.7:
TukruScript Plugins Implementation (More info at:http://intellotech.x10.mx/tukruscript/)
TukruScript Example Project added
PopupCreated event
Popup Blocker inside the example project
The user can now edit the default context menu for the body and when text is selected
FaviconAvailable event now returns the favicon more quickly and with no freeze (using BackgroundWorker)
ShowDownloader method
Stability Improved (less crashy)
Minor changes and bug fixes
Version 1.6:
Added CustomMenuImplementation example which demonstrates how custom context menu should be used
Added new downloader (credits to MyDownloader from Code Project) which is more advanced than the previous one and supports more hosting services
Added ViewSource form and WebKitBrowser.GetSourceCode (Credits to Philippe Asmar)
Fixed general bugs
Removed StartSpeaking and StopSpeaking (which didn't function)
Version 1.5 Stable:
StatusText bug fixed
Nightly build included instead of Cairo
Added CSS management with 5 new classes
Added the ability to create custom context menu and giving information about the element that the cursor is currently on
Fixed bugs in default downloader
IsWebBrowserContextMenuEnabled changed to UseDefaultContextMenu which, if false, allows custom menu implementation via Browser.CustomContextMenuManager
Fixed ElementAtPoint
Added a few new features to WebKitBrowser
Fixed bugs in Example Project
Version 1.5 Beta:
StatusText gives the Url of the link when using Nightly Builds
Fixed minor performance issues
Upgraded to WebKit 534
Improved downloader (thanks to dodgeball)
Fixed a few bugs in example project
Added CanCopyLinkContents, CanCopySelectedText properties and CopySelectedText and CopyLinkContents methods Eliminated some annoying and useless exceptions which occured while debugging
Added Document.GetElementById and HTMLElement.ID
Version 1.2R1 Released:
Eliminated the Null Exception when debugging and the url is empty
Fixed a bug in the example project for the new window (works only with nightly builds)
Version 1.2 Released! Changes:
Added Example Project
Fixed important bugs related to the initialization of the engine, which sometimes threw exceptions (NullReferenceExceptions and Failed to Initialize Activation Context). If the 2nd exception still occurs check if the WebKitBrowser.dll.manifest file exists. If not then rebuild your OpenWebKitSharp source and set the build folder to the folder of your project where you use OpenWebKitSharp.
Added FishPhish class (credits to Eric Dong)
Added DangerousSiteDetected, ShowJavaScriptConfirmPanel, ShowJavaScriptAlertPanel and ShowJavaScriptInputPanel events.
Minor Bugs Fixes
Getting Started
In order to use OpenWebKitSharp with your project you must follow these steps:
Reference OpenWebKitSharp.dll and WebKit.Interop.dll in your project
Copy the contents of the cairo build to your debug/release folder.
Build your project
You are ready to use OpenWebKitSharp with your project
If you want to develop OpenWebKitSharp together with your main project then add the OpenWebKitSharp project to your solution and set the build path to your main project's build path. OpenWebKitSharp 1.2 and newer versions will place the cairo build inside the build folder by default. If you don't want the project to do so then remove all lines from the post-build events.
In order to use a nightly build follow the steps of this guide (Credits to Peter Nelson): http://peterdn.com/post/(First!)-Using-WebKit-nightly-builds-with-WebKit-NET.aspx
Changelog compared to WebKit.NET 0.5
DownloadBegin event now returns as arguments the url of the file and the suggested file name letting you handle downloads in your own way or use the advanced built-in downloader.
You can create your own downloader by setting Browser.WillHandleDownloadsManually = true. Otherwise the event will not be fired and the default downloader will show up.
ProgressChanged event
StatusTextChanged event.
WindowClosed event.
Added form delegate, which fires an event when the user submits a form, edits a textbox of a form etc.
Find method with text highlighting and total matches information
Page and Text Zoom easily accesible (IncreaseZoom, DecreaseZoom etc.)
Added StartSpeaking and StopSpeaking methods (WebView.startSpeaking and WebView.stopSpeaking)
Added GlobalPreferences class
Added FaviconAvailable event
Cutom ContextMenu can be implemented
CSS management
Many new features including a Resources Intercepter, a Popup detector and support for TukruScript (plugin framework)
Future Plans
Better DOM Access - Started working...
Provide better Script Management
Project Information
The project was created on Aug 13, 2011.
- License: GNU Lesser GPL
- 132 stars
- svn-based source control
Labels:
Webkit
Library
DotNet
API
Browser
Web
Cocoa
CSharp
CSS
HTML
HTTP
JavaScript
Performance
VisualStudio