OSDN Git Service
Leon Clarke [Fri, 26 Feb 2010 17:32:41 +0000 (09:32 -0800)]
Merge " Don't crash when throwing javascript exceptions from plugins without javascript having been initialised."
Leon Clarke [Fri, 26 Feb 2010 17:29:17 +0000 (17:29 +0000)]
Don't crash when throwing javascript exceptions from plugins without
javascript having been initialised.
Steve Block [Fri, 26 Feb 2010 13:05:06 +0000 (05:05 -0800)]
Merge "Adds layout tests for HTML5 features"
Andrei Popescu [Fri, 26 Feb 2010 13:03:55 +0000 (05:03 -0800)]
Merge "enable debugger support in webkit with v8"
Andrei Popescu [Fri, 26 Feb 2010 12:48:03 +0000 (12:48 +0000)]
enable debugger support in webkit with v8
Mike Reed [Fri, 26 Feb 2010 12:52:29 +0000 (04:52 -0800)]
Merge "make methods private (or static local) if possible to reduce surface area of API"
Ben Murdoch [Fri, 26 Feb 2010 10:11:11 +0000 (02:11 -0800)]
Merge "Only set the DatabaseTracker path if it has been successfully set to something on the Java side as the DatabaseTracker only allows us to set it once."
Shimeng (Simon) Wang [Fri, 26 Feb 2010 01:10:31 +0000 (17:10 -0800)]
Merge "Prevent unsafe upper casting by checking Element's namespaceURI."
Mike Reed [Thu, 25 Feb 2010 22:07:06 +0000 (17:07 -0500)]
make methods private (or static local) if possible to reduce surface area of API
Shimeng (Simon) Wang [Thu, 25 Feb 2010 19:14:31 +0000 (11:14 -0800)]
Prevent unsafe upper casting by checking Element's namespaceURI.
For some website, when elements are created, somehow the tagName's
namespaceURI is empty, so for "form" element, Element node is created
instead of expected HTMLFormElement.
Bug:
2461358
modified: WebKit/android/jni/WebCoreFrameBridge.cpp
Ben Murdoch [Thu, 25 Feb 2010 18:36:43 +0000 (18:36 +0000)]
Only set the DatabaseTracker path if it has been successfully set to something on the Java side as the DatabaseTracker only
allows us to set it once.
Change-Id: I5d0121dac9a2b276a483992784822c1f52c04853
Mike Reed [Thu, 25 Feb 2010 18:27:38 +0000 (13:27 -0500)]
remove unused methods
Nicolas Roard [Thu, 25 Feb 2010 14:41:12 +0000 (14:41 +0000)]
Fix the gap when using the IME (Bug:
2453748)
The problem was that layers may have a different size than their corresponding element,
but we used the layer's size instead of the element's to compute the fixed position.
The fix asks for the element visible overflow size (needed, some children may be outside the bounds of the element itself).
Andrei Popescu [Thu, 25 Feb 2010 14:13:43 +0000 (06:13 -0800)]
Merge "Temporarily disable debugger support on V8 due to a crash"
Andrei Popescu [Thu, 25 Feb 2010 13:58:48 +0000 (13:58 +0000)]
Temporarily disable debugger support on V8 due to a crash
Cary Clark [Thu, 25 Feb 2010 13:37:40 +0000 (05:37 -0800)]
Merge "refactor drawing to support layers"
Steve Block [Thu, 25 Feb 2010 10:58:37 +0000 (10:58 +0000)]
Adds layout tests for HTML5 features
The following layout tests should all pass on Android, as they are for recently
implemented HTML5 features ...
- fast/dom/Geolocation
- storage
- http/tests/appcache
This change adds these tests to the Android tree, at the current WebKit revision
r54731. This is so that we can easily keep track of which tests should always be
green, and so that we can add Android-specific test results.
We also add the following paths ...
- fast/js/resources - used by the Geolocation tests
- http/conf - used by the Appcache tests
Tests that are currently failing are added to the DumpRenderTree skipped list
temporarily, to keep all tests green.
Change-Id: Id96c05e3746ed64e4e4c40c99567b8def688f90a
Leon Clarke [Thu, 25 Feb 2010 10:30:25 +0000 (02:30 -0800)]
Merge " Don't display our custom border round combo boxes when the stylesheet has defined one."
Shimeng (Simon) Wang [Thu, 25 Feb 2010 00:04:52 +0000 (16:04 -0800)]
Merge "Use reference instead of vector copying when dealing formElements."
Shimeng (Simon) Wang [Wed, 24 Feb 2010 23:54:38 +0000 (15:54 -0800)]
Use reference instead of vector copying when dealing formElements.
Cary Clark [Tue, 23 Feb 2010 15:46:08 +0000 (10:46 -0500)]
refactor drawing to support layers
Drawing elements that appear atop or below layers need to be
drawn both in the proper order and with the correct canvas to
respect clipping and the matrix.
Drawing the find results, text selection, or the cursor ring,
interleaves with any layers that may be drawn. The main picture
is treated as owned by a LayerAndroid so each component can
decide when to draw.
This change leave the main picture in WebViewCore.cpp, and
draws everything else in WebView.cpp -- in the future, additional
refactoring can put all drawing in one place.
The logic of what to draw is still in WebView.java, but the
actual drawing calls are now triggered inside the layer code.
Android.mk
- Add rule to trigger building without layers from buildspec.mk.
LayerAndroid.*
- Replace FindOnPage reference with abstract DrawExtra class to
draw adornments in the layers' canvas context.
- Add a LayerAndroid constructor to create a dummy layer with a
SkPicture* and a uniqueId==-1 so that extras can detect when
they are drawn by the main picture.
android_graphics.*
- Move cursor ring drawing out of WebView.cpp to here.
- Separate cursor ring setup from actual drawing.
- Get the cursor ring metrics in local coordinates.
ChromeClientAndroid.cpp
- Fix compiler warnings.
WebViewCore.*
- Move updateCursorBounds from WebView.cpp. This permits it to
be called from CursorRing::setup.
CachedFrame.*
CachedNode.*
CachedLayer.*
- Add local bounds getters.
CachedRoot.h
- Move class FindCanvas to the android namespace.
DrawExtra.h
- Add an abstract class called by LayerAndroid to optionally
draw extra elements in its canvas context.
FindCanvas.*
SelectText.*
- Refactor drawing to draw in layers context.
WebView.cpp
- Move drawing from WebView.java.
- Remove selection code to SelectText.cpp.
- Use inverseScale to simplify viewPort metrics.
- Simplify layer root so java doesn't need to know about it.
Requires companion change in frameworks/base
http://b/
2457316
http://b/
2454127
http://b/
2454149
Nicolas Roard [Wed, 24 Feb 2010 18:09:11 +0000 (18:09 +0000)]
Simplify the layer code:
* Rename setRootLayer to setUIRootLayer
* Fixed some logs in GraphicsLayerAndroid
* Added back the diagonal drawing debug code in LayerAndroid
* Simplified ChromeClientAndroid, removed compositingLayerSync()
Leon Clarke [Wed, 24 Feb 2010 19:20:21 +0000 (19:20 +0000)]
Don't display our custom border round combo boxes when the stylesheet has defined one.
Steve Block [Wed, 24 Feb 2010 18:45:35 +0000 (10:45 -0800)]
Merge "Adds a missing initializer for Geolocation maximumAge"
Steve Block [Wed, 24 Feb 2010 18:36:14 +0000 (18:36 +0000)]
Adds a missing initializer for Geolocation maximumAge
Change-Id: I7274d12baa4718280e8cc677583e5308c7917a56
Ben Murdoch [Wed, 24 Feb 2010 15:21:38 +0000 (15:21 +0000)]
Do not forward touch event types we do not support into WebCore as TouchCancel events. The old behavior creates an issue now we support pinch to zoom where releasing the pinch will always send a touch cancel to WebCore as the Java land touch event type is ACTION_POINTER_UP.
Change-Id: Ie691f4a3c5ba6a09c3838deb37d8b9e0671c835b
Nicolas Roard [Wed, 24 Feb 2010 14:00:27 +0000 (14:00 +0000)]
Re-enable the layers
Steve Block [Wed, 24 Feb 2010 11:34:12 +0000 (03:34 -0800)]
Merge "Removes repeated headers in Geolocation.cpp"
Steve Block [Wed, 24 Feb 2010 11:06:07 +0000 (11:06 +0000)]
Removes repeated headers in Geolocation.cpp
These were erroneously added in a previous WebKit merge.
See https://android-git.corp.google.com/g/#change,39242
Change-Id: I192911ec35d7447ae3933cf4903aacd2ab202a3a
Derek Sollenberger [Wed, 24 Feb 2010 03:56:04 +0000 (19:56 -0800)]
am
70a336f2: am
da8d052d: Merge "adding logging to determine the delay between event origination and its arrival at the plugin." into eclair-mr2
Merge commit '
70a336f20c4244b6f93ba593e999e83f23af1145'
* commit '
70a336f20c4244b6f93ba593e999e83f23af1145':
adding logging to determine the delay between event origination and its arrival at the plugin.
Patrick Scott [Wed, 24 Feb 2010 03:55:54 +0000 (19:55 -0800)]
Derek Sollenberger [Wed, 24 Feb 2010 03:55:39 +0000 (19:55 -0800)]
am
5bce6668: am
15027de7: Added new logging messages and updated event logs with plugin execution time
Merge commit '
5bce666850444bb87efe0be67046e7648ff15e67'
* commit '
5bce666850444bb87efe0be67046e7648ff15e67':
Added new logging messages and updated event logs with plugin execution time
Derek Sollenberger [Wed, 24 Feb 2010 03:00:05 +0000 (19:00 -0800)]
am
da8d052d: Merge "adding logging to determine the delay between event origination and its arrival at the plugin." into eclair-mr2
Merge commit '
da8d052d7e1bf81587412213cf6680538d0bf687' into eclair-mr2-plus-aosp
* commit '
da8d052d7e1bf81587412213cf6680538d0bf687':
adding logging to determine the delay between event origination and its arrival at the plugin.
Patrick Scott [Wed, 24 Feb 2010 02:59:58 +0000 (18:59 -0800)]
Derek Sollenberger [Wed, 24 Feb 2010 02:59:52 +0000 (18:59 -0800)]
am
15027de7: Added new logging messages and updated event logs with plugin execution time
Merge commit '
15027de75d16455fd1e449b771fac8fd2cf88233' into eclair-mr2-plus-aosp
* commit '
15027de75d16455fd1e449b771fac8fd2cf88233':
Added new logging messages and updated event logs with plugin execution time
Derek Sollenberger [Tue, 23 Feb 2010 20:11:52 +0000 (12:11 -0800)]
Merge "adding logging to determine the delay between event origination and its arrival at the plugin." into eclair-mr2
Derek Sollenberger [Tue, 23 Feb 2010 19:55:21 +0000 (14:55 -0500)]
adding logging to determine the delay between event origination and its arrival at the plugin.
Steve Block [Tue, 23 Feb 2010 19:03:07 +0000 (11:03 -0800)]
Merge "Fixes a bug with showing the Geolocation permissions prompt"
Huahui Wu [Tue, 23 Feb 2010 16:24:57 +0000 (11:24 -0500)]
While upstreaming the JSC JIT patch to the open source Webkit trunk,
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.
Steve Block [Fri, 12 Feb 2010 16:33:50 +0000 (16:33 +0000)]
Fixes a bug with showing the Geolocation permissions prompt
Currently, if an iframe causes the Geolocation permissions prompt to be shown,
but the frame is navigated away before the user responds to the permissions
prompt, the prompt is not removed from the screen.
This change fixes that bug. It uses the new
ChromeClient::cancelGeolocationPermissionRequestForFrame() method, which was
cherry-picked from WebKit in https://android-git.corp.google.com/g/#change,41747
The logic is complicated by the fact that multiple iframes may have requested
Geolocation permissions for the same origin. In this case, we should not hide
the prompt until the last such frame is navigated away.
Bug:
2463551
Change-Id: I1e4de05586150c7a94bc8343f6e56e4a4870cd3b
Ben Murdoch [Tue, 23 Feb 2010 15:57:35 +0000 (07:57 -0800)]
Merge "Co-ordinates of a TouchEvent object should be 0,0 to match the behavior on iPhone. It is the co-ordinates of the Touch object wrapped up by a touch event that should update with motion."
Ben Murdoch [Mon, 22 Feb 2010 15:00:01 +0000 (15:00 +0000)]
Co-ordinates of a TouchEvent object should be 0,0 to match the behavior on iPhone. It is the co-ordinates of the Touch object wrapped up by a touch event that should update with motion.
Update EventHandler::handleTouchEvent to match what landed to webkit in http://trac.webkit.org/changeset/55146
Change-Id: I91dfcfbbb53020b85f646bcf58eb4f3afd6be8e7
Steve Block [Tue, 23 Feb 2010 15:35:51 +0000 (07:35 -0800)]
Merge "Updates Android to final version of Geolocation position cache submitted to webkit.org"
Steve Block [Tue, 23 Feb 2010 15:26:49 +0000 (07:26 -0800)]
Merge "Cherry-pick WebKit change 55136 to add a means to cancel an ongoing Geolocation permission request"
Patrick Scott [Mon, 22 Feb 2010 17:44:41 +0000 (12:44 -0500)]
Do not merge.
Implement redirectDataToPlugin.
This fixes going to swf files directly (i.e. http://foo.com/bar.swf).
Bug:
2435632
Mike Reed [Tue, 23 Feb 2010 15:08:55 +0000 (10:08 -0500)]
add optional build flag to trigger enabling layers
Steve Block [Tue, 23 Feb 2010 14:59:58 +0000 (14:59 +0000)]
Cherry-pick WebKit change 55136 to add a means to cancel an ongoing Geolocation permission request
This is part of the change required to fix a Geolocation permissions bug.
See https://android-git.corp.google.com/g/#change,40601
Note that We take only the WebCore component of the change, but additional
changes are required to ChromeClientAndroid.
See http://trac.webkit.org/changeset/55136
Change-Id: Iff0eab3adc3e41876df7f114c0d50243d015664f
Derek Sollenberger [Mon, 22 Feb 2010 21:56:41 +0000 (16:56 -0500)]
Added new logging messages and updated event logs with plugin execution time
Steve Block [Thu, 11 Feb 2010 17:28:32 +0000 (17:28 +0000)]
Updates Android to final version of Geolocation position cache submitted to webkit.org
See http://trac.webkit.org/changeset/55142
Change-Id: I8fabc89b596b0e61e8ae389e07af2e898de3bad1
Patrick Scott [Mon, 22 Feb 2010 20:53:37 +0000 (12:53 -0800)]
Merge "Implement redirectDataToPlugin."
Patrick Scott [Mon, 22 Feb 2010 17:44:41 +0000 (12:44 -0500)]
Implement redirectDataToPlugin.
This fixes going to swf files directly (i.e. http://foo.com/bar.swf).
Bug:
2435632
Derek Sollenberger [Mon, 22 Feb 2010 19:56:11 +0000 (11:56 -0800)]
am
4c76da0e: am
1044e7fd: Fixes error where plugin is created while iterating through the list of plugins.
Merge commit '
4c76da0e5177ea82be36bb81e67b52d51a5a72bb'
* commit '
4c76da0e5177ea82be36bb81e67b52d51a5a72bb':
Fixes error where plugin is created while iterating through the list of plugins.
Derek Sollenberger [Mon, 22 Feb 2010 19:26:41 +0000 (11:26 -0800)]
am
1044e7fd: Fixes error where plugin is created while iterating through the list of plugins.
Merge commit '
1044e7fd4ebb61e6133d4f4dda69810e3af9da14' into eclair-mr2-plus-aosp
* commit '
1044e7fd4ebb61e6133d4f4dda69810e3af9da14':
Fixes error where plugin is created while iterating through the list of plugins.
Derek Sollenberger [Mon, 22 Feb 2010 18:00:39 +0000 (13:00 -0500)]
Fixes error where plugin is created while iterating through the list of plugins.
bug #
2438492
Steve Block [Mon, 22 Feb 2010 16:19:02 +0000 (08:19 -0800)]
Merge "Update Android to reflect upstreaming of matrix optimization in RenderLayer.cpp"
Steve Block [Thu, 18 Feb 2010 16:55:56 +0000 (16:55 +0000)]
Update Android to reflect upstreaming of matrix optimization in RenderLayer.cpp
See http://trac.webkit.org/changeset/55081
Change-Id: If34e70743c554b2a5e8315b2657cce6964805f6a
Nicolas Roard [Mon, 22 Feb 2010 12:47:18 +0000 (12:47 +0000)]
Fix for busy loop
Bug:
2457438
Cary Clark [Sun, 21 Feb 2010 15:51:18 +0000 (10:51 -0500)]
disable webkit layers
With layers enabled, servicing timers saturate the CPU at times.
This also fixes a compile-time switch in FindCanvas to disable layers.
Mike Reed [Fri, 19 Feb 2010 16:32:42 +0000 (11:32 -0500)]
move viewport into just this subclass
Cary Clark [Fri, 19 Feb 2010 17:58:22 +0000 (12:58 -0500)]
fix nav layer bugs
Clip the nodes inside the layer to the layer's bounds
Don't crash if the layer with the matching id can't be found.
http://b/
2453945
Steve Block [Thu, 18 Feb 2010 14:49:26 +0000 (14:49 +0000)]
Update Android to reflect recent upstreaming of V8 runtime feature default values
See http://trac.webkit.org/changeset/55020
Change-Id: I4d6c067dcafc43d2798c55e042e446d4964b326f
Steve Block [Fri, 19 Feb 2010 16:42:12 +0000 (08:42 -0800)]
Merge "Fixes a crash in the Geolocation service when using maximumAge"
Nicolas Roard [Fri, 19 Feb 2010 15:34:04 +0000 (15:34 +0000)]
Set the fixed position values when changed via setPosition()
Fix Bug:
2450033
Steve Block [Fri, 19 Feb 2010 12:09:33 +0000 (12:09 +0000)]
Fixes a crash in the Geolocation service when using maximumAge
When a browser page is put to the background, the Geolocation object is
suspended. If the Geolocation object has active requests, it suspends its
Geolocation service.
Now that we have maximum age support, the Geolocation object can have active
requests without having started its Geolocation service. In this case, the
geolocation service can ignore calls to suspend and resume.
This avoids a crash when the Android Geolocation service hasn't created it's
java bridge when suspend is called.
Bug:
2453611
Change-Id: I368226281920512584a92b5f1967d602df1f0782
Ben Murdoch [Tue, 2 Feb 2010 20:36:35 +0000 (20:36 +0000)]
Add support for setting key states with touch events on Android.
Properly guard non-upstreamed common code.
Change-Id: I109dbe97d8c96efe3660ce3893a4e730927e90ef
Mike Reed [Thu, 18 Feb 2010 19:21:42 +0000 (11:21 -0800)]
Merge "refactor"
Ben Murdoch [Thu, 18 Feb 2010 19:21:27 +0000 (11:21 -0800)]
Merge "Add code to try and reclaim granted but unused database quota. This will help alleviate the situation when a website requests a lot of quota (but uses a little) and we run out of quota to dish out to new origins."
Ben Murdoch [Mon, 15 Feb 2010 16:31:04 +0000 (16:31 +0000)]
Add code to try and reclaim granted but unused database quota. This will help alleviate the situation when a website requests a lot of quota (but uses a little) and we run out of quota to dish out to new origins.
We also set the estimatedSize that we pass to Java on quota overflow to 0 if this is a genuine quota overflow as opposed to the creation of a new database.
Change-Id: I370cf7c663d11fc1e5c630beb5299d2d34103b08
Steve Block [Thu, 18 Feb 2010 18:51:26 +0000 (10:51 -0800)]
Merge "Fixes a bug in RenderLayer::paintLayer due to Android's FASTER_MATRIX optimisation"
Mike Reed [Thu, 18 Feb 2010 16:08:07 +0000 (11:08 -0500)]
refactor
Cary Clark [Thu, 18 Feb 2010 17:59:59 +0000 (12:59 -0500)]
check for layer containing final nodes in DOM
This fix prevents a crash in http://webkit.org/blog-files/leaves/
http://b/
2369549
Steve Block [Thu, 18 Feb 2010 16:38:08 +0000 (16:38 +0000)]
Fixes a bug in RenderLayer::paintLayer due to Android's FASTER_MATRIX optimisation
This bug was introduced by the merge to r51976 on 15 Dec 2009.
WebKit change 51355 modified RenderLayer::paintLayer and the Android
FASTER_MATRIX modification was not updated to reflect this. The difference is
that, compared to the intended code, the Android version misses a call to
makeMatrixRenderable, which in turn calls makeAffine, when calculating the
transform matrix.
See http://trac.webkit.org/changeset/51355
Change-Id: Ibc25b92e64381642fc3bbcfd672c056a3d89e035
Steve Block [Thu, 18 Feb 2010 14:49:08 +0000 (06:49 -0800)]
Merge "Android doesn't need to build V8VoidCallback.cpp"
Steve Block [Thu, 18 Feb 2010 13:21:38 +0000 (13:21 +0000)]
Android doesn't need to build V8VoidCallback.cpp
This matches Chromium
Change-Id: I386e4e307e16d8b06eaf258a73d78dfdd9645bf8
Steve Block [Thu, 18 Feb 2010 14:37:45 +0000 (06:37 -0800)]
Merge "Fixes a bug with the Geolocation suspend/resume behaviour"
Steve Block [Thu, 18 Feb 2010 14:32:09 +0000 (06:32 -0800)]
Merge "Cherry-pick WebKit change 54957 to use V8 DerivedSourcesAllInOne.cpp"
Ben Murdoch [Thu, 18 Feb 2010 14:24:39 +0000 (06:24 -0800)]
Merge "Update touch event bindings for V8 in V8Index.cpp to match what landed to webkit.org in https://bugs.webkit.org/show_bug.cgi?id=35094"
Steve Block [Tue, 16 Feb 2010 16:40:51 +0000 (16:40 +0000)]
Cherry-pick WebKit change 54957 to use V8 DerivedSourcesAllInOne.cpp
This updates Android to match Chromium
See http://trac.webkit.org/changeset/54957
Change-Id: I41c082460f00e1c0ec32bf180205ca40fd2f190a
Ben Murdoch [Thu, 18 Feb 2010 14:14:10 +0000 (14:14 +0000)]
Update touch event bindings for V8 in V8Index.cpp to match what landed to webkit.org in https://bugs.webkit.org/show_bug.cgi?id=35094
Change-Id: Id8bfd38800bf38de704efbad3afe9b8e53367d13
Cary Clark [Thu, 18 Feb 2010 13:41:38 +0000 (05:41 -0800)]
Merge "minor fixes to layer nav"
Ben Murdoch [Thu, 18 Feb 2010 13:11:32 +0000 (13:11 +0000)]
Fix the V8 build.
Change-Id: I28ccbf06e6490f6be5e024218ec823dd156d79b2
Ben Murdoch [Tue, 16 Feb 2010 15:39:31 +0000 (15:39 +0000)]
Update V8 Bindings for touch to match what's upstream, landed in trac.webkit.org.changeset/54950
Change-Id: I7da830fcd1d996a23e3f9ca61fa668a99ad80431
Steve Block [Thu, 18 Feb 2010 11:26:48 +0000 (11:26 +0000)]
Fixes a bug with the Geolocation suspend/resume behaviour
PlatformBridge::isWebViewPaused needs to be an instance method, rather than a
static. This fixes a bug where if the user switches browser windows while a
page that uses Geolocation is still loading, the Geolocation service won't be
started in the suspended state.
Note that this is a temporary fix, as the upstreaming of the existing
suspend/resume code will introduce a new approach, which will avoid this problem
altogether. See https://android-git.corp.google.com/g/#change,38942
Change-Id: I3f07f8837b8a8c1c5e7e4f5112ab487188670c3a
Steve Block [Wed, 17 Feb 2010 23:29:59 +0000 (15:29 -0800)]
Merge "Updates WebKit's use of cmath to expect isfinite, isinf, isnan and signbit to be in the std namespace"
Cary Clark [Wed, 17 Feb 2010 22:04:56 +0000 (17:04 -0500)]
minor fixes to layer nav
- get rid of the FloatPoint interface in LayerAndroid;
use (x, y) instead
- make CachedFrame a friend of CachedRoot and CacheBuilder
a friend of CachedNode so they alone can access private fields.
- assume the LayerAndroid picture can sometimes be null.
If it is, use the main page's picture instead.
http://b/
2369549
Leon Scroggins [Wed, 17 Feb 2010 18:21:42 +0000 (13:21 -0500)]
Changes to remove WebTextView at end of touch/press rather than during.
Remove calls to clearTextEntry during a touch/press, and move them to
the end.
Requires a change to frameworks/base
Fix for http://b/issue?id=
2340871
Steve Block [Wed, 17 Feb 2010 17:08:11 +0000 (17:08 +0000)]
Updates WebKit's use of cmath to expect isfinite, isinf, isnan and signbit 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
Cary Clark [Wed, 17 Feb 2010 18:17:10 +0000 (10:17 -0800)]
Merge "Add UI considerations to layers"
Cary Clark [Wed, 27 Jan 2010 22:00:54 +0000 (17:00 -0500)]
Add UI considerations to layers
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.
Steve Block [Wed, 17 Feb 2010 11:49:31 +0000 (03:49 -0800)]
Merge "Updates Android to reflect upstreaming of CHROMIUM and XPATH guards in V8 bindings"
Steve Block [Wed, 17 Feb 2010 11:34:05 +0000 (03:34 -0800)]
Merge "Updates Android to reflect upstreaming of guards on npruntime.h includes"
Steve Block [Tue, 16 Feb 2010 18:57:53 +0000 (18:57 +0000)]
Updates Android to reflect upstreaming of CHROMIUM and XPATH guards in V8 bindings
See http://trac.webkit.org/changeset/54881
Change-Id: I7bf987cbdc8e88e39317551c098475d8f92cd582
Steve Block [Tue, 16 Feb 2010 18:51:16 +0000 (18:51 +0000)]
Updates Android to reflect upstreaming of guards on npruntime.h includes
See http://trac.webkit.org/changeset/54880
Change-Id: I5665991bb4f7d3680c00b42194a9208d1daa90f0
Patrick Scott [Mon, 8 Feb 2010 23:38:13 +0000 (18:38 -0500)]
Use the new stlport build configuration.
Steve Block [Tue, 16 Feb 2010 14:53:06 +0000 (06:53 -0800)]
Merge "Adds an XPath generated header to the Android build to avoid a guard on an include in V8DocumentCustom.cpp"
Steve Block [Mon, 15 Feb 2010 16:26:50 +0000 (16:26 +0000)]
Adds an XPath generated header to the Android build to avoid a guard on an include in V8DocumentCustom.cpp
Adding generated headers to the build, even when for disabled features, is preferred to using guards around includes.
See https://bugs.webkit.org/show_bug.cgi?id=34812
Also cleans up some other Android-specific changes in WebCore/bindings/v8.
Change-Id: I37a174bfaef0d659fc3cef08d084af8861b65ac9
Steve Block [Tue, 16 Feb 2010 14:33:09 +0000 (06:33 -0800)]
Merge "Fix the sim-eng build"
Ben Murdoch [Tue, 16 Feb 2010 14:29:39 +0000 (06:29 -0800)]
Merge "Add toV8 conversion for touch event type."
Steve Block [Tue, 16 Feb 2010 14:22:56 +0000 (14:22 +0000)]
Fix the sim-eng build
Change-Id: Icc67c8786c1a1b98993fb27caf71bd4895118589
Ben Murdoch [Tue, 16 Feb 2010 14:06:01 +0000 (14:06 +0000)]
Add toV8 conversion for touch event type.
Change-Id: I91cd4224ee4df8de105dca179b42ee1428ab288d