History log of /external/webkit/WebKit/android/nav/FindCanvas.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c56ff1d44fa7696740af78fd29ca3d1a2c99230f 31-Mar-2010 Ben Murdoch <benm@google.com> If there is no find location then return early in findNext.

Fix b/2558960

Change-Id: I1cc723913ab1e3eccb21eb60ab2fe2a458eb420c
/external/webkit/WebKit/android/nav/FindCanvas.cpp
782baf4eeaee6dd4d221ed4e42567390fbca9486 11-Mar-2010 Leon Scroggins <scroggo@google.com> Outset the rectangle containing the match after checking the clip.

When considering whether a match is contained by the current clip,
do not outset it first. Check to see if it is contained by the
clip, and then add the outset so the drawn rectangle is larger.

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

Change-Id: I900d92432d412396e8c5b9e9e341085656ed0a2f
/external/webkit/WebKit/android/nav/FindCanvas.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/FindCanvas.cpp
c657c686e52dc255b3967ab8744c2e9cde4a16de 05-Mar-2010 Cary Clark <cary@android.com> fixes with find drawing in layers

Clipping the match picture before drawing prevents layer
pictures from drawing outside of their intended bounds.

Rearranging the layer picture draw call causes it to restore
the canvas matrix, which causes extras like finds and cursor
rings to draw correctly.

Also, added more layer debugging, and a function to show
layer state in the console window.

http://b/2488516
http://b/2488509
/external/webkit/WebKit/android/nav/FindCanvas.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/FindCanvas.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/FindCanvas.cpp
4c319d7f42caf55d18590789400692ea9d6109c1 21-Feb-2010 Cary Clark <cary@android.com> 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.
/external/webkit/WebKit/android/nav/FindCanvas.cpp
41ca040d7db923a179953baf91f30d539df6b055 17-Feb-2010 Cary Clark <cary@android.com> 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
/external/webkit/WebKit/android/nav/FindCanvas.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/FindCanvas.cpp
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/FindCanvas.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/FindCanvas.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/FindCanvas.cpp
a65af38181ac7d34544586bdb5cd004de93897ad 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/external/webkit/WebKit/android/nav/FindCanvas.cpp
6e5759672a7dacb80348e82ef9e14aa0b3722364 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/external/webkit/WebKit/android/nav/FindCanvas.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/FindCanvas.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/FindCanvas.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/FindCanvas.cpp