| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit c7911ffd666a7e73131dfd68919b769086a093e0.
|
|
|
|
| |
This reverts commit 27dd9e051d0960e985cb677bfc1ce20531ac0456.
|
|
|
|
|
|
|
|
|
|
| |
Turn off iframe expansion and record iframes in a composited layer.
Fix navigation by tracking iframe layers if needed. Remove the logic to add
focused nodes to the last tracked layer as it is not needed and might add nodes
to the wrong layer.
Bug: 3219076, 3211666, 3201077, 3194321
Change-Id: Ifc0b83102438255db7e4b62ad260f50ebbdb0e50
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Prevent asking for a sync in GraphicsLayerAndroid if some property has not
changed.
* Remove scrolling logic from LayerAndroid and create a subclass for scrollable
layers.
* Report the scrolling limits to the layer in order to scroll iframes (not
turned on) and to avoid computing them each time the layer is scrolled.
* Change the foreground rect calculations to better match the non-overflow case.
* During hit testing, intersect the hitTestClip with the foreground and
background to prevent false positives in the layer.
* Prepare for iframe scrolling by adding code to trigger compositing for
iframes. This currently works great except for navigation so it disabled for
now.
Bug: 3258631
Change-Id: I0da2d8dbe25376c6aa4f485c9350048c82c6f563
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove PlatformBridge::updateLayers and instead call layersDraw from
ChromeClientAndroid during a requested sync.
Instead of LayerAndroid having knowledge of scrolling pictures, use multiple
layers (background, mask, foreground).
Update navigation to use the new structure. Always record nodes in absolute,
unscrolled coordinates. Do not track layers unless the node has a composited
layer and a last child. Check for composited parents when adding to tracked
layers as well.
TODO:
* developer.android.com doesn't completely work with navigation due to some
nodes being clipped out.
* BaseLayerAndroid needs to be able to operate with a matrix other than
identity.
* nested fixed position elements do not draw correctly.
* nested overflow layers haven't been tested.
Change-Id: I0e2bd37612341e8884d68153ab36194cb2dc1eeb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebCore/Android.v8bindings.mk
http://trac.webkit.org/changeset/71802
WebCore/bindings/v8/V8Proxy.cpp
http://trac.webkit.org/changeset/71735
WebCore/css/CSSParser.cpp
http://trac.webkit.org/changeset/71767
http://trac.webkit.org/changeset/72116 (several APIs purged)
WebCore/loader/ResourceLoader.cpp
http://trac.webkit.org/changeset/71884
WebCore/platform/graphics/MediaPlayer.cpp
http://trac.webkit.org/changeset/72117
WebCore/platform/image-decoders/ImageDecoder.cpp
http://trac.webkit.org/changeset/72130
WebCore/rendering/RenderBlockLineLayout.cpp
http://trac.webkit.org/changeset/72235
WebCore/rendering/RenderView.cpp
http://trac.webkit.org/changeset/71851
Change-Id: If0a3466754b9755c1f4be97bf589f88c48eece0a
|
|
|
|
| |
Change-Id: Ie51f0b4a16da82942bd516dce59cfb79ebbe25fb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebCore/loader/FrameLoader.cpp
http://trac.webkit.org/changeset/70960
http://trac.webkit.org/changeset/70971
WebCore/css/CSSStyleSelector.cpp
http://trac.webkit.org/changeset/71218
WebCore/css/CSSParser.cpp
http://trac.webkit.org/changeset/71218
WebCore/html/HTMLLinkElement.cpp
http://trac.webkit.org/changeset/71159
WebCore/platform/android/PlatformBridge.h
http://trac.webkit.org/changeset/71484
WebCore/platform/android/TemporaryLinkStubs.cpp
http://trac.webkit.org/changeset/71484
WebCore/rendering/RenderTableSection.cpp
http://trac.webkit.org/changeset/71382
http://trac.webkit.org/changeset/71251
WebCore/rendering/RenderLayer.cpp
http://trac.webkit.org/changeset/71536
WebCore/rendering/RenderTable.cpp
http://trac.webkit.org/changeset/71382
WebCore/Android.v8bindings.mk
http://trac.webkit.org/changeset/71515
WebCore/bindings/scripts/CodeGeneratorV8.pm
http://trac.webkit.org/changeset/71227
http://trac.webkit.org/changeset/71230
Change-Id: I3ad8c6bc6e36c90aedebedf915a8614b2c786550
|
|
|
|
| |
Change-Id: Ib345578fa29df7e4bc72b4f00e4a6fddcb754c4c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JavaScriptCore/wtf/Platform.h
http://trac.webkit.org/changeset/70726
WebCore/Android.derived.v8bindings.mk
http://trac.webkit.org/changeset/70854
WebCore/Android.jscbindings.mk
http://trac.webkit.org/changeset/70854
WebCore/Android.mk
http://trac.webkit.org/changeset/70854
WebCore/css/CSSStyleSelector.cpp
http://trac.webkit.org/changeset/70250
WebCore/page/Settings.cpp
http://trac.webkit.org/changeset/70714
WebCore/page/Settings.h
http://trac.webkit.org/changeset/70714
WebCore/rendering/RenderBox.h
http://trac.webkit.org/changeset/70482
http://trac.webkit.org/changeset/70664
http://trac.webkit.org/changeset/70917
Change-Id: I0cdaca316df016c3885a23d42ee2038777b7ccff
|
|
|
|
| |
Change-Id: I77b8645c083b5d0da8dba73ed01d4014aab9848e
|
|
|
|
| |
Change-Id: I6bdb9832bd94017a5f4a894474c30f2cea89d39d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebCore/page/FrameView.cpp
http://trac.webkit.org/changeset/69896
WebCore/html/parser/HTMLDocumentParser.cpp
http://trac.webkit.org/changeset/69283
WebCore/html/HTMLPlugInElement.h
http://trac.webkit.org/changeset/69596
WebCore/html/HTMLInputElement.cpp
http://trac.webkit.org/changeset/68996
http://trac.webkit.org/changeset/69378
WebCore/plugins/npapi.cpp
http://trac.webkit.org/changeset/69808
WebCore/css/CSSComputedStyleDeclaration.cpp
http://trac.webkit.org/changeset/69220
WebCore/css/CSSParser.cpp
http://trac.webkit.org/changeset/69196
WebCore/rendering/style/RenderStyle.h
http://trac.webkit.org/changeset/68680
WebCore/rendering/RenderImage.cpp
http://trac.webkit.org/changeset/68917
WebCore/platform/android/FileSystemAndroid.cpp
http://trac.webkit.org/changeset/69594
WebCore/inspector/InspectorController.h
http://trac.webkit.org/changeset/68767
See also Android change I4c724f2f52a5a9db6dca6b58032b6a902aac74b5 which
is why this is a conflict.
JavaScriptCore/parser/Parser.cpp
http://trac.webkit.org/changeset/69516
Change-Id: I5a708c6590ba029a2b3ecc3b30478ea303e1f2f5
|
|
|
|
| |
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
|
|
|
|
|
|
|
|
|
| |
The overflow layer clip was in the wrong location and caused some blank areas on
developer.android.com. Only scroll layers if they have overflow scrolling so
that image search draws correctly.
Bug: 3027644, 3022562
Change-Id: Iff4b27b9fd860e9d89286034c9ae82f76b1371c2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed m_minPrefWidth and m_maxPrefWidth to m_minPreferredLogicalWidth
and m_maxPreferredLogicalWidth in this CL:
http://trac.webkit.org/changeset/68276/trunk/WebCore/rendering/RenderBox.h
This changed containerWidth to containerLogicalWidth
http://trac.webkit.org/changeset/68362/trunk/WebCore/rendering/RenderBox.cpp
Also changed calcReplacedWidthUsing to computeReplacedWidthUsing here:
http://trac.webkit.org/changeset/68239/trunk/WebCore/rendering/RenderBox.h
Change-Id: I8eb912128aa5e09f55f4495671209cb8ca2ba3f0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ChromeClient.h:
Conflict due to ANDROID_INSTALLABLE_WEB_APPS
http://trac.webkit.org/changeset/68031/trunk/WebCore/page/ChromeClient.h
CSSParser.cpp:
Conflict due to ANDROID_INSTRUMENT
http://trac.webkit.org/changeset/68521/trunk/WebCore/css/CSSParser.cpp
Node.cpp:
Conflict due to ANDROID_DOM_LOGGING
http://trac.webkit.org/changeset/68541/trunk/WebCore/dom/Node.cpp
npapi.h:
Conflicts due to various #ifdef ANDROID
http://trac.webkit.org/changeset/68390/trunk/WebCore/bridge/npapi.h
PlatformTouchEvent.h:
PlatformTouchEventAndroid.cpp:
PlatformTouchPoint.h:
Conflicts due to new BREWMP code next to changed Android code
Initial webkit CL:
http://trac.webkit.org/changeset/68499
Later fix after merge revision, so cherry-picked:
http://trac.webkit.org/changeset/69034
RenderBox.cpp:
Several changes, conflicts due to ANDROID_LAYOUT
http://trac.webkit.org/changeset/68238#file2
http://trac.webkit.org/changeset/68239#file3
http://trac.webkit.org/changeset/68362/trunk/WebCore/rendering/RenderBox.cpp
The correct resolution here is unclear. A closer investiagtion by somebdoy
more familiar with the code is tracked with b/3071198
RenderBox.h:
Conflicts due to ANDROID_LAYOUT
http://trac.webkit.org/changeset/68417/trunk/WebCore/rendering/RenderBox.h
RenderIFrame.cpp:
Conflicts due to ANDROID_FLATTEN_IFRAME
http://trac.webkit.org/changeset/68238/trunk/WebCore/rendering/RenderIFrame.cpp
RenderTable.cpp:
Conflicts due to ANDROID_LAYOUT
http://trac.webkit.org/changeset/68427/trunk/WebCore/rendering/RenderTable.cpp
RenderView.cpp:
Conflicts due to ANDROID_LAYOUT
http://trac.webkit.org/changeset/68436/trunk/WebCore/rendering/RenderView.cpp
Settings.cpp:
Settings.h:
Conflicts due to ANDROID_PLUGINS and WEB_AUTOFILL
http://trac.webkit.org/changeset/68166
Widget.cpp:
http://trac.webkit.org/changeset/68054/trunk/WebCore/platform/Widget.cpp
Change-Id: I156f537ae0483b89e4c6b9fce0e7b2f931f957a2
|
|
|
|
| |
Change-Id: I3d6bff59f17eedd6722723354f386fec9be8ad12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whitespace difference in config.h - http://trac.webkit.org/changeset/67323
- WebCore/config.h
Conflict due to ANDROID_LAYOUT - http://trac.webkit.org/changeset/67882
- WebCore/css/CSSComputedStyleDeclaration.cpp
Conflict due to ANDROID_INSTRUMENT - http://trac.webkit.org/changeset/67704
- WebCore/css/CSSParser.cpp
Conflict due to ANDROID_CSS_RING - http://trac.webkit.org/changeset/67667
- WebCore/css/CSSParser.cpp
- WebCore/css/CSSStyleSelector.cpp
Conflict due to axObjectCache - http://trac.webkit.org/changeset/67292
- WebCore/dom/Document.cpp
Conflict due to ANDROID_ACCEPT_CHANGES_TO_FOCUSED_TEXTFIELDS - http://trac.webkit.org/changeset/67903
- WebCore/html/HTMLInputElement.cpp
Conflict due to ARCHIVE - http://trac.webkit.org/changeset/67198
- WebCore/loader/DocumentLoader.cpp
- WebCore/loader/FrameLoader.cpp
Conflict due to ARCHIVE - http://trac.webkit.org/changeset/67253
- WebCore/loader/FrameLoader.cpp
Conflict due to actualWidth() vs width() - http://trac.webkit.org/changeset/67762
- WebCore/page/DOMWindow.cpp
Conflict due to ANDROID_PLUGINS - http://trac.webkit.org/changeset/67890
- WebCore/page/Settings.cpp
- WebCore/page/Settings.h
Conflict due to Android MIME types - http://trac.webkit.org/changeset/67375
- WebCore/platform/MIMETypeRegistry.cpp
Android fix in PluginView no longer needed after http://trac.webkit.org/changeset/67325
- WebCore/plugins/PluginView.cpp
Conflict due to ANDROID_FLATTEN_IFRAME and ANDROID_FLATTEN_FRAMESET - http://trac.webkit.org/changeset/67660
- WebCore/rendering/RenderBlockLineLayout.cpp
Conflict due to ANDROID_LAYOUT - http://trac.webkit.org/changeset/67660
- WebCore/rendering/RenderBox.h
- WebCore/rendering/RenderTable.cpp
Android fix in RenderTableCell no longer needed after http://trac.webkit.org/changeset/67862
- WebCore/rendering/RenderTableCell.cpp
Conflict due to ANDROID_CSS_RING - http://trac.webkit.org/changeset/67889 and http://trac.webkit.org/changeset/67667
- WebCore/rendering/style/RenderStyle.h
Change-Id: Ie36bd7de6d89a1f873c91984048f2507cabd864c
fix conflicts
Change-Id: I3acaba9492f6f39869e69fa24270cefbb74ba673
|
|
|
|
| |
Change-Id: I43a553e7b3299b28cb6ee8aa035ed70fe342b972
|
|
|
|
| |
Change-Id: I57e01163b6866cb029cdadf405a0394a3918bc18
|
|
|
|
| |
Change-Id: I57dedeb49859adc9c539e760f0e749768c66626f
|
|
|
|
| |
Change-Id: Ie2e1440fb9d487d24e52c247342c076fecaecac7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change removes the last occurrences of ANDROID_HITTEST_WITHSIZE
and updates WebKit to use the upstream version of this logic. This
follows on from https://android-git.corp.google.com/g/#change,60166 which
merged the upstream logic into the Android tree but maintained the existing
behaviour for Android, guarded with ANDROID_HITTEST_WITHSIZE.
This change introduces the following functional changes ...
- HitTestResult::addNodeToRectBasedTestResult()
The Android version proceeded with the containment test if the node is null.
We now early out and continue the hit test. We also record the node's
shadowAncestorNode, rather than the node itself.
- RenderLayer::hitTestList()
The android version always updates the result, but only updates the
result layer if the result is not a rect based result.
We now always update result layer, but only update the result if the
result is not a rect based result.
- RenderSVGRoot::nodeAtPoint()
The Android version returned true only if it's not a rect based hit test.
Now we return true always.
- HitTestResult::m_isRectBased
In the Android version, a padding must have positive width and height.
Now we allow one of the two to be zero, provided the other is positive
All other changes are non-functional and should probably have been done as
part of https://android-git.corp.google.com/g/#change,60166
Note that the change to RenderBlock::nodeAtPoint() is a non-functional change
because we don't pass a rect to addNodeToRectBasedTestResult(), so the default
zero rect is used and the hit test always fails.
Change-Id: I4163fddad59ad6485df40cd48794aa262f76ced7
|
|
|
|
| |
Change-Id: Ifbf384f4531e3b58475a662e38195c2d9152ae79
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows web pages to have fine-grain control over the appearance
of the rings drawn around nodes.
Generated links (email, addresses, phone numbers) are no longer
given unique colors. To preserve this feature, a separate change
could add an HTML extension similar to vlink to provide the cursor
ring defintions for theses links. The mechanism implemented below
isn't appropriate since these links don't necessarily correspond to
single DOM nodes or other DOM elements.
------------
CSS examples
------------
The CSS to specify the ring looks like:
-webkit-ring-fill-color:rgba(0,0,255,0.4);
-webkit-ring-inner-width:2 px;
-webkit-ring-outer-width:3.5 px;
-webkit-ring-outset: 8 px;
-webkit-ring-pressed-inner-color:rgba(0,0,255,0.8);
-webkit-ring-pressed-outer-color:rgba(0,0,127,0.3);
-webkit-ring-radius: 10 px;
-webkit-ring-selected-inner-color:rgba(63,63,255,0.8);
-webkit-ring-selected-outer-color:rgba(63,63,127,0.3);
and may be alternately defined with a property shortcut:
-webkit-ring:rgba(255,0,0,0.4) 5px 7px
rgba(255,0,0,0.8) rgba(127,0,0,0.3) 20px
rgba(255,63,63,0.8) rgba(127,63,63,0.3);
--------------------
Property definitions
--------------------
A vertical cross-section of the ring corresponds to these
parameters as shown:
______
R / ___O_ R = corner radius
/ / __I_ o I = inner ring
/ / / _O_ ^ O = outer ring
| | | / F | F = fill
|O|I|O| L o = outset
| | | \_F_ | L = original link
\ \ \__O_ V
\ \___I_ o
R \____O_
The fill color specifies what to draw inside the ring
when the link is followed. The fill area consists of the
original link area plus the outset.
The inner and outer widths specify the stoke width of the inner
and outer rings, respectively. The widths may be specified in
fractional pixels. The implementation captures 4 bits of the
fraction.
The outset specifies the distance from the edge of the original
link to the rings' center. Both rings are drawn at the same center
location.
The radius specifies the curvature of the corners at the center
of the rings.
-------------
Data lifetime
-------------
The selected colors specify the colors of the inner and outer
rings when the trackball or D-pad hovers over the link. The
pressed colors specify the colors of the rings when the
trackball center is pressed or the link is tapped.
The CSS data is recorded in the RenderStyle when the DOM
is parsed. The widths are scaled up by 16 to preserve the fraction.
When the nav cache is built, the CSS style information is
recorded in the CachedColor class. Only unique style sets
are recorded; many CachedNode instances can share the same
CachedColor instance.
When the cursor ring is drawn, the CachedColor is
retrieved by getting the index from the CachedNode, and
looking up the entry in the CachedFrame. The widths are
scaled down by 16 since Lengths are stored by the webkit as
integers.
----------
File Edits
----------
WebCore/Android.derived.mk
- Build the CSS data property tables by concatentating
Android specific data and optionally SVG data.
WebCore/config.h
- Add switch for these rings. This switch is meant
as a convenience for finding the code in WebKit
that was added to enable this feature. Since the
old code in DrawCursor has been removed, it does
not revert to the old behavior if the switch is
turned off.
WebCore/css/AndroidCSSPropertyNames.in
- The new ring properties, plus an old one we
added before.
WebCore/css/CSSComputedStyleDeclaration.cpp
WebCore/css/CSSMutableStyleDeclaration.cpp
WebCore/css/CSSParser.cpp
WebCore/css/CSSStyleSelector.cpp
- I can guess what these functions are for as
well as anyone, but I really don't know. Do
I need all of them? Do I need to modify
Mutable at all?
WebCore/css/CSSPropertyNames.in
- Moved Android addition to AndroidCSSPropertyNames.in
WebCore/platform/graphics/Color.h
- Added initial color values here.
WebCore/platform/graphics/android/android_graphics.*
- This draws the cursor ring. The code that draws
'synthetic' links has been discarded.
WebCore/rendering/style/RenderStyle.h
- Functions to get, set, and initialize the style
data.
WebCore/rendering/style/StyleRareInheritedData.*
- The storage for the style data and an equivalence
function.
WebKit/Android.mk
- Added CachedColor to the build.
WebKit/android/nav/CacheBuilder.cpp
- Record the color from the DOM into the cache.
WebKit/android/nav/CachedColor.*
- Store the cached color info.
WebKit/android/nav/CachedFrame.*
- Where the array of colors is stored.
WebKit/android/nav/CachedNode.*
- Where the index to the colors is stored.
Change-Id: Ia3a931f41d6545e47678e245aafe7c84d4658f94
http://b/2603197
|
|
|
|
|
| |
Bug: 2928878, 2928899
Change-Id: I90ca6f93a61c921b520731e6a143e5b4457fa44c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the foreground clip after drawing. Use the absolute bounds to
compute the local foreground clip in order to compensate for any
outline.
Consolidate the check for overflow scrolling into RenderLayer.
Request a compositing update after computing the scroll dimensions.
Only change the foregroundRect of the layer during paint so that the
outline rect (and background/layerBounds) are correct.
Draw the outline as part of the background phase. During painting of
a layer, scroll to (0,0), paint, then scroll back.
When clicking on an element in a layer, scroll to the position of the
element but do not scroll back. This makes text input fields visible
to the tree and will properly update when typing. Record the original
scroll position of layers in order to offset the bounds of nodes when
checking the nav cache. Make sure to reset all cached layers during
setRootLayer. Otherwise we were reaching into layers from the wrong
thread.
Change-Id: Id9827ec461989b0869a8252d4d2563ecd12c5fac
|
|
|
|
| |
Change-Id: Ibcf418498376b2660aacb7f8d46ea7085ef91585
|
|
|
|
|
|
| |
See http://trac.webkit.org/changeset/64732
Change-Id: I5fe2041764991c6c621bb634df1ed4bcb896f7eb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- WebCore/Android.mk
Conflict due to error introduced upstream.
See http://trac.webkit.org/changeset/64344/trunk/WebCore/Android.mk
and http://trac.webkit.org/changeset/60228/trunk/WebCore/Android.mk
- WebCore/html/HTMLFrameSetElement.cpp
Conflict due to ANDROID_FLATTEN_FRAMESET
See http://trac.webkit.org/changeset/64383
- WebCore/page/Navigator.h
Conflict due to APPLICATION_INSTALLED
See http://trac.webkit.org/changeset/64371
- WebCore/rendering/SVGResourcesCycleSolver.cpp
Conflict due to local ENABLE(FILTERS) guard
See http://trac.webkit.org/changeset/64440
Change-Id: Ibafe3b92117c3a7b3eaaa44c6cf3d04c8c6027c2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A modified version of this Android-specific code was upstreamed in
http://trac.webkit.org/changeset/64272
For the most part, the differences between the Android and upstreamed
versions are syntactic only. In these cases, we take the upstream
version.
In a small number of cases, logical changes exist. In these cases, the
Android logic has been retained, guarded with ANDROID_HITTEST_WITHSIZE,
but using the new syntax.
In particular ...
- Android's HitTestResult::intersects(x, y, rect) is logically equivalent
to the uspstream IntRect::intersects(HitTestPoint::rectFromPoint(x, y))).
- Android's HitTestResult::addRawNode() is logically equivalent to the
upstream HitTestResult::m_rectBasedTestResult.add().
- Android's HitTestResult::isRegionTest() is slightly different from the
upstream HitTestResult::isRectBasedTest(). The latter is modified with
a new ANDROID_HITTEST_WITHSIZE guard in HitTestResult::HitTestResult()
to maintain the same behaviour.
- The upstreamed code uses
HitTestResult::addNodeToRectBasedTestResult() as a helper method in
place of inline logic in the Android version. The slight difference
in behaviour between this helper and the Android logic is reflected in
the new ANDROID_HITTEST_WITHSIZE guard in the helper.
This change should introduce no change in behaviour.
Change-Id: I974d68e3ac963f18334418e32b08c3fd9ab1182e
|
|
|
|
| |
Change-Id: Ibb796c6802e757b1d9b40f58205cfbe4da95fcd4
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#change,59749
Change-Id: I0ea44ef95fcd8035adc27a32fb75e7c19f23c975
|
|
|
|
|
|
|
|
|
|
|
| |
Introduced here: http://trac.webkit.org/changeset/64196/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp
Partially upstreamed as the file has changed upstream after the merge, and the newer version doesn't have both places where guards were needed.
Upstream bug: https://bugs.webkit.org/show_bug.cgi?id=43338
Upstream CL: http://trac.webkit.org/changeset/64465/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp
Upstream change after merge where we have guards: http://trac.webkit.org/changeset/64440/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp
Change-Id: Iaab4595ded78485c81d6f61a726a5bd0f48c5621
|
|
|
|
|
|
| |
http://trac.webkit.org/changeset/63994/trunk/WebCore/rendering/RenderTableSection.h
Change-Id: I52787b9723791822d9c95ef52d7a81c23c2aeca7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tracs of the changes:
WebCore/html/HTMLDocumentParser.cpp
http://trac.webkit.org/changeset/63998/trunk/WebCore/html/HTMLDocumentParser.cpp
WebCore/page/EventHandler.cpp
WebCore/page/EventHandler.h
http://trac.webkit.org/changeset/63888
WebCore/page/Page.cpp
http://trac.webkit.org/changeset/64208
WebCore/page/Settings.cpp
WebCore/page/Settings.h
http://trac.webkit.org/changeset/64110
WebCore/rendering/RenderLayerCompositor.h
http://trac.webkit.org/changeset/64054/trunk/WebCore/rendering/RenderLayerCompositor.h
WebCore/rendering/RenderTableSection.cpp
http://trac.webkit.org/changeset/63994/trunk/WebCore/rendering/RenderTableSection.cpp
WebCore/rendering/break_lines.cpp
http://trac.webkit.org/changeset/64207
Change-Id: I34167b43899ee5066e33b40867cd569ce53f9207
|
|
|
|
| |
Change-Id: Ic42bef02efef8217a0f84c47176a9c617c28d1f1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EventHandler:
* Added IgnoreClipping in order to touch nodes that are clipped
out.
android_graphics:
* Remember the absolute bounds of the node for invals.
RenderBox:
* Fix a compiler warning.
RenderLayer:
* Do not record the entire layer contents unless the scroll
dimensions are larger than the client dimensions.
* Change isSelfPaintingLayer to check for an overflow clip
instead of the scrollable dimensions since it can be too
early to check at this point.
RenderLayerCompositor:
* Same as RenderLayer for checking the overflow clip.
WebViewCore:
* Scroll the containing layer to the node bounds and offset the
mouse position if scrolled. Once the mouse event is processed,
restore the layer to 0,0.
CacheBuilder:
* The body position is no longer used.
* Do not clip out nodes if the layer is scrollable.
CachedFrame:
* Add unadjustBounds to restore adjusted bounds to their original
position (fixed position elements).
* Call unadjustBounds when a node has been found. This new set of
bounds is passed over to WebViewCore to handle clicks.
* Reject empty node bounds.
CachedLayer:
* Document adjustBounds and add unadjustBounds. Add in the scroll
position to the node bounds.
CachedRoot:
* Unadjust the mouse bounds.
WebView:
* Unadjust the mouse bounds and use the absolute bounds of the ring
during inval.
Bug: 1566791
Change-Id: Ia55f2cbb61869087176d3ff61882e40324614c6a
|
|
|
|
| |
This reverts commit 0ed6485271097ecf1b4cf4e790f9cfdbb57d921c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows web pages to have fine-grain control over the appearance
of the rings drawn around nodes.
Generated links (email, addresses, phone numbers) are no longer
given unique colors. To preserve this feature, a separate change
could add an HTML extension similar to vlink to provide the cursor
ring defintions for theses links. The mechanism implemented below
isn't appropriate since these links don't necessarily correspond to
single DOM nodes or other DOM elements.
------------
CSS examples
------------
The CSS to specify the ring looks like:
-webkit-ring-fill-color:rgba(0,0,255,0.4);
-webkit-ring-inner-width:2 px;
-webkit-ring-outer-width:3.5 px;
-webkit-ring-outset: 8 px;
-webkit-ring-pressed-inner-color:rgba(0,0,255,0.8);
-webkit-ring-pressed-outer-color:rgba(0,0,127,0.3);
-webkit-ring-radius: 10 px;
-webkit-ring-selected-inner-color:rgba(63,63,255,0.8);
-webkit-ring-selected-outer-color:rgba(63,63,127,0.3);
and may be alternately defined with a property shortcut:
-webkit-ring:rgba(255,0,0,0.4) 5px 7px
rgba(255,0,0,0.8) rgba(127,0,0,0.3) 20px
rgba(255,63,63,0.8) rgba(127,63,63,0.3);
--------------------
Property definitions
--------------------
A vertical cross-section of the ring corresponds to these
parameters as shown:
______
R / ___O_ R = corner radius
/ / __I_ o I = inner ring
/ / / _O_ ^ O = outer ring
| | | / F | F = fill
|O|I|O| L o = outset
| | | \_F_ | L = original link
\ \ \__O_ V
\ \___I_ o
R \____O_
The fill color specifies what to draw inside the ring
when the link is followed. The fill area consists of the
original link area the outset.
The inner and outer widths specify the stoke width of the inner
and outer rings, respectively. The widths may be specified in
fractional pixels. The implementation captures 4 bits of the
fraction.
The outset specifies the distance from the edge of the original
link to the rings' center. Both rings are drawn at the same center
location.
The radius specifies the curvature of the corners at the center
of the rings.
-------------
Data lifetime
-------------
The selected colors specify the colors of the inner and outer
rings when the trackball or D-pad hovers over the link. The
pressed colors specify the colors of the rings when the
trackball center is pressed or the link is tapped.
The CSS data is recorded in the RenderStyle when the DOM
is parsed. The widths are scaled up by 16 to preserve the fraction.
When the nav cache is built, the CSS style information is
recorded in the CachedColor class. Only unique style sets
are recorded; many CachedNode instances can share the same
CachedColor instance.
When the cursor ring is drawn, the CachedColor is
retrieved by getting the index from the CachedNode, and
looking up the entry in the CachedFrame. The widths are
scaled down by 16 since Lengths are stored by the webkit as
integers.
----------
File Edits
----------
WebCore/Android.derived.mk
- Build the CSS data property tables by concatentating
Android specific data and optionally SVG data.
WebCore/config.h
- Add switch for these rings. This switch is meant
as a convenience for finding the code in WebKit
that was added to enable this feature. Since the
old code in DrawCursor has been removed, it does
not revert to the old behavior if the switch is
turned off.
WebCore/css/AndroidCSSPropertyNames.in
- The new ring properties, plus an old one we
added before.
WebCore/css/CSSComputedStyleDeclaration.cpp
WebCore/css/CSSMutableStyleDeclaration.cpp
WebCore/css/CSSParser.cpp
WebCore/css/CSSStyleSelector.cpp
- I can guess what these functions are for as
well as anyone, but I really don't know. Do
I need all of them? Do I need to modify
Mutable at all?
WebCore/css/CSSPropertyNames.in
- Moved Android addition to AndroidCSSPropertyNames.in
WebCore/platform/graphics/Color.h
- Added initial color values here.
WebCore/platform/graphics/android/android_graphics.*
- This draws the cursor ring. The code that draws
'synthetic' links has been discarded.
WebCore/rendering/style/RenderStyle.h
- Functions to get, set, and initialize the style
data.
WebCore/rendering/style/StyleRareInheritedData.*
- The storage for the style data and an equivalence
function.
WebKit/Android.mk
- Added CachedColor to the build.
WebKit/android/nav/CacheBuilder.cpp
- Record the color from the DOM into the cache.
WebKit/android/nav/CachedColor.*
- Store the cached color info.
WebKit/android/nav/CachedFrame.*
- Where the array of colors is stored.
WebKit/android/nav/CachedNode.*
- Where the index to the colors is stored.
Change-Id: Ia3a931f41d6545e47678e245aafe7c84d4658f94
http://b/2603197
|
|
|
|
|
|
| |
This is a cherry pick of http://trac.webkit.org/changeset/64007 to fix the build.
Change-Id: Ic86639eb7dbcd09f0273f614537354bfa7fd369d
|
|
|
|
| |
Change-Id: Ie8096c63ec7c991c9a9cba8bdd9c3b74a3b8ed62
|
|
|
|
|
| |
issue: 2870827
Change-Id: I49f9a83fd7cd79100d7d8b0833db7d9f03c7e4f8
|
|
|
|
|
| |
Bug: 2862822
Change-Id: I9de300517eaa2bd4027608d6bae093bf5a1072e0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Force a composite layer when the style says the content is scrollable.
Record the border and background in the main content picture. When
the contents of the layer are bigger than the size, record the
foreground contents in a separate picture which is clipped by the
border and size.
When updating the base layer, remember the scroll position of each
layer and update the new layer with the same position.
Bug: 1566791
Change-Id: If440e4f215db6bda9df32a781d754d1f5a238162
|
|
|
|
| |
Change-Id: Ife5af0c7c6261fbbc8ae6bc08c390efa9ef10b44
|
|
|
|
|
|
|
|
|
|
|
| |
The site is not reflowed, because for some RenderBlock, the m_visibleWidth
is set twice before layout; the current logic will think the visibleWidth
is not changed, hence no relayout children and no reflow.
The logic is refactored to to make it modularlized.
issue: 2741016
Change-Id: I1f433e263add974c0981c332ad4ea092ddb395e0
|
|
|
|
| |
Change-Id: Ie3da0770eca22a70a632e3571f31cfabc80facb2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the visibleContentRect for iframe. It should be
relative to its parent instead of the viewport.
For fixed position, we still check for the top frame
as the current logic positions the object relative to
the screen which only applied to the top frame.
For plugin, it depends on PluginWidget's platformLayer().
The default is 0.
For video, it depends on MediaPlayer's supportsAcceleratedRendering().
The default is false.
Fix the crash in the GraphicsLayerAndroid. The root
layer is a container layer, there is no need to draw
them. As LayerAndroid doesn't create Picture for them,
we should ensure to skip draw.
Fix http://b/issue?id=2733947
|