summaryrefslogtreecommitdiffstats
path: root/third_party/harfbuzz
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused harfbuzz.phajdan.jr@chromium.org2013-03-1189-41855/+0
| | | | | | | | BUG=none Review URL: https://codereview.chromium.org/12413010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187342 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the warnings when compiling harfbuzz with clang in Android, the warnings ↵michaelbai@chromium.org2012-09-143-14/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | were: third_party/harfbuzz/contrib/harfbuzz-freetype.c:26:57: error: incompatible pointer types passing 'size_t *' (aka 'unsigned int *') to parameter of type 'ssize_t *' (aka 'long *') [-Werror,-Wincompatible-pointer-types] const uint32_t cp = utf16_to_code_point(chars, len, &i); ^~ third_party/harfbuzz/contrib/harfbuzz-unicode.h:22:74: note: passing argument to parameter 'iter' here uint32_t utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter); ^ third_party/harfbuzz/contrib/harfbuzz-freetype.c:58:57: error: incompatible pointer types passing 'size_t *' (aka 'unsigned int *') to parameter of type 'ssize_t *' (aka 'long *') [-Werror,-Wincompatible-pointer-types] const uint32_t cp = utf16_to_code_point(chars, len, &i); ^~ third_party/harfbuzz/contrib/harfbuzz-unicode.h:22:74: note: passing argument to parameter 'iter' here uint32_t utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter); BUG=143931 Review URL: https://chromiumcodereview.appspot.com/10928152 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156760 0039d316-1c4b-4281-b951-d872f2087c98
* Disable warnings in harfbuzz/ for Android when not using clang.peter@chromium.org2012-08-161-0/+12
| | | | | | | | | | | | | | | | The Android NDK compilers, both on GCC 4.2 and on GCC 4.6, throw a warning about incompatible pointer signedness in one of harfbuzz' APIs. That's where the fun comes in: no flag is currently able to disable the warning when using Android's GCCs. We therefore have to disable all warnings. This is unfortunate, but we should still be getting sufficient coverage for other warnings from Linux and Android-clang builds. BUG= Review URL: https://chromiumcodereview.appspot.com/10829354 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151944 0039d316-1c4b-4281-b951-d872f2087c98
* Harfbuzz roll 3ab7b37bdebf0f8773493a1fee910b151c4de30fbashi@chromium.org2012-08-108-56/+23
| | | | | | | | | | | | Eliminate some memory leaks. BUG=139709 TEST=ran layout tests. Review URL: https://chromiumcodereview.appspot.com/10824101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150955 0039d316-1c4b-4281-b951-d872f2087c98
* Make 'License' field in third-party metadata requiredsteveblock@chromium.org2012-08-011-0/+1
| | | | | | | | | | | | | | | | This will simplify the addition of a tool to check licenses for the purpose of the Android WebView build. See also http://codereview.chromium.org/10827099 Also adds other missing fields to these README.chromium files as required by presubmit checks and fixes a regex used to enforce this. BUG=138921 Review URL: https://chromiumcodereview.appspot.com/10821103 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149423 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the alignment issue with Arabic when a font has kerning or cursive gsub jshin@chromium.org2012-05-193-6/+27
| | | | | | | | | | | | | | | | | Patch by behdad@chromium.org. Will add a webkit layout test for Arabic alignment as soon as we find a font that can be included in Webkit LayoutTests. BUG=105685 TEST= http://www.bbcarabic.com should be rendered the same way as is done by Firefox on Linux. Paragraphs should be right justified and should not overlap with photos or other elements next to them. See the screenshots attached in the bug report. TBR=bashik Review URL: https://chromiumcodereview.appspot.com/10382212 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138001 0039d316-1c4b-4281-b951-d872f2087c98
* [Harfbuzz] Fix OOB read in tibetan_form()bashi@chromium.org2012-04-113-18/+17
| | | | | | | | | | | | |c| should be smaller than 0x0fc0. BUG=chromium:122586 TEST=manual Review URL: http://codereview.chromium.org/10024052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131694 0039d316-1c4b-4281-b951-d872f2087c98
* Suppress clang warnings for harfbuzz.thakis@chromium.org2012-03-271-0/+12
| | | | | | | | | | BUG=113708 TEST=none NOTRY=true Review URL: http://codereview.chromium.org/9791027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129307 0039d316-1c4b-4281-b951-d872f2087c98
* Update harfbuzz-ng to 1a5a91dc0d8bf4b72a2f22dc6300b06ad7000b79.bashi@google.com2012-01-301-2/+2
| | | | | | | | | | | | | | | | Preparing for using HarfBuzz-ng as a secondary text shaper on mac. CoreText doesn't support OpenType features so we need additional text shaper to support -webkit-font-feature-settings property. I don't think this version is ready for transition on Linux because I could see considerable performance regressions when I run cycler tests. BUG=68551 TEST=None. This CL doesn't change build process for now. Review URL: https://chromiumcodereview.appspot.com/9223010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119661 0039d316-1c4b-4281-b951-d872f2087c98
* common.gypi: move harfbuzz-NG setting out into harfbuzz projectevan@chromium.org2012-01-271-0/+5
| | | | | | | | | Less code in the central gyp file, more code near where it's used. Review URL: http://codereview.chromium.org/9271077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119348 0039d316-1c4b-4281-b951-d872f2087c98
* Use type 'none' instead of 'settings', as the latter is invalid in gyp. evan@chromium.org2012-01-241-2/+2
| | | | | | | | | | | | | gyp currently warns about this, but I intend to make it an error. Due to the warning this had already been fixed in most of the Chrome tree, but not in some of the use_system_foo blocks. (DEPS change: roll ICU forward to pick up same fix.) Review URL: http://codereview.chromium.org/9287001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118884 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid an overflow in harfbuzz-myanmar.cbashi@chromium.org2011-12-282-2/+17
| | | | | | | | | | | | | Adds a guard to prevent invalid assignment. BUG=108006 TEST=manually with ASAN. Review URL: http://codereview.chromium.org/8997001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115859 0039d316-1c4b-4281-b951-d872f2087c98
* Fix two truncation bugs in harfbuzz-indic shaper.jshin@chromium.org2011-12-124-32/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bugs in isMark and isLetter lead 'init' feature to be applied even when a syllable is not at the beginning of a word. See http://www.microsoft.com/typography/otfntdev/bengalot/features.htm for 'init' feature application in Bengali. It turned out that the upstream also fixed this (see https://bugs.freedesktop.org/show_bug.cgi?id=30319) exactly the same way. Change the upstream reference to 93d8573ddcf97648983a1c1b5cdda8a3ec6d4432 in README.chromium and remove 2 patches in chromium.patch because they're all landed in the upstream @93d8573ddcf97648 Two removed patches are: - Fix OOB access (in Tibetan shaper) @ff0612c2e7df1b86fc - Fix crash! (in harfbuzz-gpos.c) @81c8ef785b079980a In addition, the following upstream fix is included by going to 93d8573ddc. - Fix bug in contrib/harfbuzz-unicode.cc @93d8573ddcf9 Webkit bug to add a layout test for 'init' is https://bugs.webkit.org/show_bug.cgi?id=74310 BUG=107031 TEST=With Lohit Bengali font installed (the default on CrOS devices), go to http://i18nl10n.com/fonts/beng3.html and the result should be the same as the left in the screenshot attached to the bug instead of the right. A webkit layout test will be added and will be mentioned in the bug later. Review URL: http://codereview.chromium.org/8895014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114082 0039d316-1c4b-4281-b951-d872f2087c98
* Upstream: Make harfbuzz build on Androidmichaelbai@chromium.org2011-11-032-3/+13
| | | | | | | | | | BUG= TEST= Review URL: http://codereview.chromium.org/8450014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108568 0039d316-1c4b-4281-b951-d872f2087c98
* OOB read in tibetan_nextSyllableBoundarybashi@chromium.org2011-09-082-1/+14
| | | | | | | | | | | | Avoid refering tibetanForm table when the character is out of its range. BUG=95563 TEST=manually tested with ASAN Review URL: http://codereview.chromium.org/7841023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100106 0039d316-1c4b-4281-b951-d872f2087c98
* Use precompiled headers for most large projects where the .gyp filejoi@chromium.org2011-09-071-0/+3
| | | | | | | | | | | | | | is not a third party file. On my machine, this speeds up a full recompile of the 'chrome' target in Debug mode by about 18%. BUG=none TEST=it builds, existing tests pass Review URL: http://codereview.chromium.org/7706011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99949 0039d316-1c4b-4281-b951-d872f2087c98
* editing/selection/regional-indicators.html timing out on Linuxbashi@chromium.org2011-08-242-10/+8
| | | | | | | | | | | | | | | Removes an assertion in third_party/harfbuzz/src/harfbuzz-shaper.cpp because it fails when text contains surrogate pairs. R=agl@chromium.org TEST=ran WebKit layout tests. BUG=93481 Review URL: http://codereview.chromium.org/7712020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98011 0039d316-1c4b-4281-b951-d872f2087c98
* Update (old) harfbuzz to ToTbashi@chromium.org2011-08-0934-412/+1343
| | | | | | | | | | | | | | | | | This CL is made by: - Got harfbuzz ToT (revision d10a264823e81631336bab37f08a52cc243d3654) - Applied third_party/harfbuzz/chromium.patch to harfbuzz ToT. - Applied the change made by http://codereview.chromium.org/543067/ (chromium.patch doesn't include this change) - Copied revised files to third_party/harfbuzz - Updated README.chromium and chromium.patch BUG=91789 TEST=ran WebKit layout tests. Review URL: http://codereview.chromium.org/7595001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95926 0039d316-1c4b-4281-b951-d872f2087c98
* OOB read in harfbuzz with khmer character.bashi@chromium.org2011-07-292-15/+30
| | | | | | | | | | | | | Sets face->tmpLogClusters[i] to the last valid value of |item->log_clusters| when |i| exceeds the size of the |item->log_clusters|. BUG=90134 TEST=checked with ASAN and ran webkit/tools/layout_tests/run_webkit_tests.sh Review URL: http://codereview.chromium.org/7465036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94616 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the comments setting emands and vim tab width and expansion variables.tony@chromium.org2011-07-111-6/+0
| | | | | | | | | | | | | | | | | These were added in r28089 (http://codereview.chromium.org/256059) but are unnecessary bloat for everyone to carry around, even those that don't use emacs or vim. In an earlier change, I added editor config files in src/tools/emacs/ and src/tools/vim/ so users of the appropriate editor can source those instead. BUG=none TEST=none Review URL: http://codereview.chromium.org/7310019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92046 0039d316-1c4b-4281-b951-d872f2087c98
* Globally replace <(library) with static_libraryevan@chromium.org2011-05-191-1/+1
| | | | | | | | | | | We provided <(library) as a variable to support a peculiar build configuration on Linux. We no longer support that build configuration, so we can simplify this code to no longer use a variable. Review URL: http://codereview.chromium.org/7051014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86004 0039d316-1c4b-4281-b951-d872f2087c98
* harfbuzz: Actually apply patch to fix Thai crashes. :-(derat@chromium.org2011-05-192-2/+12
| | | | | | | | | | | | | | | | | | This appears to prevent some renderer crashes that are fairly easy to trigger with Thai pages on Chrome OS. (http://codereview.chromium.org/7000012/ previously added this to chromium.patch, which I mistakenly assumed would get applied on top of the source during the build process. I guess it's instead just a record of our changes from upstream?) BUG=chromium:75210,chromium-os:15103 TEST=visited pungame.com/sale.html many times and checked that it no longer triggers a renderer crash Review URL: http://codereview.chromium.org/7045021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85925 0039d316-1c4b-4281-b951-d872f2087c98
* harfbuzz: Add Behdad's patch to fix Thai crashes on Linux.derat@chromium.org2011-05-101-0/+14
| | | | | | | | | | | | This appears to prevent some renderer crashes that are fairly easy to trigger with Thai pages on Chrome OS. BUG=chromium:75210,chromium-os:15103 TEST=manual: built chromeos-chrome and checked that http://www.pungame.com/sale.html and http://happy.teenee.com/game/ no longer cause crashes Review URL: http://codereview.chromium.org/7000012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84890 0039d316-1c4b-4281-b951-d872f2087c98
* Cleaning up third_party readmes and adding a template for future use.cdn@chromium.org2011-03-161-1/+4
| | | | | | | | | | | The next step is a presubmit rule that will make people use the template. We are doing this so that we can better track dependancy versions. BUG=None TEST=N/A Review URL: http://codereview.chromium.org/6610030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78316 0039d316-1c4b-4281-b951-d872f2087c98
* harfbuzz: check in harfbuzz-ng, add gyp define to use itevan@chromium.org2011-01-051-40/+59
| | | | | | | | | | | | | | | This checks in harbuzz-ng b0d396aa88b3cdf8cea896bfeeba197656e1cdb1. Setting use_harfbuzz_ng to 1 in gyp will cause us to build harfbuzz-ng in place of harfbuzz. So far this currently fails to compile due to all our other code relying on the old API. BUG=68551 TEST=./build/gyp_chromium -Duse_harfbuzz_ng=1, verify build breaks Review URL: http://codereview.chromium.org/6052008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70539 0039d316-1c4b-4281-b951-d872f2087c98
* harfbuzz: merge harfbuzz and harfbuzz_interface librariesevan@chromium.org2011-01-041-21/+5
| | | | | | | | | | | | Though we build two libraries here, we always use them together, and it simplifies the gyp files to have one. BUG=68551 TEST=compiles Review URL: http://codereview.chromium.org/5986015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70448 0039d316-1c4b-4281-b951-d872f2087c98
* Pass license check script for most of the tree.evan@chromium.org2010-03-191-3/+2
| | | | | | | | | | | | | Modified license-checker script to allow pruning directories we know to be ok. Still need to do a bit of third_party/* , as well as file a bunch of bugs on pieces where the licenses aren't clear, but I'm running out of energy. Review URL: http://codereview.chromium.org/1100003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42045 0039d316-1c4b-4281-b951-d872f2087c98
* linux: hack around arabic advances in harfbuzzevan@chromium.org2010-01-153-1/+26
| | | | | | | | | | Arabic vowels in some fonts (Times New Roman, at least) have non-zero advances, when they should be zero. Pango does a hack very similar to this to work around the same problem. Review URL: http://codereview.chromium.org/543067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36418 0039d316-1c4b-4281-b951-d872f2087c98
* linux: fix multicharacter hebrew shapingevan@chromium.org2010-01-151-2/+2
| | | | | | | | | | When we have base + vowel1 + vowel2, and there's no composed version of base + vowel1, attempt to compose base + vowel2 rather than composing vowel1 + vowel2 and then giving up on it because they don't compose. Review URL: http://codereview.chromium.org/549069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36413 0039d316-1c4b-4281-b951-d872f2087c98
* linux: inherit script in the forward-order script iteratorevan@chromium.org2010-01-151-1/+0
| | | | | | | | | | This is the same change as in r29862, but in the other direction. I have a pending change that will remove the reverse-order iterator as that falls down in other circumstances. Review URL: http://codereview.chromium.org/536069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36412 0039d316-1c4b-4281-b951-d872f2087c98
* linux: sync with upstream harfbuzzevan@chromium.org2009-11-198-144/+192
| | | | | | | | | | | | | | Upstream changes are: fix a few compiler warnings and make the code more exception safe. correctly support decomposed forms of two or three part matras fix shaping of assamese ra fix bug with Malayalam Samvruthokaram. add N'Ko support to the arabic shaper Post substitutions should apply to the whole indic syllable Review URL: http://codereview.chromium.org/408013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32448 0039d316-1c4b-4281-b951-d872f2087c98
* linux: tweak combining characters slightlyevan@chromium.org2009-10-231-1/+4
| | | | | | | | | | | | This fixes Arabic and a Cyrillic test. Behdad has promised to rewrite all of this for WebKit, but for now, this new behavior is less broken than before. BUG=22872,22367 Review URL: http://codereview.chromium.org/327006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29862 0039d316-1c4b-4281-b951-d872f2087c98
* linux: restore another harfbuzz patch I dropped.evan@chromium.org2009-10-202-1/+23
| | | | | | | | Fixes LayoutTests/fast/text/drawBidiText.html on Linux. Review URL: http://codereview.chromium.org/308007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29558 0039d316-1c4b-4281-b951-d872f2087c98
* linux: merge newer upstream harfbuzzevan@chromium.org2009-10-208-66/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This merges includes the following changes. The changes by Adam Langley were previously in our tree while they were being upstreamed, but since that's now happened I've removed the changes mentioned in README.google. Adam Langley (3): Add contrib/ and initial file set Add fuzz testing tool. Make HB_ShaperItem a typedef to a named struct. Behdad Esfahbod (4): Fix typo in unused code Bug 23973 memory leak in _HB_OPEN_Load_EmptyClassDefinition Bug 23976 memory leak in Free_BaseArray Bug 24540 arabicSyriacOpenTypeShape causes read past end of string in getArabicProperties Graham Asher (1): Improved comments for HB_ShaperItem fields. BUG=20621 (But it doesn't look like this fixes it, though -- the getArabicProperties change mentioned in the diff was already available locally) Review URL: http://codereview.chromium.org/295025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29544 0039d316-1c4b-4281-b951-d872f2087c98
* Fix harfbuzz read past end of string on arabic text.mattm@chromium.org2009-10-152-4/+19
| | | | | | | | | BUG=23450 TEST=valgrind_webkit_tests.sh LayoutTests/fast/text/drawBidiText.html Review URL: http://codereview.chromium.org/271098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29080 0039d316-1c4b-4281-b951-d872f2087c98
* Add comments setting emacs and vim tab width and expansion variables.sgk@google.com2009-10-061-0/+6
| | | | | | | | BUG=none TEST=successful builds Review URL: http://codereview.chromium.org/256059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28089 0039d316-1c4b-4281-b951-d872f2087c98
* Force inclusion of build/common.gypi for all chromium gyp files.yaar@chromium.org2009-09-151-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Why: Simpler build code. If everybody includes it, it should be included automatically. Why now: The webkit chromium builds need it be specified, since can't default to build/common.gypi. What was done: 1. build/common.gypi's contents were moved to a new file build/gyp_chromium.gypi 2. tools/gyp/gyp_chromium was moved to build/gyp_chromium and made to automatically include build/gyp_chromium.gypi. 3. lots of gyp files were fixed to not refer to build/common.gypi any more. 4. o3d which also builds independently of chrome, was fixed to have a gyp_o3d that includes gyp_chromium.gypi too. 5. build/common.gypi was left empty, because there are some external projects that still refer to it. Things that are left to do after this patch is in: 1. The following external files (in other repositories) need to stop include common.gypi ./third_party/hunspell/hunspell.gyp ./third_party/icu/icu.gyp ./v8/tools/gyp/v8.gyp 2. Once nobody refers to common.gypi anymore, delete common.gypi -or- Delete gyp_chromium.gypi and move its content back to common.gypi Tested on mac, win and linux. On win, got a few unit tests errors on chrome bookmarks, which should not be related. I'm running again with clobber to verify. Review URL: http://codereview.chromium.org/206006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26302 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: fix jump jump based on uninitialised value.agl@chromium.org2009-08-072-3/+3
| | | | | | | | | | | | | | This is causing layout test flakiness and a curious effect where text seems to twitch back and forth randomly. I'm not at all sure about this fix. I'll send it upstream for review, but I want to get it fixed locally first because it's causing problems for us. http://codereview.chromium.org/165165 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22803 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: support mirrored charactorsagl@chromium.org2009-08-074-3/+1041
| | | | | | | | | | | | | | | Currently, when Harfbuzz requests a mirror charactor we just abort. This patch adds the Unicode tables required to support mirroring. (Note: I don't actually have any webpages which trigger this code, so it hasn't been tested.) BUG=17563 http://codereview.chromium.org/164123 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22776 0039d316-1c4b-4281-b951-d872f2087c98
* Restore -Wall to Linux build and set up for -Werror.sgk@google.com2009-04-091-3/+0
| | | | | | | | | | | | | | | * Add -Wall to build/common.gypi (and -Werror, commented out for now). * Have build/external_code.gypi remove -Wall (and -Werror). * Remove chromium_code definition from build/all.gyp. * Remove chromium_code definitions from third_party/ *.gyp files. * Remove scons-specific -Werror removal in webkit.gyp. * Remove unused variables from: base/clipboard_linux.cc chrome/browser/gtk/download_shelf_gtk.cc chrome/browser/gtk/bookmark_bar_gtk.cc Review URL: http://codereview.chromium.org/66001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13478 0039d316-1c4b-4281-b951-d872f2087c98
* Basic underpinnings of the gyp equivalent of the Linux SHARED=1 build:sgk@google.com2009-04-081-2/+2
| | | | | | | | | parameterize the 'type' setting of the various library targets, with a default of 'static_library'. (Hat tip to Craig Schlenter.) Review URL: http://codereview.chromium.org/62127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13345 0039d316-1c4b-4281-b951-d872f2087c98
* Add Harfbuzz to third_party and Skia support for such.agl@chromium.org2009-04-0784-0/+39645
Harfbuzz is an open source library which is a unification of the Qt and Pango shaping engines. We'll be using it on Chromium Linux to perform complex text shaping. Additionally, we add support for Harfbuzz into Skia, guarded by SKIA_HARFBUZZ. http://codereview.chromium.org/63035/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13214 0039d316-1c4b-4281-b951-d872f2087c98