History log of /external/webkit/WebKit/android/nav/WebView.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2943c136f14cf8d0631249dd8764a0b6ab45fb98 11-May-2010 Nicolas Roard <nicolas@android.com> Fix the 'wobbling fixed elements' bug.
Cherry-picked from master.
This CL has a corresponding java counterpart (https://android-git.corp.google.com/g/#change,51150).

Bug:2665696
Change-Id: I408a3e2f089a491c340e0f9eb8633870dae84997
/external/webkit/WebKit/android/nav/WebView.cpp
65966ae193adfef8d40419ad9c11515b0e56f257 21-Apr-2010 Cary Clark <cary@android.com> nextTextField may walk off the end or try invalid frames

Rewrote nextTextField() to check range and frame, and
to more resemble other node walkers.

Caller no longer passes uninitialized frame in focused
case, and looks at parent frames after the target node.

Change-Id: I7ea9dffb75d28bdd9d71d83921058feca6baf928
http://b/2607250
/external/webkit/WebKit/android/nav/WebView.cpp
2194b17e89b2ad4c0624f7612e417db6d69150ad 31-Mar-2010 Leon Scroggins <scroggo@google.com> Create a method to check to see if the focus has a following textfield.

Fixes http://b/issue?id=2559070

Requires a change to frameworks/base.

Change-Id: I450cb8ee109e9a1f38a7290032fb3ca948dcc71a
/external/webkit/WebKit/android/nav/WebView.cpp
e93f34788b1f644f8be61a1daf6505c387e6fc3b 19-Mar-2010 Nicolas Roard <nicolas@android.com> Renders fixed layers with the root canvas matrix. Fix some positioning issues.

Bug:2526966 Bug:1818168

The current rendering code exposes some issues with the fact that we have
fixed layers in the layers hierarchy -- parents transformations are also applied
to the fixed layers, which is not what we want (fixed layers should be applied
on the original canvas, with the original transform -- e.g. toolbar present or not --
but no more).

One previously discussed solution was to move the fixed layers to their own hierarchy;
but doing so would mean to also redo all the z-index management that we already have
in the current system. The simplest way is therefore to use the original matrix (the
canvas' matrix) when we have a fixed layer. The way we do this is by inserting a new
LayerAndroid before the LayerAndroid root, setting the matrix of that new root to be
the canvas' matrix. The drawing is then unaffected, but we can ask skia to draw using
the root's matrix.

The second issue solved in the CL is some positioning troubles; layers may have
different dimensions than their render view, and the previous code was considering that
the views were always drawn at the origin in the layer. By removing the parents layers
transforms, this is not the case anymore, and we therefore need to take the render view
offset into account. Finally there is some additional debug code in LayerAndroid.

Change-Id: Id353ad3dfd9808252643f0e4f0140dde67480719
/external/webkit/WebKit/android/nav/WebView.cpp
8026280044128436d8e89736519a0b32b6540201 17-Mar-2010 Cary Clark <cary@android.com> get bounds of focused node

companion fix in framework/base

Change-Id: I7d9191ea9c95dafac7f7e91a70d02c7d055c6967
http://b/2521087
/external/webkit/WebKit/android/nav/WebView.cpp
3a752d13620eb15148e87a028d66932c74a27993 15-Mar-2010 Cary Clark <cary@android.com> read old focus before it's thrown away

Change-Id: Iab6a64aec5f146e8b0286d1249d353567b49ea49
http://b/2515977
/external/webkit/WebKit/android/nav/WebView.cpp
fa26a8dd531dff44d6cad0700ff32c0bb949392c 05-Mar-2010 Nicolas Roard <nicolas@android.com> Fix bug 'Children of fixed elements do not always remain fixed themselves'
The problem was twofold:
- webkit didn't create composited layers of the children div unless they were
intersecting with the fixed layer
- the children divs layers are siblings, not children of the fixed layer

The solution is to:
1/ mark layers as needed to be composited if their ancestor is a
fixed element (in RenderLayerCompositor)
2/ as the GraphicsLayer/LayerAndroid hierarchy is based on the RenderLayer
hierarchy (z-order..) and not the display hierarchy, we need to a way of
updating the position of the contained layers when a fixed layer move.

We do that by:
- marking layers contained in a fixed layer as being linked to the
fixed layer (GraphicsLayerAndroid::syncFixedDescendants), and set the
offset between the layer and the fixed layer.
- when pushing the layers tree to the UI side, we ensure that such layers
are linked to their corresponding fixed layer
(LayerAndroid::ensureFixedLayersForDescendants)
- when we draw, we do a first pass to update the fixed layers position
(LayerAndroid::updateFixedLayersPositions) then update the rest of the
layers (LayerAndroid::updatePositions). The layers that are linked
to the fixed layers will then update their position relative to it,
using the original offset between the fixed layer and the layer.

Bug:2470701
Change-Id: I512966df94de6a5f84aff335c5d09b3f027bc2c3
/external/webkit/WebKit/android/nav/WebView.cpp
7332bc6f7a4d9ccd11185104fb0aa1a0c9b84ac0 09-Mar-2010 Mike Reed <reed@google.com> build-fix for the no-layers config

Change-Id: I4994cb5dc61cb845db76060fbd7680f6f5f9ab88
/external/webkit/WebKit/android/nav/WebView.cpp
cc4e3c422964c7d999e8f340057f303140d845dd 09-Mar-2010 Cary Clark <cary@android.com> requestChildRectangleOnScreen takes layers into account

Make native LayerAndroid::subtractLayers visible to java so
the layers can be removed from the visible portion of the screen
when computing how much to scroll.

companion fix in frameworks/base

Change-Id: I3bc0760aaeb515415e90996ec1257d24f9f8705a
http://b/2453841
/external/webkit/WebKit/android/nav/WebView.cpp
5065a677456ac1cb630e5271e781b2aa796af7a5 05-Mar-2010 Cary Clark <cary@android.com> scroll into view considers layers

LayerAndroid.*
- Add a utility that takes the given rectangle and subtracts
layers that overlay it.

FindCanvas.*
- Add function that returns if the current match is on the
main page or in a layer.

WebView.cpp
- Add jni caller for WebView.java calcOurContentVisibleRect.
Call it instead of getVisibleRect, which has the side effect
of sending messages back to webkit.
- Remove jni caller for getViewMetrics, since it is redundant.
- Only call scrollRectOnScreen for non-layers.

companion fix in framework/base

http://b/2485168
/external/webkit/WebKit/android/nav/WebView.cpp
afa40c89b27e6edbc28a5ad400eb8bb9176a88a8 03-Mar-2010 Cary Clark <cary@android.com> refactor find state and scrolling

Separate out state when find is up and is empty.
Request a scroll when setting a match, rather than when drawing.
Don't draw if there's no match.

Companion fix in frameworks/base

http://b/2370069
/external/webkit/WebKit/android/nav/WebView.cpp
8480ea3097f295aeccf7c088a06cceea543238b7 01-Mar-2010 Leon Scroggins <scroggo@google.com> Make nativeMoveCursorToNextTextInput return a value based on success.

Also no longer differentiate between textfields and areas for the purpose
of the next action.

Part of fix for http://b/issue?id=2478052

Requires a change to frameworks/base
/external/webkit/WebKit/android/nav/WebView.cpp
a72964908d18b6749473e7426e32da408a480f00 26-Feb-2010 Mike Reed <reed@google.com> ignore rootlayer when drawing (fixes regression)
dump layers contents in displayTree.txt
/external/webkit/WebKit/android/nav/WebView.cpp
87962ce00229855c098ba12cee8d5c015a835289 23-Feb-2010 Cary Clark <cary@android.com> 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
/external/webkit/WebKit/android/nav/WebView.cpp
cdd7f6d80774ba3a374f09f22f7cb6bcfca24fa5 19-Feb-2010 Mike Reed <reed@google.com> move viewport into just this subclass
/external/webkit/WebKit/android/nav/WebView.cpp
be4ea5d07252747b3faad9dd63d4bebe79f24db3 19-Feb-2010 Cary Clark <cary@android.com> 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
/external/webkit/WebKit/android/nav/WebView.cpp
72d7d713095c595ffb3f75ae6cb9df1a0c774d20 18-Feb-2010 Mike Reed <reed@google.com> refactor
/external/webkit/WebKit/android/nav/WebView.cpp
468703355ff9a5448e0b32b0a7dbf4f1e44e18e6 17-Feb-2010 Leon Scroggins <scroggo@google.com> 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
/external/webkit/WebKit/android/nav/WebView.cpp
f4cefb9302ee62602c19cdfbdb6cc1fbdf540953 27-Jan-2010 Cary Clark <cary@android.com> 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.
/external/webkit/WebKit/android/nav/WebView.cpp
43ea3379b4eaa2af641c3fa0c2096fa10d9e6147 15-Feb-2010 Mike Reed <reed@google.com> checkpoint for refactoring
/external/webkit/WebKit/android/nav/WebView.cpp
859c5759717164a923c2267b9ee8437a4dafe5c4 12-Feb-2010 Nicolas Roard <nicolas@android.com> Add dump layers capability (triggered the same way as the dump tree trick,
saving the layres tree in /sdcard/layersTree.plist)
/external/webkit/WebKit/android/nav/WebView.cpp
fe41360961a5f02a9f54dbe4922d301ef4bc4a20 11-Feb-2010 Nicolas Roard <nicolas@android.com> Put back the animations in the UI thread
/external/webkit/WebKit/android/nav/WebView.cpp
a2aaeda3cab40ff823fc40ebff51b828d1a9bc1c 08-Feb-2010 Leon Scroggins <scroggo@google.com> Remove code which retrieves the action associated with a textfield.

This code was written because we previously only had one action
button on the IME for textfields. Now that textfields can always
have a next button, we no longer need it.
/external/webkit/WebKit/android/nav/WebView.cpp
30e39dd1918530408d55dbead3bf1567661b606e 25-Jan-2010 Nicolas Roard <nicolas@android.com> Fix memory leak with layers.
This fix bug http://b/2394813
This is a two-parts CL (need a java modif)

- The main leak is in WebView.cpp -- nativeUpdateLayers could
bail out if the root layer was nil, without deallocating the vector
of updates.
- fix a leak in LayerAndroid::evaluateAnimations()
- adoptRef() for the contentLayer in GraphicsLayerAndroid
- simplify AndroidAnimation: remove the reference to the layer
(the layer already has a reference to AndroidAnimation)
- modify the AndroidAnimation copy() methods to return directly
a PassRefPtr, for consistency.
/external/webkit/WebKit/android/nav/WebView.cpp
6ea14fae517da56092ed519906404da3127e10c0 22-Jan-2010 Leon Scroggins <scroggo@google.com> Call nextTextfield on the CachedFrame that contains the cursor/focus.

Fixes http://b/issue?id=2359748
/external/webkit/WebKit/android/nav/WebView.cpp
20ab751acc0d49d74648373f701f3d0c4ff187c0 20-Jan-2010 Steve Block <steveblock@google.com> Cherry-pick WebKit change 53497 to rename jni_utility and 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
/external/webkit/WebKit/android/nav/WebView.cpp
7e4ab561c4c9340f9ef887d1f0fbb7c2972d5bfd 14-Jan-2010 Nicolas Roard <nicolas@android.com> am 93f808ab: am 388e461f: Add proper support for fixed position elements

Merge commit '93f808abccaf6f09c5c0226c01942c3be445031a'

* commit '93f808abccaf6f09c5c0226c01942c3be445031a':
Add proper support for fixed position elements
388e461f3d6bf782b3cfb4bb21bc6264cef9323c 07-Jan-2010 Nicolas Roard <nicolas@android.com> Add proper support for fixed position elements

this is two-part change, see http://android-git.corp.google.com/g/#change,37092 for the java counterpart.
This CL implements fixed position elements (css position: fixed) using layers, supporting pixels and percent lengths.

It addresses http://b/1914365
/external/webkit/WebKit/android/nav/WebView.cpp
bff5134a8a9abe4932cf2a1a26b5d827f75d5e17 12-Jan-2010 Leon Scroggins <scroggo@google.com> am ddd2f469: am ab9c9800: Merge "Compare Node pointers rather than CachedNode pointers." into eclair-mr2

Merge commit 'ddd2f469835ed5402cb3edfa6c2865536011fbab'

* commit 'ddd2f469835ed5402cb3edfa6c2865536011fbab':
Compare Node pointers rather than CachedNode pointers.
0c380afc34e67040e79a4bd7559302053dcbc1f2 12-Jan-2010 Leon Scroggins <scroggo@google.com> Compare Node pointers rather than CachedNode pointers.

Fixes http://b/issue?id=2369028
/external/webkit/WebKit/android/nav/WebView.cpp
af3b7507bd6d2b10fce43aa0728b8afcf5cddd86 11-Jan-2010 Cary Clark <cary@android.com> rebuild the nav cache if the clicked on node is invalid

Before, the slop parameter was set to zero if the node was
invalid, and used to skip searching for the node. Now, the
cache is rebuilt on the java side before the C side is
called.

requires a companion fix in frameworks/base

fixes http://b/2362334
/external/webkit/WebKit/android/nav/WebView.cpp
7c1b3b8c573eed35ddc15fd7dd3d762403f30755 11-Jan-2010 Leon Scroggins <scroggo@google.com> resolved conflicts for merge of 9653e7ce to master
d485d47cbb03ae8cbe9d96bc54a5cb83ee80570e 08-Jan-2010 Leon Scroggins <scroggo@google.com> Bring up the IME after receiving a response from webkit.

Fix for http://b/issue?id=2361658

Requires a change to frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
b4ca27904cd6e62bd2b633ea156c1cefc3413171 07-Jan-2010 Leon Scroggins <scroggo@google.com> am e44f974f: am 15f1e443: In motionUp, update the CachedHistory\'s mMouseBounds.

Merge commit 'e44f974f1d7e25a2823901e0f34c04aa924b7527'

* commit 'e44f974f1d7e25a2823901e0f34c04aa924b7527':
In motionUp, update the CachedHistory's mMouseBounds.
15f1e443f22288ee82cde972517ebf3cc1153d97 07-Jan-2010 Leon Scroggins <scroggo@google.com> In motionUp, update the CachedHistory's mMouseBounds.

mMouseBounds is later used to determine the point of clicking.

Fixes http://b/issue?id=2313991
/external/webkit/WebKit/android/nav/WebView.cpp
012b75708aa7a7d3a3dd6a02b514e080317ccd39 07-Jan-2010 Cary Clark <cary@android.com> am 6864ec3c: am 1ccac4c1: remove unused jni interfaces

Merge commit '6864ec3c0bb8b5cc0dfa126546419113e946661a'

* commit '6864ec3c0bb8b5cc0dfa126546419113e946661a':
remove unused jni interfaces
1ccac4c182607275cdb16213493afa414f0d365e 07-Jan-2010 Cary Clark <cary@android.com> remove unused jni interfaces

companion change is in frameworks/base
/external/webkit/WebKit/android/nav/WebView.cpp
3c8719f8ef6bb3553cecad4e06543c9aae18f537 07-Jan-2010 Leon Scroggins <scroggo@google.com> resolved conflicts for merge of 174cd118 to master
725b72d96731765ddc964c620a2c98834946241f 06-Jan-2010 Leon Scroggins <scroggo@google.com> Request <label> info only when accessing a textfield.

Previously, we were storing the label info each time we build the
navigation cache.

Requires a change to frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
24bc74d8a014540743a2e4268989d7cad6d61ed6 06-Jan-2010 Leon Scroggins <scroggo@google.com> am 3146e9ee: am 62d9c8e5: Store label information to be used for hint text.

Merge commit '3146e9ee4d8f6114a97ceb01d6fd54db77d99538'

* commit '3146e9ee4d8f6114a97ceb01d6fd54db77d99538':
Store label information to be used for hint text.
62d9c8e597ebe68adce93008597730a41a1d716b 05-Jan-2010 Leon Scroggins <scroggo@google.com> Store label information to be used for hint text.

Fix for http://b/issue?id=2331526

Requires a change to frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
5e5962825729a211e093fd615ddc9e5b0bec10bd 23-Dec-2009 Cary Clark <cary@android.com> extract selected text from the picture

The deleted code extracted the selected text from the WebKit DOM
by looking for text in the render tree that matched the selection
region. This has never worked well.

The replacement approach matches the glyphs in the picture instead.

- WebViewCore.*
Remove getSelection() and supporting routines. Part of the deleted
code looked for punctuation between segments to add space characters
that might not be present in the markup. There's no equivalent in
the replacement code; it uses spacial gaps to detect the need to
add extra spaces.

- SelectText.*
Match the text to the selected region and convert the glyph to
unicode. The tricky part is that spaces need to be inserted into
the string when there are gaps in the text.

- WebView.cpp
Return the selection as a string to the java caller instead
of a region.

To convert the glyphs into text, a companion change was made to
external/skia. To update the UI thread/webkit thread messaging, a
companion change was also made to frameworks/base.

Fixes http://b/2166748
/external/webkit/WebKit/android/nav/WebView.cpp
797e4f1087e408060f2812c79bddcd2b73a3830d 04-Jan-2010 Nicolas Roard <nicolas@android.com> resolved conflicts for merge of 870689c8
/external/webkit/WebKit/android/nav/WebView.cpp
9acd586e4a0aa54e4f630665aa0d3c8c95b78e72 04-Jan-2010 Nicolas Roard <nicolas@android.com> webkit layers support
/external/webkit/WebKit/android/nav/WebView.cpp
e035b64a686cf87a82d880d4863856231625b2f8 04-Jan-2010 Leon Scroggins <scroggo@google.com> resolved conflicts for merge of 66367cf8 to master
95fa6e99128685c55e9be6f4362e67c288482a74 15-Dec-2009 Leon Scroggins <scroggo@google.com> If the DOM changes textfield focus, make the IME work properly.

Fix for http://b/issue?id=2219166

Requires a change to frameworks/base

Remove the old change to update the WebTextView when a key is pressed,
since the IME does not generate key events. Instead, when the focus
changes, and the IME is serving the WebTextView, immediately clear
the cursor and update the WebTextView, so the user can continue
typing. Also, allow "Next" to work on the currently focused
textfield, even if it's not the cursor. Further, check for
a new action if there is a focus but not a cursor.
/external/webkit/WebKit/android/nav/WebView.cpp
fc48c35d2da56088bec82ee1d8d38b1417a9ddd8 16-Dec-2009 Cary Clark <cary@android.com> am 14357090: am d4924af1: check to see if nav cache is up to date on tap

Merge commit '14357090e9d4ac9ad1be6147cf9c7e3ff83cdda4'

* commit '14357090e9d4ac9ad1be6147cf9c7e3ff83cdda4':
check to see if nav cache is up to date on tap
d4924af12855cd19162ba1442a6055664c98ca32 11-Dec-2009 Cary Clark <cary@android.com> check to see if nav cache is up to date on tap

- WebKit/android/jni/WebViewCore.cpp
- WebKit/android/jni/WebViewCore.h
Add validNodeAndBounds() to determine if the clicked cached
node is good. First check to see if the pointer
to the frame and node still exist in the DOM. If
they do, see if the hit test bounds they point
to is the same as when the cache was recorded.

- WebKit/android/nav/CacheBuilder.cpp
- WebKit/android/nav/CachedNode.h
Record the original absolute bounds for later
comparison.

- WebKit/android/nav/CacheBuilder.h
Make getAreaRect() public so it can be called by
validation.

- WebKit/android/nav/WebView.cpp
Enhance motionUp() with additional validation:
use pointInNavCache() to see if there's a cached node;
wait for message from webkit to see if bounds is unchanged;
then use motionUp() to pass the original or altered click.

This is a two-part change with frameworks/base.

Fixes http://b/2249425
/external/webkit/WebKit/android/nav/WebView.cpp
0f201b80d05708e2cbadb19333e9cdb2aedfcb62 11-Dec-2009 Leon Scroggins <scroggo@google.com> Like other callers of Java methods, do not check for the object to be null.
/external/webkit/WebKit/android/nav/WebView.cpp
ee5f7d769407acacdf7b4794190a050e6a036f0a 10-Dec-2009 Leon Scroggins <scroggo@google.com> am 58a731c8: am bf16ddc1: Pass a message to move the focus when user hits "Next".

Merge commit '58a731c8a7beeda67d174e8a325594bc81e80a0f'

* commit '58a731c8a7beeda67d174e8a325594bc81e80a0f':
Pass a message to move the focus when user hits "Next".
bf16ddc110ef3fde2cfa1ae43ab31d993377981d 08-Dec-2009 Leon Scroggins <scroggo@google.com> Pass a message to move the focus when user hits "Next".

Directly move the focus rather than passing a click.

Fixes http://b/issue?id=2292683

Requires a change to frameworks/base
/external/webkit/WebKit/android/nav/WebView.cpp
02967298aed46eb168ef8ce30d7212e2ab0487c9 08-Dec-2009 Leon Scroggins <scroggo@google.com> am c0812354: am 74757b62: Provide <input> type information to Java side.

Merge commit 'c08123548374ec7cdcf0d1ef8857807c6eda8293'

* commit 'c08123548374ec7cdcf0d1ef8857807c6eda8293':
Provide <input> type information to Java side.
c5722d49df912077f26c29cf480007ba158bd308 08-Dec-2009 Cary Clark <cary@android.com> am 9a00fbd6: am 34bca311: fix crash reading readonly node state

Merge commit '9a00fbd61c8699856620bca057e06efca4425015'

* commit '9a00fbd61c8699856620bca057e06efca4425015':
fix crash reading readonly node state
79b4ba1c1229e9fe893bc888545f23174a35ba04 08-Dec-2009 Leon Scroggins <scroggo@google.com> am 3a360998: am dcbb033a: Store InputType information for <input> fields, return SEARCH action for SEARCH <input>

Merge commit '3a360998e7aa91c194fa97a40131bf837f2bba1b'

* commit '3a360998e7aa91c194fa97a40131bf837f2bba1b':
Store InputType information for <input> fields, return SEARCH action for SEARCH <input>
74757b62fce144f27c25cc7744df82cd7411b2dc 07-Dec-2009 Leon Scroggins <scroggo@google.com> Provide <input> type information to Java side.

Help to fix http://b/issue?id=1890360 and http://b/issue?id=2150538

CacheBuilder.cpp:
Explicitly set isTextField to false for textareas.

CachedRoot:
Remove the code which checks to see if the textfield is a search,
since if it is, we can avoid this path altogether.

WebView:
Return a single integer which tells what type the current text
input field is.

Requires a change to frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
34bca311c8205ee40379adac2ef4da01e401600e 07-Dec-2009 Cary Clark <cary@android.com> fix crash reading readonly node state

Something about rebuildTextView() invalidates the current cached
frame -- reading the last obtained frame after calling it may
crash. Why, I don't know. Until I figure that out, read the
cached state first.

Also remove some tests for null frame and node since the null
case has already been handled earlierin motionUp().

fixes http://b/2307964
/external/webkit/WebKit/android/nav/WebView.cpp
dcbb033aafed2abc472f0d88520869a6b1f1945b 04-Dec-2009 Leon Scroggins <scroggo@google.com> Store InputType information for <input> fields, return SEARCH action for SEARCH <input>

Fixes http://b/issue?id=2299660 and http://b/issue?id=2299650
Also remove isPassword, which is redundant.
/external/webkit/WebKit/android/nav/WebView.cpp
083dd9ba642850ce340338a4ed960164afe73171 04-Dec-2009 Cary Clark <cary@android.com> am 021228f2: am 1d330120: move input-related fields out of CachedNode to expand

Merge commit '021228f27b1399df5a45f3f1e7f1f12126e86e3c'

* commit '021228f27b1399df5a45f3f1e7f1f12126e86e3c':
move input-related fields out of CachedNode to expand
1d330120b6c2ee2d3f1c25300d0e3d446ef8c640 03-Dec-2009 Cary Clark <cary@android.com> move input-related fields out of CachedNode to expand

Some of the fields in CachedNode are relevant only to input
fields and text areas. Move these into their own vector
so that we can add more data without making all CacheNodes
bigger.

Remove CacheNode entries that are no longer used, or can
be consolidated into the node type. Alphabetize some interfaces
and implementations. Update the debugging output.

part of http://b/2299660
/external/webkit/WebKit/android/nav/WebView.cpp
0248ae44ec2025a439e42997a8158bc8d2761308 25-Nov-2009 Leon Scroggins <scroggo@google.com> am c0d334f9: am 6e752dd8: Remove nativeTextInputMotionUp.

Merge commit 'c0d334f902af03c2717dcc2223007ec681772cfd'

* commit 'c0d334f902af03c2717dcc2223007ec681772cfd':
Remove nativeTextInputMotionUp.
6e752dd8042aae87f4827210909b1bfdaa58fbb7 24-Nov-2009 Leon Scroggins <scroggo@google.com> Remove nativeTextInputMotionUp.

Function is not needed. Requires a change to frameworks/base
/external/webkit/WebKit/android/nav/WebView.cpp
9c1c6c9e56575c843cb6ae4fddf07ba6cfc702d0 18-Nov-2009 Cary Clark <cary@android.com> am b8b529eb: am 92c9b35d: Merge change I7018b1ca into eclair-mr2

Merge commit 'b8b529ebfcb9481927b00f6e2581873616ccf424'

* commit 'b8b529ebfcb9481927b00f6e2581873616ccf424':
rename nativeFindIsDown to nativeFindIsUp
d74d4ceff106be90d9eaf08ec191a96bd87a7007 17-Nov-2009 Cary Clark <cary@android.com> rename nativeFindIsDown to nativeFindIsUp

companion fix is in framework/base

fixes bug http://b/issue?id=2264941
/external/webkit/WebKit/android/nav/WebView.cpp
a7a3609e1dd6b0bd6cfa37079ead1ef628fb66bc 13-Nov-2009 Steve Block <steveblock@google.com> am 7063c3ef: Merge change I67ad4b89 into eclair-mr2

Merge commit '7063c3efe30d0ec965ac48439917030f62f50489'

* commit '7063c3efe30d0ec965ac48439917030f62f50489':
Fixes license headers for all files in WebKit/android, other than those in stl/.
3298a7d84b96ade73c6b170671711a8f2792ae59 13-Nov-2009 Steve Block <steveblock@google.com> Fixes license headers for all files in WebKit/android, other than those in stl/.

These files have not yet been 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.

This change adds licenses where absent or simply fixes the names of copyright holders in the license
text to 'THE COPYRIGHT OWNER' and cleans up formatting.

Files in stl/ currently use licenses other than BSD-style and will require more careful treatment.

Change-Id: I67ad4b8932e432d3eaaeecdfeb0d09418496228d
/external/webkit/WebKit/android/nav/WebView.cpp
26e71b8d8b5d90c1656ac78ff91c2a1909687eba 29-Oct-2009 Leon Scroggins <scroggo@google.com> am 19194ea2: Fix a clicking bug.

Merge commit '19194ea29920c2f7a02d08dfb0416608bc81dbb7'

* commit '19194ea29920c2f7a02d08dfb0416608bc81dbb7':
Fix a clicking bug.
11f968f1abd3412fba7dc6eddc75fae25cb718e0 29-Oct-2009 Cary Clark <cary@android.com> am 7b035dc1: pass the current cursor when computing the mouse position

Merge commit '7b035dc1012763a04adddc6de25256647fea50bd'

* commit '7b035dc1012763a04adddc6de25256647fea50bd':
pass the current cursor when computing the mouse position
19194ea29920c2f7a02d08dfb0416608bc81dbb7 28-Oct-2009 Leon Scroggins <scroggo@google.com> Fix a clicking bug.

Remove some code that simulates a mouse click at the beginning of
a textarea and the end of a textfield. The original goal was to
make the click change the selection to be at the beginning or end
of the field, respectively. However, we actually make another call
which prevents this click from the selection. Further, the
selection actually gets changed elsewhere.

Fixes http://b/issue?id=2219233
/external/webkit/WebKit/android/nav/WebView.cpp
7b035dc1012763a04adddc6de25256647fea50bd 28-Oct-2009 Cary Clark <cary@android.com> pass the current cursor when computing the mouse position

Most of the time, the simulated mouse position can be
computed from the current cursor. But when the cursor
is changed, the current cursor info could be out of
date and generate a bus error.

fixes http://b/issue?id=2061211
/external/webkit/WebKit/android/nav/WebView.cpp
8d9bef93eabb348641d3315ba75827c6b786fe84 28-Oct-2009 Elliott Hughes <enh@google.com> Fix build.
/external/webkit/WebKit/android/nav/WebView.cpp
28780bb5bd25517bab0d00d1e536885350d0135f 27-Oct-2009 Leon Scroggins <scroggo@google.com> am f74580c1: Allow touches to change the selection.

Merge commit 'f74580c1504dcdd43fd15995b0e137982512dba2'

* commit 'f74580c1504dcdd43fd15995b0e137982512dba2':
Allow touches to change the selection.
f74580c1504dcdd43fd15995b0e137982512dba2 23-Oct-2009 Leon Scroggins <scroggo@google.com> Allow touches to change the selection.

Fixes http://b/issue?id=1650395 Lets touches change the selection
while ignoring changes from trackball events. When a touch puts
a textfield in focus, tell the WebTextView to set mOkayForFocusNotToMatch.

Requires a change in frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
3bce2a57ea5b637c5c69fb036f59b291750e4d91 22-Oct-2009 Patrick Scott <phanna@android.com> Use native weak references instead of our wrapper.

Revert "Add check null of getRealObject(). When a WebView is"
This reverts commit b47ea2b1184167767692f88c1e5f3e4e89db04b2.

Revert "Update the comment for checking null in needtouchevents."
This reverts commit 1e67e45d20ead40b0407618abbc5e20840dc3c80.

Revert "Check null for WebViewCore's nativeClass before calling"
This reverts commit 992afbebfb735ec2dd52b4166c22ab55827d88ed.

Fix a few places where DeleteLocalRef and DeleteGlobalRef were used incorrectly.
Fix a compilation warning as well.
/external/webkit/WebKit/android/nav/WebView.cpp
c7d9090583638605a2c8a779642ad09d1a228520 27-Oct-2009 Derek Sollenberger <djsollen@google.com> changing how plugins gain/lose focus.

Previously we were keeping our own state in the UI thread to
determine when to send events to the plugin. This change removes
that logic and uses the document focus to determine when events
are to be sent. This also fixes problems with the plugins
occasionally not receiving lose focus events.

see bug http://b/2033843
/external/webkit/WebKit/android/nav/WebView.cpp
21088f4092362b3eac4b6ad7d7050aabb833dfcf 26-Oct-2009 Cary Clark <cary@android.com> tweak select text

webkit changed the behavior of hitTestResultAtPoint; it used
to return the innermost node hit, but does so no longer.
Work around this by searching the returned node for a text
node.

Start the text detection one pixel lower. This fixes picking up
the first line of a link on m.msn.com.

Simplify the selection drawing. Share code between the arrow and
the i-beam. Center the i-beam on the arrow. Use relative path
construction to simplify the i-beam.

Add debugging.

Requires a companion change in frameworks/base

partially fixes http://b/issue?id=1667690
/external/webkit/WebKit/android/nav/WebView.cpp
28a61bf7b277d2ab6658706076d5e5391102f3ac 23-Oct-2009 Leon Scroggins <scroggo@google.com> Allow java WebView to check the readonly status of a node.

Required for a change to frameworks/base
(https://android-git.corp.google.com/g/30939 )
/external/webkit/WebKit/android/nav/WebView.cpp
f514da7c6b4891ba0db5043e7be58bb49df9a72c 23-Oct-2009 Leon Scroggins <scroggo@google.com> Remove some unused variables.
/external/webkit/WebKit/android/nav/WebView.cpp
3efa919a7f16fdb717e393f501c50d4844ffaed5 21-Oct-2009 Cary Clark <cary@android.com> fix multiple text areas, and text areas without focus rings

Separate nodes that are hidden from nodes that disable
drawing the focus ring. If a node draws its own focus state,
other than not drawing the ring, it should be indistinguishable
from other focusable nodes.

Fix the nav cache dump to be in line with the latest webkit.

fixes http://b/issue?id=2201049
/external/webkit/WebKit/android/nav/WebView.cpp
8601da30c7a307f6ca8a2b15688480cc1e8251c9 15-Oct-2009 Leon Scroggins <scroggo@google.com> Do not bring up the soft keyboard for readonly input fields.

Partial fix for http://b/issue?id=2159869. Add a field to CachedNode
for readonly. In WebView.cpp, only call displaySoftKeyboard if the
node is not readonly. Also call displaySoftKeyboard in nativeTextMotionUp
to replace a call being removed in WebView.touchUpOnTextField(java).
/external/webkit/WebKit/android/nav/WebView.cpp
31f7153b80559d0b0580ce91bd1465aea7588aa2 15-Oct-2009 Cary Clark <cary@android.com> fix copy/paste using trackball on passion

This fix should be considered for passion mr1, but
does not affect sholes -- this is a trackball only bug.

The selection caret and arrow now take the scale factor and
the height of the title bar into account when preparing the
canvas for drawing.

Also, simply call to CopyPaste::findClosest, and remove
logic to attempt to pin the arrow to the current cursor.

Requires a companion fix in framework/base
Fixes http://b/issue?id=2187591
/external/webkit/WebKit/android/nav/WebView.cpp
49e856e5d5e86855d12326294cb6b57235a2e9a1 08-Oct-2009 Cary Clark <cary@android.com> add debugging, tweak data for flash work in progress

Attempts to get the plugin to scroll when the ime
appears. Add debugging strings to help track events
to show plugin object. Add focusCandidate interfaces.
Tweak rectangles from plugin so they don't disappear.
Prefer found matches in nav cache that are later in
the document.
/external/webkit/WebKit/android/nav/WebView.cpp
b47ea2b1184167767692f88c1e5f3e4e89db04b2 03-Oct-2009 Grace Kloba <klobag@google.com> Add check null of getRealObject(). When a WebView is
removed, there is a slight chance that getRealObject()
for WebView's JavaObject be null.

Fix http://b/issue?id=2159815
/external/webkit/WebKit/android/nav/WebView.cpp
9d04f66389be496d5c6336ea09550dc4086b7f85 25-Aug-2009 Cary Clark <cary@android.com> fix a couple of debug print errors
/external/webkit/WebKit/android/nav/WebView.cpp
44206d7109052a5a98a832db4a9b960cf859dee9 13-Aug-2009 Leon Scroggins <scroggo@google.com> Pass clicks to webkit's textfield to determine the new selection.

Requires a corresponding change to frameworks/base. We were previously
letting WebTextView handle clicks, determine the change in selection,
and pass that down to webkit. This sometimes resulted in a different
placement of the caret if the WebTextView and the webkit-rendered
textfield did not line up exactly. Now, we pass the click directly
to webkit, which determines the new selection and passes that info
back to the WebTextView. This also has the benefit of letting
the WebTextView reflect changes in the selection that originated from
webkit. Also remove some unused parameters.
/external/webkit/WebKit/android/nav/WebView.cpp
51c0d4c6b1b74fff7336d81451ba7d2fc132e31c 31-Jul-2009 Leon Scroggins <scroggo@google.com> Fix a bug in find.

Fix for http://b/issue?id=2021424. When trying to draw the matches,
if we find that the page needs to be scrolled to put the match on
screen, we request a scroll, do a viewInvalidate and stop, so that
the matches will be drawn after the invalidate. Unfortunately, for
some values, we do not end up scrolling, because contentToView turns
the scroll into a no op. So we forever request scrolls, and never
draw the matches. Fix this by getting a return value from scrollBy,
and if it returned false, go ahead and draw the matches.
/external/webkit/WebKit/android/nav/WebView.cpp
fa768f11d82c34980cce020f442329299efb08ca 29-Jul-2009 Cary Clark <cary@android.com> rebuild the nav cache on mouse clicks during page load

While the page is loading, the nav cache is not rebuilt.
Double-click zooms out the web page by using the nav cache to
find the left edge of the column -- but fails to work during
page load. This change rebuilds the nav cache (if the page is
loading) each time a mouse click is sent to webkit.

This doesn't fix the bug where the first double click doesn't
align the column correctly, but helps with subsequent clicks.

Also, pass scale information to getBlockLeftEdge so it can
restrict its search to the area that will be zoomed to. Default
to the point clicked if no alignment info can be found.
/external/webkit/WebKit/android/nav/WebView.cpp
e3635bdd4530eeff44657cb1423a0572482381ce 30-Jul-2009 Leon Scroggins <scroggo@google.com> Allow user to jump to the next textfield.

In CachedFrame, add methods to find the next textfield and to
determine which ImeAction should be associated with a given textfield.
In WebView, uses these apis to determine the ImeAction and jump
to the next textfield and scroll it on screen. Requires a change to
frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
a50885e6d06f2cfdee3bf43b1fb367bca126c5dc 28-Jul-2009 Grace Kloba <klobag@google.com> Support double tap in the Browser.

Add api to get the left edge of the block from the current (x,y). The code
was copied from Cary's change.
Todo:
1.need some tuning as we can see from nytimes.com that some times the left
edge is not correct.
2.currently nav cache is not up to date while loading. This means the left
edge may not be correct during loading.
3.if (x,y) is over an edit text box, or image, it should return the left
edge of it. Currently it is not working as expected.

Added the code to store the extra scale factor, so that back/forward history
works correctly.
/external/webkit/WebKit/android/nav/WebView.cpp
46ab2ef854b718ae57dd99d0d4835dc3897086af 23-Jul-2009 Leon Scroggins <scroggo@google.com> Clear the WebTextView when clicking on another node.

We already cleared it in the above case, when the
user clicks on empty space. If the user clicks
on a node, and it is not a text input, clear it.

This fixes a bug on the Google home page, where
the user has typed into the textfield, but then
clicks on "more" and is then unable to click on
Gmail, which is covered by the (invisible)
WebTextView.
/external/webkit/WebKit/android/nav/WebView.cpp
e7a80ff4f39b493179c846068bebe1eb8e9b501e 07-Jul-2009 Cary Clark <cary@android.com> hide the cursor when the link is followed

The cursor position is preserved, so additional trackball
navigation will start from where the cursor ring was drawn
last. Hiding the cursor gets rid of confusion where the
cursor ring stays visible when clicking on a link that
does not go to a new page, or when the new page has a
link at the same physical location as the old page.
/external/webkit/WebKit/android/nav/WebView.cpp
539427bc7572dfd8b28579c67460186406dcb246 02-Jul-2009 Leon Scroggins <scroggo@google.com> In WebTextView, check the focus before sending a key.

This fixes a bug where the DOM has moved the focus, but the WebTextView
is still sending keys to the old focus. Requires a change in
frameworks/base. This part of the change just gives WebView a way
to get a pointer to the currently focused node (regardless of the
cursor).
/external/webkit/WebKit/android/nav/WebView.cpp
3a9f8eaff978cf1a11c725266c852f8d43755539 02-Jul-2009 Derek Sollenberger <djsollen@google.com> added gain/loose focus support for plugins. (focus = eligible to receive user events)
/external/webkit/WebKit/android/nav/WebView.cpp
b65cdee14078ca0fdfd3222d0c19ef266837c72d 01-Jul-2009 Cary Clark <cary@android.com> Update the nav cache when selected elements change or move

This helps superpudu recompute the cursor ring more
frequently when the floating bar moves. It also helps
update the nav cache when navigating during a page load.
/external/webkit/WebKit/android/nav/WebView.cpp
1b973c4067dbc67aa157b2ca800fa22decd00f75 30-Jun-2009 Leon Scroggins <scroggo@google.com> Fix a WebView longpress bug.

Longpressing on a WebView while the WebTextView is up calls
WebTextView::performLongPress(). This used to be fine, but now
we may still leave the WebTextView up while the user is longpressing
on something else. Check to ensure that the focus is the same
as the cursor before calling WebTextView's version. Also,
send a click if the user longpresses on a different WebTextView,
so it will now behave appropriately. Requires a change in
frameworks/base.

Provide a setter on CachedHistory to set the mousebounds, and
set it in selectBestAt, so that getSimulatedMousePosition
uses the correct information. Also edit some comments to refer
to the cursor rather than the focus. In WebView.cpp, use
the delete TypingCommand, making deleting and cutting work
once again.
/external/webkit/WebKit/android/nav/WebView.cpp
5c6846a9fb474dce40db8859579e0d6a3f802787 29-Jun-2009 Derek Sollenberger <djsollen@google.com> Adding support for plugins to request the keyboard.
/external/webkit/WebKit/android/nav/WebView.cpp
b6631b666120e63a9ceee4a77613cf962fa37b1f 26-Jun-2009 Cary Clark <cary@android.com> work in progress to enable plugins to receive arrow keys

Consolidate key handling. Simplify interface between android
and webkit so multiple clients can use common code to pass keys.

Add helper to return if cached node is plugin.

Use WebView::m_clickedOnPlugin to remember active plugins.

Add WebView.MOVE_CURSOR to replay key events the plugin
doesn't want.
/external/webkit/WebKit/android/nav/WebView.cpp
69bc830e96bb6bad9213ac83f746996a1392eee9 26-Jun-2009 Leon Scroggins <scroggo@google.com> Fix a bug where sometimes the cursor was lost.

Create a new function that sets the cursor data to the WebViewCore,
and call it each time we change the cursor. Prior to this change,
by touching on a non-cursored, non-focused textfield, you could
set the cursor on the current CachedRoot without setting the data
on the WebViewCore. Then, when we get a new frame cache, we
check the data on the WebViewCore (which is out of date). Since
it does not think there was a cursor (or it thinks it was somewhere
else), we do not restore the cursor on the new cache. This change
fixes that by ensuring that the cursor information is up to date.
/external/webkit/WebKit/android/nav/WebView.cpp
846dd02baeb22227f22c9fda72e48f6810568c14 24-Jun-2009 Leon Scroggins <scroggo@google.com> Invalidate the full rectangle of the highlight when clearing it.

In drawCursorRing, we potentially use a different value than bounds
for the cursor ring. If we use that other value, also use it for
the invalidation to clear it later.
/external/webkit/WebKit/android/nav/WebView.cpp
0181faa1ffede024c2712df19ae7c855a8cf64e3 24-Jun-2009 Cary Clark <cary@android.com> set trackball click to the edge of the text field, not the middle

Add clicking, key debug statements in WebViewCore.cpp.
Fix dumping nav tree to use NamedNodeMap.
Set click point to be start of text field, end of text area, middle
of others.
Make CachedRoot::getSimulatedMousePosition, callers const
/external/webkit/WebKit/android/nav/WebView.cpp
686f452e43c96f0a3095d2e0c33d44f2862a0461 22-Jun-2009 Cary Clark <cary@android.com> Don't draw focus ring around plugin when clicking on it
/external/webkit/WebKit/android/nav/WebView.cpp
461c3fcad8dc54fa3240dcc0cb8989e690408578 22-Jun-2009 Cary Clark <cary@android.com> rebuild WebView nav cache on trackball move, other bugs

When the WebViewCore picture set is recomputed, check
to see if the trackball has moved since the last time.
If so, rebuild the nav cache even if dom version checking
is disabled.

If there's no focus node ready to receive a key event,
check to see if the cursor is hovering over a plugin, and
give it the event instead.

Update all cursor state in both places it could change.
/external/webkit/WebKit/android/nav/WebView.cpp
36747fa778285f57f2f53c047028be83e9d8776d 18-Jun-2009 Cary Clark <cary@android.com> clean up mouse move events in webview

Generate mouse move event after sending scroll event
Move cursor update in nav cache to UI thread
Remove updating nav cache on mouse move
Remove node parameter from mouse move
Remove plugin focus hack from mouse move
Add interface to get native cursor position
/external/webkit/WebKit/android/nav/WebView.cpp
1729d826cf278fcb3507263d93a01b90a8f88fc6 17-Jun-2009 Cary Clark <cary@android.com> try again to disable webkit fix for gmail

also, set hasCursorBounds only if cursor ring is visible
/external/webkit/WebKit/android/nav/WebView.cpp
90bd422df8e04c486d29c4041acf1c4cf7c3b155 15-Jun-2009 Leon Scroggins <scroggo@google.com> Changes to make the cursor blink at the correct times.

Make the blinking caret active when the user actually starts editing
text. In WebView.cpp, determine whether to disable the blinking
caret and pass that info up to the Java call. Requires a matching
change in frameworks/base. Also add some comments for clarification,
and remove duplicate calling points for functions. Also change
glue for nativeSetFocusControllerActive to reflect its new name/
function.

This change also reflects a behavioral change. If the WebView or
its window lose focus, we do not restore the blinking caret when
focus returns.
/external/webkit/WebKit/android/nav/WebView.cpp
ea94161abd649e3277ff68a7f4ab820c0ba80086 11-Jun-2009 Cary Clark <cary@android.com> rebuild webview nav cache if cursor node changes

Everytime the picture set is rebuilt, the nav cache
is also built if the dom changes. This doesn't catch
javascript that changes locations of objects without
updating the dom. To handle these cases, do a hit-test
on the cursor location and see if it finds the same
node used to build the cursor cache.

This helps track the gmail message floating tool bar.
/external/webkit/WebKit/android/nav/WebView.cpp
c3fe941b7eb7da66bcea91b3513053d2ea60586f 11-Jun-2009 Cary Clark <cary@android.com> more (browser) trackball-is-a-mouse work in progress

WebViewCore.cpp:
Add parameter to CachedRoot::findAt to suppress check for
hidden nodes. This helps find a best match for newly built
nav caches.

Require that the new cursor node closely match the bounds
of the prior cursor node. This may need tuning.

CacheBuilder.cpp:
Remove isInput flag on cached nodes (no longer used)

CachedFrame.cpp:
Add hideCursor to complement clearCursor. Hide prevents
the cursor from drawing but does not move it. Clear removes
it altogether so that the next movement starts from the viewPort
edge.

CachedHistory.cpp:
Don't special case text fields when doing history navigation.
This special casing in part allowed setting the focus to
the homepage input, but since focus is no longer set by nav,
it is not required.

CachedNode.cpp:
Add hideCursor; clean up debugging

CachedRoot.cpp:
Use navBounds from history instead of cursor bounds to
determine next move. Clean up some obsolete code.

WebView.cpp:
Add hideCursor; call it when appropriate.
/external/webkit/WebKit/android/nav/WebView.cpp
a740f021c78c249da2610fecffd646b0cbc95f91 09-Jun-2009 Leon Scroggins <scroggo@google.com> Do not bring up the soft keyboard when clicking on a plugin

Since we have a way to bring up the soft keyboard manually
(holding down the menu key), and trying to bring it up
using our existing call results in a crash, only bring it
up when the click is on a textfield/textarea.
/external/webkit/WebKit/android/nav/WebView.cpp
5f0e3b86680e07e8b7027c4b215a0db0a9dc9d18 08-Jun-2009 Leon Scroggins <scroggo@google.com> Remove obsolete notion of invalid node.

In the old navigation model, we set focus to a node, and checked to see
if that node was still valid (could have changed since we built the
navigation cache). Then we sent a message back to the UI thread to
tell it to draw the ring differently. In the new model, we are essentially
moving a mouse, so we do not concern ourselves with whether the node is
valid. Here I have removed function and jni to call sendMarkNodeInvalid,
the notion of an invalid node in WebView.cpp, and the INVALID flavor
of CursorRing. Needs a change in frameworks/base to work properly.
/external/webkit/WebKit/android/nav/WebView.cpp
4ca8bc94f71466d1109bfbb9ef00da3256a0899b 04-Jun-2009 Cary Clark <cary@android.com> fix cursor movement bugs in browser

Remove obsolete recomputeFocus, old moveCursor code

Make sure focus is !null before using it.
/external/webkit/WebKit/android/nav/WebView.cpp
bc0656f7505db89baea5835febb882daf32f32a6 05-Jun-2009 Leon Scroggins <scroggo@google.com> Update the language from "focus".

Previously, many methods, variables, etc referred to the focus.
Now, they have been changed to refer to the cursor when
appropriate. Some references were changed to the focusCandidate,
since they may apply to either the focus or the cursor, which
is a candidate for focus. Also removed unneeded method
unblockFocus. Will not work without a corresponding
change in frameworks/base.
/external/webkit/WebKit/android/nav/WebView.cpp
bc34c827fb04edf4fb309ff7e0fc4fceb474809e 05-Jun-2009 Mike Reed <reed@google.com> use full pictureset when recording displaytree
/external/webkit/WebKit/android/nav/WebView.cpp
f886bc57020d37942e84b74ff878bdc1498a09c7 03-Jun-2009 Cary Clark <cary@android.com> in browser, return webview node to receive key events

Instead of returning the node that currently has focus,
return the node that the cursor is on if it can handle
key events.
/external/webkit/WebKit/android/nav/WebView.cpp
f4669cac3858848a9247e801b6106aeae6d406e8 03-Jun-2009 Cary Clark <cary@android.com> remove unneeded text parameters from WebView

Add convenience routines to consolidate cache builder
and current focus fetches into one place.

Remove unused functions.

Use wantsKeyEvents attribute where applicable.
/external/webkit/WebKit/android/nav/WebView.cpp
94d36f098e1c65d69568e6fb00124c542e5c7f6f 02-Jun-2009 Leon Scroggins <scroggo@google.com> Rename TextDialog to WebTextView.

This change corresponds to a change in frameworks/base which changes the
name of the TextDialog to WebTextView. It also changed the method updateTextEntry
to rebuildWebTextView. So, the native side needs to call the newly named
method.
/external/webkit/WebKit/android/nav/WebView.cpp
46dfee13b2bec1b39f46c138df565b2207ccbc86 29-May-2009 Cary Clark <cary@android.com> in the browser, make the trackball more like a mouse

Older code treated the trackball as a four way dpad with
equivalents to moving up, down, left and right by generating
arrow key events. This change makes the trackball solely
generate mousemove events.

The old arrow keys in turn were mapped to be as close as
possible to tab-key events that moved the focus. The new
model leaves focus-changes to the DOM.

Clicking the dpad is distinguished from pressing the enter
key to be more compatible with desktop-authored web pages.
/external/webkit/WebKit/android/nav/WebView.cpp
73d131bc28aa2a68fe686ffd9426814448f5da7b 18-May-2009 Cary Clark <cary@android.com> fix browser monkey crash; add null check

http://b/issue?id=1742161
/external/webkit/WebKit/android/nav/WebView.cpp
e59fc8a62ef197e9ffd348aa893358b3bbe066c0 15-May-2009 Cary Clark <cary@android.com> Trackball moves UI focus, but leaves DOM focus unchanged

remove unused commonKitFocus function in WebView

leave recompute focus position for now, but don't
look at node index as a condition to abort fixOutOfDateFocus()
/external/webkit/WebKit/android/nav/WebView.cpp
d48434fc633d173b549b97b1c614072adc9648a8 14-May-2009 Cary Clark <cary@android.com> remove isClick parameter in browser touch event handler

isClick is always set to true by the callers, so remove
it and simplify the code
(http://b/issue?id=1666780; see also change in framework/base)
/external/webkit/WebKit/android/nav/WebView.cpp
cf5ef6c01a2cd27a06391ab9cf3d2c9c24335e4d 13-May-2009 Cary Clark <cary@android.com> use one rectangle for browser focus ring

Check to see if the potentially larger hit-test bounds
can be used in place of the normal bounds, or if the
normal bounds can be used in place of the individual
text bounds.

Construct a region out of the individual focus ring
rectangles, then see if any text is drawn inside the
bounds but outside of the focus ring. If not, use one
rectangle instead of the rings.
/external/webkit/WebKit/android/nav/WebView.cpp
8535e17115184dbb5e448b6364b88eb52df34482 29-Apr-2009 Mike Reed <reed@google.com> share xfermode and color routines with chrome port

Besides sharing those routines in SkiaUtils.cpp, also remove our (now redundant)
android_setrect, etc. calls, since the type-conversion extras we added earlier
take care of this by using constructors.
/external/webkit/WebKit/android/nav/WebView.cpp
1b6b93a1770ab3293721e45886c8c1ae9f914163 22-Apr-2009 Cary Clark <cary@android.com> keep webkit focus in sync with ui cache for text fields

If WebViewCore::sendFinalFocus is called from the UI thread,
postpone calls to WebViewCore::notifyFocusSet until after
the focus is set.

Don't allow WebViewCore::setSelection or
WebViewCore::passToJs to change the webkit
focus.

In WebView::notifyFocusSet, read the cache after it has been
updated.

In WebView::focusIsTextArea and WebView::nativeFindAll,
don't allow the new frame cache to fix the focus.

If CachedFrame::setFocus has already set the focus, don't
recompute its position.

Add/revise debugging.
/external/webkit/WebKit/android/nav/WebView.cpp
4c001335bd76dd29e7a7aef2a1c3fc076a4b9312 30-Mar-2009 Leon Scroggins <> AI 143515: Fix for issue 1730904: Find only searches the first part of large pages. The previous fix, 142939-p9, allowed larger pages to be searched fully, but not with a length larger than a 16 bit number. In change 143089-p9, bitmap's width and height were promoted to 32 bits, so our previous fix is no longer necessary, and prevents larger pages from working. This removes the prior fix.
BUG=1730904

Automated import of CL 143515
/external/webkit/WebKit/android/nav/WebView.cpp
30f71344fb8f892250c0076446399a781b256051 28-Mar-2009 Leon Scroggins <> AI 143340: am: CL 143189 am: CL 142939 Fix for issue 1730904: Find in page only searches the first part of large pages. Cap the width and height of the page so we do not overflow a 16 bit int and think the page is smaller than it is when performing the find.
Original author: scroggo
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143340
/external/webkit/WebKit/android/nav/WebView.cpp
22c08561df8d32fc8c44f0beac60967002e4862f 25-Mar-2009 Cary Clark <> Automated import from //branches/master/...@142298,142298
/external/webkit/WebKit/android/nav/WebView.cpp
8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/external/webkit/WebKit/android/nav/WebView.cpp
648161bb0edfc3d43db63caed5cc5213bc6cb78f 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/external/webkit/WebKit/android/nav/WebView.cpp
cb992f06658b5dfc2075eb12f25b2b69a7482eb4 20-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132569
/external/webkit/WebKit/android/nav/WebView.cpp
11ecc8563736f4aaf10c0ae07d7cb814e4c3fcd5 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/external/webkit/WebKit/android/nav/WebView.cpp
c9c497faa69a20ac6ff0360281f8896e373a79f9 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/external/webkit/WebKit/android/nav/WebView.cpp
498e5e4ad10920a9cfae6fdb7ffb19a6ed936ba7 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/external/webkit/WebKit/android/nav/WebView.cpp
f7e76168422a049a356179665d34ddfb74184920 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
/external/webkit/WebKit/android/nav/WebView.cpp
528e2187562372a650037bc65fc4446ac2ff0772 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
/external/webkit/WebKit/android/nav/WebView.cpp
7a355dabbffb876b2e08cf63ac4fc28a39c19c6a 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/external/webkit/WebKit/android/nav/WebView.cpp
e933faefa1e899dbd5bf371f499cc682aff46c83 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/external/webkit/WebKit/android/nav/WebView.cpp
1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/external/webkit/WebKit/android/nav/WebView.cpp