how extend webkit in C/C++ - webkit

I would like to learn how to extend JavaScript functionality by adding some plug-ins to webkit based browsers.
Any link or tutorial from where I can start.
I looked into http://rvr.typepad.com/wind/2011/10/webkit-extending-javascript-1.html
but it used GTK+, I am looking webkit enhancement in C/C++

Seems you have some confusion...
Why did you tag this "firefox-addon" and "firefox-addon-sdk" when Firefox is not Webkit based? (It uses Gecko).
Also, GTK+ is a C++ wrapper over the C interface to a GUI toolkit. (?)
If you want some good opportunities to mess with WebKit, you can install Qt Creator and try out their WebKit examples, which include plugins as well as some more basic integration:
http://qt-project.org/doc/qt-4.8/examples-webkit.html
You should read up on NPAPI/PPAPI if your goal is to write plugins for existing web browsers:
http://en.wikipedia.org/wiki/NPAPI

Related

Create web site using Objective-c

Today when i was reading article about APPCode IDe they had written they support CSS, Javascript & html . After this I surfed few website where i found some info about Cappuccino which is exactly like xocde IDe.
How far the objective-c supports in creating web site application, does the objective-c ends with iOS & OSx are they any frameworks which we used in creating UI for web site .
XCode IDE supports development on C, C++, Objective-C, Objective-C++, Java, AppleScript, Python and Ruby mainly. Although you can write some HTML files it is not the best choice as IDE for web development. There are plenty many outside like TextMate, Coda, or the two you mentioned APPCode and Cappuccino.
Objective-C, programming language, mainly purpose is to develop software for iOS and OSX, but there some frameworks that lets you use it for web development like GNUstepWeb or fronthkit. However it hasn't been updated since 2010, probably because of more mature frameworks like Django and Rails.
Xcode is a great IDE if you are doing iOS / Mac OS X development.
Cappuccino, as a framework (not an IDE), uses objective-j and patterns found in Apple's Cocoa framework.
For Cappuccino development, I design my user interfaces in Xcode and write in Sublime Text 2.
Apple's framework (and Cappuccino) is complex, but worth it. As a hobbyist developer, it took a while to learn.
If you are looking to make desktop quality apps for the web, I'd +1 Cappuccino.

the safari javascript engine in webkit

I was recalled that the webkit javascript engine called "JavaScript core" by my friend,
however, when i searched around the answer is that safari runs SquirrelFish as its
JS engine. My friend told me that it might be an "open source" vs. "non-open source".
That means, webkit is an open source project so that it comes with "JavaScript core" as its
JS Engine while safari is not an open source project, it employees SquirrelFish as its JS
engine.
Wiki says,
On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as 'SquirrelFish'
Does this mean that long time ago, the webkit employees JavaScript core as its JS engine
but now it has been rewrote and named "SquirrelFish". Hence, the webkit only employees
SquirrelFish.
Is my understanding correct?
Thanks
The Wikipedia article for Webkit gives a pretty good summary:
JavaScriptCore
JavaScriptCore is a framework that provides a JavaScript engine for WebKit implementations, and provides this type of scripting in other contexts within OS X.[13][67] JavaScriptCore is originally derived from KDE's JavaScript engine (KJS) library (which is part of the KDE project) and the PCRE regular expression library. Since forking from KJS and PCRE, JavaScriptCore has been improved with many new features and greatly improved performance.[68]
On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode interpreter.[29][30] The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), announced on September 18, 2008, which compiles JavaScript into native machine code, eliminating the need for a bytecode interpreter and thus speeding up JavaScript execution.[31]
So I would say that, nowadays, WebKit's JS engine is called Nitro.
Actually, the Nitro is the Apple's market term of JSC, you also could recognise SFX and SF as the internal version name of JSC.

Does Windows 8 Compile JavaScript?

It is exciting that Windows 8 is supporting so many languages for Metro App development. One that especially interested me was the HTML5/CSS/JavaScript. What I don't understand, is this code going to get compiled in a sort of executable (like the C#, VB, and C++ option), or would my app basically be running in IE as an actual web page?
Yes. Javascript is executed on Windows 8 by the Chakra engine. Similar to the .NET just-in-time compiler, it translates javascript to optimized machine code. Also the approach taken by Google's V8 and Mozilla's TraceMonkey engines. Some background info is here.
Here's a video overview of some of how to use JavaScript with the new Windows 8 Runtime from BUILD2011 (slides also available on the same page). The presenter goes through a simple project with JavaScript and the WinRT and gives a pretty nice overview of WinRT in general. You can read more about all that on this related SO thread.

How I can integrate browser engine to my MASM app?

I'm developing an app on MASM using the RadASM IDE. This IDE comes with an IE control (WebBrowser) but the content that I want to display is broken on that browser (XHTML+CSS), also I want to remove the dependency of an external IE dll so the only solution that comes to my mind is use an engine of other browser like Firefox or Chrome.
I've searched over the net and I found some DevKits that meets my requeriments, but they are designed to work with VS2005+ or they just are coded on C++.
If someone know a way to integrate a browser engine (Not IE) to a MASM app, will be highly appretiated.
I doubt you will find any browser SDK that specifically helps you call it from assembly language. Almost nobody actually writes applications in assembly language today. However, C is pretty close to assembly, so all you have to do is use the instructions for C and translate to assembly language. Since you're already writing an application in assembly language, that should be no trouble for you.
You can use any SDK that comes with pre-compiled binaries using the WinAPI functions LoadLibraryA and GetProcAddress. Or you can build your own import libraries for MASM by following what either Iczelion did write on that topic (definately worth a read) or by reading the 3 part guide on my website, which is based on Iczelions guide but works on a live example, namely creating your own MASM import library for the FMOD API.
Weather it is worth all the hassle is another question.

a couple questions about the titanium platform

I have recently been browsing frameworks such as JavaScriptMVC, qooxdoo, Sproutcore and others alike which are using javascript to create desktop-like apps in the browser with minimal, or none css/html (depending on the framework).
What I know of titanium is that it uses html/css for the views, and language of choice (javascript, ruby,python,php) for everything else. Then it gets compiled(?) into a native app.
What are the quirks? if any?
Is it necessary for the user to install some sort of a runtime to execute the compiled app?
I suppose javascript is the prefered language, but how are the other ones handled?
For example, which Ruby interpreter would be included, would I be albe to use the ruby stdlib or external libraries? Would it affect the speed of the app? I.e JS > Ruby in terms of speed.
Since the views are CSS/HTML, would it still be necessary to style the elements, add them effects via JS librarier to achieve a widget-like feeling? Or does it come with some pre-made settings/classes for that?
I am not sure if it applies to the desktop package, but is there some syncing with the appcelerator's server required? What would it be necessary for?
I am sorry if the questions sound stupid, but I didn't even realise there are than many tools until recent. I am ultimately looking for something which is easy to use, has an option to work with a back-end server for data exchange, looks preferably good 'out of the box' or doesnt require that much work to get it themed nicely and works on mobile as well as desktop devices.
With Titanium you build your app out using javascript. Titanium ultimately generates its own XCode project for you that is compiled and deployed to a device.
The user does not require any runtime be installed prior to installing your app.
Unless your building custom modules to hook up your own controls you stick with javascript.
Your javascript calls end up as native controls, early versions required css like styling due to reliance on webkit but this is no longer the case.
There is no IDE but it does come with an app to create Titanium projects, test in emulator, deploy etc. It also talks back to HQ for updates.
In answer to (2), Titanium Mobile is Javascript only, but Desktop also supports Python, Perl and PHP.