summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore
Commit message (Collapse)AuthorAgeFilesLines
* Refactor how we set up the layers hierarchy when using fixedNicolas Roard2010-03-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | composited layers, and fix the z-index position. Bug:2497910 Bug:2450006 We add a new COMPOSITED_FIXED_ELEMENTS define to isolate the changes in the webkit common code. We previously had a problem where the hierarchy of GraphicsLayer (i.e. the backed surfaces associated to the composited RenderLayer) was not reflecting that layers were children of a fixed layer. The workaround we currently have is not fully satisfactory, due to the way we draw layers on screen (in some cases layers were wrongly translated, see Bug:2497910). Instead, modifying the webkit common code simplify things a lot, and makes the patch more likely to be upstreamed to webkit, as it's now a reasonably well-delimited feature (use composited layers for fixed elements). What we do now is to consider fixed elements as a stacking context, which makes all layers children of such elements children too in the GraphicsLayer hierarchy, and modifying the offset of those children accordingly (in RenderLayer.cpp). In addition, we fixes the z-index bugs we had by signaling that there is a fixed element to its siblings, and turning the siblings as composited layers as well (so that the ordering works fully UI-side). Change-Id: I735c6c14d955ef54653f0053187d3495bef1f332
* Re-enable the layersNicolas Roard2010-02-241-1/+1
|
* While upstreaming the JSC JIT patch to the open source Webkit trunk,Huahui Wu2010-02-231-0/+1
| | | | | | there were a few small changes upon the review comments. This CL makes corresponding changes in Android code base to be consistent with the open source Webkit trunk.
* disable webkit layersCary Clark2010-02-211-1/+1
| | | | | With layers enabled, servicing timers saturate the CPU at times. This also fixes a compile-time switch in FindCanvas to disable layers.
* Merge "Updates WebKit's use of cmath to expect isfinite, isinf, isnan and ↵Steve Block2010-02-171-7/+3
|\ | | | | | | signbit to be in the std namespace"
| * Updates WebKit's use of cmath to expect isfinite, isinf, isnan and signbit ↵Steve Block2010-02-171-7/+3
| | | | | | | | | | | | | | | | to be in the std namespace This follows a change to stlport to move these functions to the std namespace to match the simulator build. Change-Id: I7839a857520239610bb6403323fc29adb613d0c2
* | Add UI considerations to layersCary Clark2010-02-171-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | companion fix is in framework/base With fixed layers, parts of the web page are now in motion relative to the document when the page scrolls. Many routines that formerly read static coordinates need to compute locations. In some cases, new computations are cached for speed -- for instance, the current cursor position is cached when it is frequently compared. The cursor rings and other drawing elements like finding text on the page now to be drawn in the correct order so that they appear both under and over layers. There's quite a bit more work to be done. Major pieces are drawing the text selection in the correct order, and computing locations based on nest layers. With this checkin, only the position of the child- most layer is considered when computing bounds. http://b/2369549 JavaScriptCore/wtf/Platform.h - Turn compositing on. All routines that reference LayerAndroid are bracketed by this condition. WebCore/platform/graphics/android/LayerAndroid.h WebCore/platform/graphics/android/LayerAndroid.cpp - Add a unique id to each layer. The unique id is used to associate a layer created when the DOM is parsed in the webkit thread with its copy in the UI thread. - Add: draw the text found on the page, as a call out in the primary draw. The call out must follow the drawing the layers' contents to show the found text correctly. Note that this adds a new slot with identical contents in every child LayerAndroid. In a future optimization, a RootLayerAndroid could hold data common for all child layers. - Add: clipArea(), which returns an array of rectangles describing the clip for this LayerAndroid and its children. Generally, this is the part of the webpage which is covered by one or more fixed layers. - Add: find(FloatPoint) that returns the deepest layer that contains this point. This is used to match taps to the layer that is tapped on. - Add: draw all layer pictures and identify which layer is being drawn. This is used to analyze the picture contents for finding and selecting text. - Add: find the layer that matches a given id; this is used to map cached DOM node data back to the layer that contains it. - Fix up includes, delete unused interfaces WebKit/android/jni/WebViewCore.h WebKit/android/jni/WebViewCore.cpp - Remove local mRootLayer; use the one in WebView.cpp instead (which is in sync with WebView.java) WebKit/Android.mk WebKit/android/nav/CachedLayer.h WebKit/android/nav/CachedLayer.cpp - CacheLayer associates the cached node with the LayerAndroid instance. It contains the index to the node in the cached frame, the LayerAndroid's unique id, and the spacial offset of the node within the layer when the DOM information was captured. It also caches a pointer to the LayerAndroid instance. CacheLayer computes the node's location each time it is called, since the fixed layer may be constantly moving relative to the document's coordinates. WebKit/android/nav/CacheBuilder.h WebKit/android/nav/CacheBuilder.cpp - Track the active layer while building the nav cache. The 'Tracker' structs were refactored to share common code, and a new 'LayerTracker' struct identifies when the node walker is inside a layer. - Added code to dump layer information for debugging. - Note that CachedNode::cursorRingsPtr can only be called during nav data construction - The cache builder can limit or exclude nodes that are clipped out -- but until I have more understanding of layer clipping, treat contained nodes as unclipped. WebKit/android/nav/CachedDebug.h - Add a variant that can dump either to a log file or the console including the function it was dumped from. WebKit/android/nav/CachedFrame.h WebKit/android/nav/CachedFrame.cpp - Add an array of CacheLayer instances. - Protect bounds from direct access since they must always be computed. - Remove misnamed focus parameter from many routines since the cursor node can be read from the root frame. - Add: adjustBounds(), which computes the bounds as the layer moves. - Add: checkRings(), which gets the appropriate picture for the node. - Remove disabled code - Find the layer list for the matching node by using a binary search - Add: resetLayers() to reset the LayerAndroid pointer in CachedLayers when the layer world changes. WebKit/android/nav/CachedHistory.h WebKit/android/nav/CachedHistory.cpp - Update history data to have matching frame and node WebKit/android/nav/CachedNode.h WebKit/android/nav/CachedNode.cpp - Refactor functions that directly read coordinates to compute them. In some cases, pass the frame in so that the layer coordinates can be found. - Add a bit to note that the node belongs to a layer. - Remove duplicate bounds interfaces. - Add methods to get cursor ring data at runtime. - Update debugging info. WebKit/android/nav/CachedRoot.h WebKit/android/nav/CachedRoot.cpp - Isolate direct picture access so that the layer picture can be returned. - Add knowledge of how the base is covered by layers. - Add a pointer to the root LayerAndroid. - delete disabled code. - Move the cursor ring into view if it is obscured by a layer (this isn't totally working) - Before finding the next node to move to, set up 'cursor cache' data, including the visible picture. WebKit/android/nav/FindCanvas.h WebKit/android/nav/FindCanvas.cpp - Move find code here so that it can be called from layers. WebKit/android/nav/WebView.cpp - Add java interface to get viewport metrics on demand. - Pass frame with the node. - Remove the find on page code (now in FindCanvas). - Compute focus rings instead of reading them directly. - Transfer layer id when getting new nav cache. - Set up root LayerAndroid. - Add utility to track if cursor is in a layer. - Simplify drawLayers() to use common view metrics.
* Fix the sim-eng buildSteve Block2010-02-161-0/+6
| | | | Change-Id: Icc67c8786c1a1b98993fb27caf71bd4895118589
* Merge webkit.org at r54731 : Initial merge by gitSteve Block2010-02-1682-543/+2501
| | | | Change-Id: Ia79977b6cf3b0b00c06ef39419989b28e57e4f4a
* Merge webkit.org at r54340 : Fix merge conflictsSteve Block2010-02-151-4/+0
| | | | | | | | | | | | - Take both for Android makefiles, other than typo for JavaNPObjectV8 upstream - Take theirs for XCode project file and ChangeLog - Fix trivial header conflict in V8DocumentCustom - Keep ours for fix in JNIUtilityPrivate.cpp - Take theirs for V8DOMWrapper.cpp. Conflict is due to Android addition of TouchEvents, which conflicts with http://trac.webkit.org/changeset/54259 - Take both for Android addition of applicationInstalledCallback - Take both for Android JSC JIT changes in Platform.h Change-Id: Ib1a748f204a07a7e736feeee6a0f30f7453754a7
* Merge webkit.org at r54340 : Initial merge by gitSteve Block2010-02-1520-91/+1343
| | | | Change-Id: Ib489d2ff91186ea3652522e1d586e54416a2cf44
* Add code that enables SquirrelFish Extreme (a.k.a JSCX, JSC JIT) in Android.Huahui Wu2010-02-122-1/+18
| | | | | It's disabled by default, but is enabled when the enveronment variable ENABLE_ANDROID_JSC_JIT is set to true.
* Merge webkit.org at r54127 : Fix MakefilesSteve Block2010-02-041-0/+1
| | | | | | | Note that we update the XCode project file to add the new GeolocationPositionCache files to allow us to build Android WebKit on Mac. Change-Id: Iab5f73da50b0457cf6212d0aa1a8f6a413027f50
* Merge webkit.org at r54127 : Fix conflicts due to use of OS_ANDROIDSteve Block2010-02-041-6/+1
| | | | | | See http://trac.webkit.org/changeset/52791 Change-Id: I0e1a6ae16f93cdbb12ae5770607a220079451cb8
* Merge webkit.org at r54127 : Take theirs for changes to JavaScript string ↵Steve Block2010-02-044-58/+84
| | | | | | | | | | | addition. The conflict is due to the fact that we cherry-picked a WebKit change http://trac.webkit.org/changeset/51978 to fix a bug. This change updates all files touched by this change to match webkit.org. See https://android-git.corp.google.com/g/#change,36411 Change-Id: Ie17c59467b74f3bf3be1149bebe086b92b30afc4
* Merge webkit.org at r54127 : Take theirs for ChangeLogs and build files for ↵Steve Block2010-02-041-3/+0
| | | | | | other platforms. Change-Id: Ie4d7a2183c45d7dbfe2e49692ac573eea243360e
* Merge webkit.org at r54127 : Initial merge by gitSteve Block2010-02-04269-4487/+11849
| | | | Change-Id: Ib661abb595522f50ea406f72d3a0ce17f7193c82
* Cherry-pick WebKit change 53497 to rename jni_utility and ↵Steve Block2010-01-201-1/+1
| | | | | | | | | | | jni_utility_private to JNIUtility and JNIUtilityPrivate See http://trac.webkit.org/changeset/53497 This is required to sync the Android tree with webkit.org to allow unforking in WebCore/bridge. This change required updating headers in Android-specific files in WebCore and WebKit. Change-Id: I4b80eb3eadcff66cbd261aa6ccef0f37927250b1
* Defines PLATFORM(SKIA), instead of PLATFROM(SGL) for Android.Steve Block2010-01-051-1/+1
| | | | | | | | | | | | Skia is used by Chromium, which defines PLATFORM(SKIA). Android also uses Skia, but currently defines PLATFORM(SGL) to account for platform-specific differences between Android and Chromum. We now use PLATFORM(SKIA) on Android and remove PLATFORM(SGL). Platform-specific differences are achieved with PLATFORM(ANDROID) guards. This reduces our diff with webkit.org. Change-Id: Ibf920b1929e7c3cdabb025ae61ceae3df67258bb
* resolved conflicts for merge of 870689c8Nicolas Roard2010-01-041-0/+4
|
* am dcfdcbd8: am edb4aa51: Merge "Cherry-picks a WebKit change to revert ↵Steve Block2010-01-045-94/+66
|\ | | | | | | | | | | | | | | | | recent changes to String addition for JSC." into eclair-mr2 Merge commit 'dcfdcbd80716c1ccc3ff3d122c96d36b09c46a60' * commit 'dcfdcbd80716c1ccc3ff3d122c96d36b09c46a60': Cherry-picks a WebKit change to revert recent changes to String addition for JSC.
| * Cherry-picks a WebKit change to revert recent changes to String addition for ↵Steve Block2010-01-045-94/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JSC. WebKit change http://trac.webkit.org/changeset/51975 modified String addition in JSC to use ropes. However, the change was incorrect, so was rolled back in http://trac.webkit.org/changeset/51978. The last WebKit merge was to revision r51976, so picked up the initial, broken change only. This change cherry-picks http://trac.webkit.org/changeset/51978 to revert the original change. Bug: 2336856 Change-Id: I7f48bce6a7f605779424ba0a7601524ab3a71990
* | Fixes MainThreadAndroid to use AndroidThreading, rather than calling methods ↵Steve Block2009-12-212-10/+41
|/ | | | | | | | | | | | on JavaSharedClient directly. AndroidThreading is defined in WTF and implemented in WebKit. This is the pattern used by Chromium, and avoids the current layering violation due to WTF calling into WebKit. This is being upstreamed to webkit.org in https://bugs.webkit.org/show_bug.cgi?id=32651 Change-Id: Ic58f0270ed134d9f897075cca692718d1c2e9369
* Merge webkit.org at r51976 : Fix general conflicts.Steve Block2009-12-171-3/+0
| | | | | | | | | | | | | | | Notes ... For FrameLoader.cpp/h, see http://trac.webkit.org/changeset/51644 For FrameView.cpp and ScrolView.cpp, see http://trac.webkit.org/changeset/51636 For PluginInfoStore.cpp, see http://trac.webkit.org/changeset/51257 For Geolocation.cpp, see http://trac.webkit.org/changeset/50605 For V8DOMWrapper.cpp, see http://trac.webkit.org/changeset/51004 For V8Proxy.cpp, see http://trac.webkit.org/changeset/50441, http://trac.webkit.org/changeset/50327, http://trac.webkit.org/changeset/50406 and http://trac.webkit.org/changeset/50523 For HTMLInputElement.cpp, see http://trac.webkit.org/changeset/50996 For RenderBlock.cpp/RenderInline.cpp, see https://android-git.corp.google.com/g/#change,33465 Android-specific change to now-deleted JSCanvasArrayCustom.cpp was trivial. Change-Id: Iddc8d43bdcb6208d6a991a7a1d591e8a4f918bf7
* Merge webkit.org at r51976 : Fix conflicts in Makefiles.Steve Block2009-12-171-3/+0
| | | | | | | Android Makefiles were upstreamed in http://trac.webkit.org/changeset/51858 and http://trac.webkit.org/changeset/51926 Change-Id: I00f30d4894c1c5064fb7bd9be27317c039dbb0ad
* Merge webkit.org at r51976 : Initial merge by git.Steve Block2009-12-17148-3520/+7977
| | | | Change-Id: Ib0e7e2f0fb4bee5a186610272edf3186f0986b43
* Enable orientation events.Patrick Scott2009-12-091-0/+1
| | | | | | | Remove our old orientation hacks as webkit now supports the orientation event. Call down into webkit when the orientation changes to send the js event. The change to Frame.cpp has been submited to bugs.webkit.org as issue 32321.
* Restores the default value for ENABLE(ARCHIVE) in wtf/Platform.h.Steve Block2009-11-251-0/+7
| | | | | | | | This default was recently removed but is required to build on Mac. See https://android-git.corp.google.com/w/?p=platform/external/webkit.git;a=commitdiff;h=2cc706295f906df0bb49f51c9efe92a97c427464#patch1 Change-Id: Ice535a8205d14a0f3c3bfc4f32bc7d71132fbc2a
* Merge change I46e116c9 into eclair-mr2Android (Google) Code Review2009-11-241-4/+4
|\ | | | | | | | | * changes: Updates MainThreadAndroid.cpp to reflect version upstreamed to webkit.org.
| * Updates MainThreadAndroid.cpp to reflect version upstreamed to webkit.org.Steve Block2009-11-231-4/+4
| | | | | | | | | | | | See https://bugs.webkit.org/show_bug.cgi?id=31807 Change-Id: I46e116c933475699cba499e3c27921e00ebab666
* | Removes Android-specific wrapper for std::sort in Profile class.Steve Block2009-11-231-20/+0
|/ | | | | | | | | It appears that previosuly, a wrapper function was required to perform the required type casting when passing a custom comparison function to Android's std::sort. This is no longer required, so the wrapper can be removed. Change-Id: I30add3d6b41eca2558867755a34dda21a180166f
* Merge change Ia4f91efd into eclair-mr2Android (Google) Code Review2009-11-232-24/+0
|\ | | | | | | | | * changes: Moves get_thread_msec from JavaScriptCore/wtf/CurrentTime to WebKit/android/Timecounter.
| * Moves get_thread_msec from JavaScriptCore/wtf/CurrentTime to ↵Steve Block2009-11-202-24/+0
| | | | | | | | | | | | | | | | | | | | | | WebKit/android/Timecounter. This function is an Android addition to JavaScriptCore::WTF, but is not used anywhere in WebCore or JavaScriptCore. Futhermore, JavaScriptCore/wtf/CurrentTime does not contain any other platform additions. It's used primarily in WebKit/android/TimeCounter, so I've moved it there. I've also updated the name to getThreadMsec to match WebKit style. Change-Id: Ia4f91efd3caaafd1fb079afe6c493aefea402582
* | Updates Threading.h to reflect final version of Android ↵Steve Block2009-11-231-1/+1
|/ | | | | | | | atomicIncrement/Decrement submitted to webkit.org. See https://bugs.webkit.org/show_bug.cgi?id=31715 Change-Id: I7f9c0552bd9f3c51e7b869bd1c782ef72d28f1a4
* Removes a superfluous Android include from TypeTraits.cpp.Steve Block2009-11-201-4/+0
| | | | Change-Id: I344d69490b8050ff659e2b380c05fb9872d66cde
* Cleans up Threading.cpp/h ready for upstreaming to webkit.org.Steve Block2009-11-202-7/+3
| | | | | | | | | | | | | | | | $ diff ~/WebKitTipOfTree/JavaScriptCore/wtf/Threading.cpp JavaScriptCore/wtf/Threading.cpp $ diff ~/WebKitTipOfTree/JavaScriptCore/wtf/Threading.h JavaScriptCore/wtf/Threading.h 75a76,77 > #elif PLATFORM(ANDROID) > #include "cutils/atomic.h" 234a237,241 > #elif PLATFORM(ANDROID) > > inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); } > inline int atomicDecrement(int volatile* addend) { return android_atomic_dec(addend); } > Change-Id: Ie4835ff88aae608b7a1844be1b422d105b327528
* Updates WebCore/config.h to reflect changes made when upstreaming to webkit.org.Steve Block2009-11-201-5/+0
| | | | | | | | | See https://bugs.webkit.org/show_bug.cgi?id=31671 Note that we only need to undef a feature enable flag when we are overwriting a default value previosuly set in Platform.h. Also, we now rely on the default value for ENABLE_DATABASE. Change-Id: I26ca5ef5402609ead880bdd1ce05cdb3646c1bbc
* Cleans up Android-specific changes to Platform.h, ready for upstreaming to ↵Steve Block2009-11-191-30/+22
| | | | | | webkit.org. Change-Id: I873491c433058c5f3bc9d00f40e80813f831f736
* Factors out common code from JSC and V8 Makefiles, ready for upstreaming to ↵Steve Block2009-11-171-34/+2
| | | | | | | | | | | | | | | | | | | | | webkit.org. Both the JSC and V8 builds use Android.mk, WebCore/Android.mk and WebCore/Android.derived.mk. The JSC build also uses WebCore/Android.jscbindings.mk and WebCore/Android.derived.jscbindings.mk. The V8 build also uses V8Bindings/V8Binding.derived.mk. Change details ... Android.mk - Added content from both Android.jsc.mk and Android.v8.mk and removed these files. Added ifdefs to switch between two builds. WebCore/Android.mk - Moved JSC bindings code to WebCore/Android.jscbindings.mk. This file is now functionally identical to WebCore/Android.v8.mk, which was removed. WebCore/Android.derived.mk - Moved JSC bindings code to WebCore/Android.derived.jscbindings.mk. This file is now functionally identical to WebCore/Android.v8.derived.mk, which was removed. Also updates copyright dates, as per WebKit requirements. Change-Id: I92377b60f6f63c57283c316a2c7c2c64a13dc7de
* Revert https://android-git.corp.google.com/g/#change,31178Grace Kloba2009-11-161-14/+0
| | | as http://b/issue?id=2183371 is finally fixed.
* Fixes license headers for all Android-specific JavaScriptCore and WebCore ↵Steve Block2009-11-133-12/+45
| | | | | | | | | | | | | | | | | | | | | | files not yet upstreamed to webkit.org. WebKit requires either a BSD-style or LGPL 2.1 license for all code. We use a BSD-style 2-clause license for Android-specific files that will be upstreamed to webkit.org. - For most files, I've fixed the names of copyright holders in the license text to 'THE COPYRIGHT HOLDERS' and cleaned up formatting in the existing BSD-style license. - For Makefiles and the following files in WebCore/platform/graphics/android/, I've changed from an Apache 2.0 license to the BSD-style license. - WebCore/platform/graphics/android/BitmapAllocatorAndroid.cpp - WebCore/platform/graphics/android/BitmapAllocatorAndroid.h - WebCore/platform/graphics/android/SharedBufferStream.cpp - WebCore/platform/graphics/android/SharedBufferStream.h - For the following files, I've changed from an LGPL licese to the BSD-style license. - WebCore/platform/graphics/android/FontPlatformData.h - WebCore/platform/graphics/android/FontPlatformDataAndroid.cpp - WebCore/plugins/android/PluginDataAndroid.cpp Change-Id: Ic4c3e5610afc58637b7a9b81b1d0d1f17f4f4cb1
* Removes WebCorePrefixAndroid.h to aid WebKit upstreaming.Steve Block2009-11-122-0/+8
| | | | | | | | | | | | | | | | Content from WebCorePrefixAndroid.h has been moved to WebCorePrefix.h and the Android Makefiles modified to use that file. - Enabler flags have been moved to WebCore/config.h. - flex_XXX_T types are defined in WebCore/css/maketokenizer - Most system includes are alreay present in WebCorePrefix.h - Some includes have been moved directly to the source files that require them. - The following includes seem not to be required so have been dropped. - #include <limits.h> - #include <math.h> - #include <stdint.h> - #include <unistd.h> Change-Id: I8eba4d0a606463503554955e113d57bdf76a7136
* Removes extra define of HAVE_PTHREAD_RW_LOCK.Steve Block2009-11-111-1/+0
| | | | | | | | | This define was added to Android and later upstreamed to webkit.org at a slightly different location. The latest WebKit merge caused both defines to be used. See https://bugs.webkit.org/show_bug.cgi?id=30713 Change-Id: Ib68ceddb57868903661a1d2e3fedf9e092222091
* Merge webkit.org at r50258 : Fix conflicts.Steve Block2009-11-101-4/+0
| | | | | | | Note that FrameLoader::gotoAnchor has been moved to FramveView::gotoAnchor. See http://trac.webkit.org/changeset/49608 Change-Id: Ic2a87bb0c0f91d371508578ddccf200967524a77
* Merge webkit.org at r50258 : Initial merge by git.Steve Block2009-11-10134-2010/+4111
| | | | Change-Id: I1a9e1dc4ed654b69174ad52a4f031a07240f37b0
* am 5469794f: Avoid constructing the MutexLocker class to avoid two mystery ↵Grace Kloba2009-10-301-0/+14
|\ | | | | | | | | | | | | | | | | crashes. Merge commit '5469794fd9ad86cd03ba4cf7ef0bc82329362f39' into eclair-mr2 * commit '5469794fd9ad86cd03ba4cf7ef0bc82329362f39': Avoid constructing the MutexLocker class to avoid
| * Avoid constructing the MutexLocker class to avoidGrace Kloba2009-10-271-0/+14
| | | | | | two mystery crashes.
| * Apparently we can't use atomic_inc/dec version as itGrace Kloba2009-10-211-1/+0
| | | | | | | | | | causes more crashes. Revert it. Revert https://android-git.corp.google.com/g/30606
| * Back in 02/08 when we added android_atomic_inc/dec, forGrace Kloba2009-10-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | some reason, it missed define WTF_USE_LOCKFREE_THREADSAFESHARED. So we are using mutexlocker instead of refcount inc/dec. Even mutex version should work, but it is not exercised by win/darwin/gcc. Changing to use refcount version fixed the crash seen in picasaweb. Fix http://b/issue?id=2183371 Maybe fix http://b/issue?id=2165237. But I can't verify as I can't reproduce it even before my change.
* | The new WebKit expects atomicIncrement to return intGrace Kloba2009-10-211-1/+1
| | | | | | instead of void.