As you ’re credibly aware , Apple of late released an update to Safari , bringing it to edition 2.0.1 ( for those melt 10.4 ) or 1.3.9 ( for 10.3.x users ) . But what you may not make out is that this is n’t really the most current version of Safari . Earlier this twelvemonth , Apple officially open source a technology recognize as WebKit . As described by Apple on theWebKit Open Source Project Page , WebKit is …
What this means is that the code that Safari use to actually draw web pages is now publically available to anyone . Developers can look at the codification , fix bug , even suggest ( and implement ) new features , and submit those changes back to the project for inclusion in future versions of the WebKit . Why should you , if you ’re not a developer , care about this capable rootage undertaking ? Because it lets you pass a version of Safari that ’s even newer than the one you just updated a couple days ago . This think of you’re able to get germ fixes and new feature long before they ’re released as part of a normal software update .
As an example of why that might be beneficial , consider the following image :
These are two screenshots of something know as theAcid2 internet browser Test . It ’s a test that help browser app developers insure that their products cope with defined web banner . The idealistic results are quite round-eyed — a smiling nerve on a yellow background . Getting to those issue , however , involves the web web browser successfully handlingCSS , HTML , PNG , and something have it away as datum uniform resource locator , which is a manner of embed small information items within HTML codification . In the above screenshot , the image at left wing shows you how Safari 2.0.1 renders the smiling facial expression ; on the right are the results as seen when using the open seed Web Kit rendering of Safari . intelligibly , the open beginning version is doing a much better job at the examination than is the current bone X version .
There are other advantage as well — the current edition of WebKit allow the styling of shape elements . shape elements are things like wireless buttons , checkboxes , OK push , etc . In Safari , these objects all get the Aqua look - and - feel , which is something that get to most web clothes designer — the Aqua look may not match the figure of the pages they ’re create . Safari , when unravel with the open reservoir WebKit , now provide these elements to be style to equalize the page , as can be done in most every other web browser .
It ’s not all peaches and emollient , though . This pagelists some of the things that wo n’t work in the WebKit edition of Safari when compare to the “ real ” reading . In addition , you may build a interlingual rendition that ’s buggy and unstable ( though I ’ve been lucky so far , and have n’t had any such problems ) . You really are testing moderate sharpness versions of the computer code when you construct your own interlingual rendition of WebKit . gratefully , the “ standard ” Safari with the stock WebKit continue to work just o.k. , and can even be used at the same time as Safari with the open seed version of WebKit .
instal the web Kit reading of Safari is n’t necessarily complicated , but there are some prerequisites . First , you must have installed Xcode 2.1 , as explained in my first Geeky Friday blog entryway . Second , you must be running 10.4 — sad , but you ca n’t build up your own Safari for other variant of OS X. Finally , you should be at least pretty well-to-do typing instruction in the Terminal ( though you do n’t postulate any real Unix knowledge to deliver the goods ) .
Note : If you ’d like the well-fixed means possible to get the open seed WebKit version of Safari installed on your machine , your dear bet is a program calledNightShift , ( VersionTracker pageboy , MacUpdate page ) which will mechanically download and put in the latest version of WebKit on your Mac . study on if you ’d like to see how to do it yourself …
The quickest “ hands - on ” agency to ramp up the open source WebKit is to pursue Apple ’s instructions for bothgetting the codeandbuilding the computer code . My instructions that postdate are just those instructions , with lots of added explanations to help those with less experience .
The first step is to make a pamphlet ( Shift- ⌘ -N ) that will agree the WebKit files . It ’s important that the full course to this leaflet does not contain any place . As such , I recommend creating a folder in your user ’s folder somewhere — in my case , I created a booklet named “ builds ” ( which is a condition that describes the process of compiling code ) at the top stratum of my drug user ’s folder ( alonside Documents , Pictures , etc . ) . you’re able to place this folder wherever you like ; just make certain there are no space in the epithet of any of the booklet along its route .
After create the booklet , set in motion Xcode ( in /Developer / Applications ) and select Xcode : Preferences . select the Building ikon in the toolbar , and then click Customized emplacement in the “ Place Build Products in ” segment of that instrument panel . cluck the Choose button , and navigate to the new leaflet you just created , then click the Choose button to choose that folder . When you ’re done , it should seem something like this ( with your path and folder , not mine , obviously ):
Once this is done , you could fall by the wayside Xcode and open Terminal ; it ’s clock time to go get the WebKit codification . Please note that , unless otherwise specified , each of the following bidding should be followed by a pressure of the Return key . The first thing to do is check that you ’re in the directory you created for the single file , so typecd /path / to / folder / to / utilize . In my display case , that command wascd ~/builds . The WebKit files are lay in in something make out as a simultaneous versioning system , or CVS . A CVS makes it easy for many people to work on the same pieces of code at the same time . To employ something in a CVS , you require to check it out . First , in suit you ’ve never accessed a CVS before , typetouch ~/.cvspass . You only need to do this once ; it just avert some problems you may have if you ’ve never used CVS before .
Next , it ’s time to login to Apple ’s CVS machine , with this bid :
You ’ll be prompted for a watchword ; just enter anonymous and press Return . Nothing will look to go on , other than the appearance of the Terminal prompt . But you ’re now connected to Apple ’s WebKit CVS . The next step is to “ check out ” ( download ) a set of instrument that makes influence with WebKit much easier . Enter this program line :
You ’ll see some commands go streaming by , and when done , you ’ll again be back at the password command prompt . Now that you have the WebKit tools , you may use them to grab the actual WebKit code from the CVS . Enter this bid :
This step may take a while , depending on the speed of your connecter . sight and lots of messages will scroll by on the filmdom , argue which file are being downloaded to your auto . When it ’s all done , the last message you see should look like this :
Here ’s a short movie [ 2.2 MB ] , showing exactly how these first commands appear when entered into the Terminal — this may help make the steps a minute percipient .
You only have do this longcheckoutdownload one prison term . In the hereafter , if you like to update to novel versions of WebKit ( there are commonly change made on a daily cornerstone ) , you’re able to utilise one command from your builds directory :
This will grab the latest updates to the computer code ( you ’ll need to re - work up Safari again after doing this ; see below ) . Now that you have all the computer code needed to build the open reference version of WebKit , the terminal step is to do just that , with this command :
The amount of time it takes to work up WebKit will variegate based on the speed of your machine . On a Dual 2.0GHz G5 , it took about six minute ( with a clustering of other diligence run ) . On a PowerBook G4 1.33Ghz , with nearly nothing else extend , it took more like 17 proceedings . In other language , go and have a cup of coffee , function some crossword puzzles , fiddle a plot , browse the vane . Do anything other than gaze at the Terminal filmdom , wait for the physique to finish . Eventually , it will land up …
When the build eventually does land up , you should see this message :
As an parenthesis , note that you ’ll have to re - build WebKit each time you use theupdate - webkitcommand — in other Son , you useupdate - webkitto get the fresh parts , and thenbuild - webkitto put those parts together into a finished product .
Now you credibly want to dilute up your new version of Safari . First , just to be dependable , verify your “ veridical ” version of Safari is n’t run , then type :
Again , this is from within your builds directory ( as that ’s where the WebKitTools directory lives ) . When you hit Return , you ’ll see a couple of messages in the Terminal , and then Safari will open . you may check out theAcid2 test pageto see the new and improved grinning , and play around with some of the other new features ( chiefly of interest to web site designers ) . When you ’re done , just quit the “ new Safari ” with ⌘ -Q as you would any other normal practical software . To run it again in the future , unfold a Terminal , cdinto your builds directory , and use the aboverun - safaricommand .
Apple ’s WebKit pages are a great place to start for more info on the WebKit project . In accession to the inter-group communication already provided , there ’s anactive wikiwith tons of information in it , ablog pagethat update the progress being made with WebKit , and you’re able to evensearch for all undefendable WebKit bugsif you ’d wish to see what the current issue are . Having WebKit useable as an unresolved beginning project intend that you could , relatively easily , keep your version of Safari current with all the features and glitch fix that Apple is always making to the program .
This article was modified , found on feedback from ‘ armadillo , ’ to include information on the NightShift program and to correct some proficient error in the description of what on the dot WebKit is …