RESOLVED FIXED 48544
support -webkit-tap-highlight-color
https://bugs.webkit.org/show_bug.cgi?id=48544
Summary support -webkit-tap-highlight-color
Tiancheng Jiang
Reported 2010-10-28 11:56:01 PDT
We should apply -webkit-tap-highlight-color to allow the web developers to change the tap highlight color to fit their website.
Attachments
add -webkit-tap-highlight-color feature with virtual function allow different platform to choose default color (14.18 KB, patch)
2010-10-28 11:57 PDT, Tiancheng Jiang
no flags
patch candidate (13.81 KB, patch)
2011-09-05 06:36 PDT, Johnny(Jianning) Ding
no flags
patch v1 (13.81 KB, patch)
2011-09-09 03:50 PDT, Johnny(Jianning) Ding
sam: review-
patch V2 (13.43 KB, patch)
2011-09-15 00:14 PDT, Johnny(Jianning) Ding
no flags
patch V2 (13.47 KB, patch)
2011-09-15 00:28 PDT, Johnny(Jianning) Ding
no flags
patch v2 (17.17 KB, patch)
2011-09-15 01:02 PDT, Johnny(Jianning) Ding
no flags
latest patch v2 (17.65 KB, patch)
2011-09-27 08:03 PDT, Johnny(Jianning) Ding
no flags
patch v3 (17.60 KB, patch)
2011-09-28 08:06 PDT, Johnny(Jianning) Ding
webkit-ews: commit-queue-
patch v3 to make ews happy (17.60 KB, patch)
2011-09-28 19:43 PDT, Johnny(Jianning) Ding
kenneth: review+
webkit.review.bot: commit-queue-
patch v3 to fix reported broken tests (20.19 KB, patch)
2011-09-30 13:21 PDT, Johnny(Jianning) Ding
no flags
patch to clean test expectation (1.63 KB, patch)
2011-10-09 04:34 PDT, Johnny(Jianning) Ding
no flags
Tiancheng Jiang
Comment 1 2010-10-28 11:57:09 PDT
Created attachment 72217 [details] add -webkit-tap-highlight-color feature with virtual function allow different platform to choose default color
WebKit Review Bot
Comment 2 2010-10-28 12:02:16 PDT
Attachment 72217 [details] did not pass style-queue: Failed to run "['WebKitTools/Scripts/check-webkit-style']" exit_code: 1 WebCore/css/CSSParser.cpp:1617: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] WebCore/css/CSSParser.cpp:1619: Should have a space between // and comment [whitespace/comments] [4] WebCore/rendering/RenderTheme.h:149: Tab found; better to use spaces [whitespace/tab] [1] WebCore/rendering/style/RenderStyle.cpp:32: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 4 in 13 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 3 2010-10-28 12:59:26 PDT
Johnny(Jianning) Ding
Comment 4 2011-09-01 05:12:36 PDT
I am interested in this bug. @Tiancheng, will you continue working on this?
Tiancheng Jiang
Comment 5 2011-09-01 07:38:05 PDT
Maybe not recently. Feel free to work on it. And I think someone is working on this as well, especially for iOS. There is a bug number but I forget the number, sorry. (In reply to comment #4) > I am interested in this bug. > > @Tiancheng, will you continue working on this?
Simon Fraser (smfr)
Comment 6 2011-09-01 11:21:31 PDT
Comment on attachment 72217 [details] add -webkit-tap-highlight-color feature with virtual function allow different platform to choose default color I think this should be #ifdeffed to avoid using extra memory on platforms for which the notion of tap highlight does not apply.
Johnny(Jianning) Ding
Comment 7 2011-09-01 16:59:31 PDT
(In reply to comment #5) > Maybe not recently. Feel free to work on it. And I think someone is working on this as well, especially for iOS. There is a bug number but I forget the number, sorry. > Thanks Tiancheng! After searching existing webkit bugs, I haven't found related on going bug. But the "-webkit-tap-highlight-color" is already supported by Safari only on IOS as a extension, but it's good to make it supported on other platforms
Johnny(Jianning) Ding
Comment 8 2011-09-01 17:22:31 PDT
(In reply to comment #6) > (From update of attachment 72217 [details]) > I think this should be #ifdeffed to avoid using extra memory on platforms for which the notion of tap highlight does not apply. Good point, Thanks Simon!. For using ifdef, The first thing came to my mind is to use OS() macros since it can distinguish whether the device platforms is for desktop or portable if we only want to support this feature on portable devices which support touch panel. But since there may be more OS marcos for the portable platforms w/ touch panel. I guess it may be better to use ENABLE(TOUCH_EVENTS) to control it. Sounds good? (Or another ENABLE macro?)
Johnny(Jianning) Ding
Comment 9 2011-09-05 06:36:14 PDT
Created attachment 106332 [details] patch candidate This patch is based on tiancheng's patch, only enables the tap-highlight property when enabling touch event. Also adds a layout test draft. I want to get some early feedbacks before sending for review. Thanks.
Johnny(Jianning) Ding
Comment 10 2011-09-09 03:50:05 PDT
Created attachment 106856 [details] patch v1
Johnny(Jianning) Ding
Comment 11 2011-09-13 20:50:01 PDT
Can someone take a look and give comments? Thanks.
Sam Weinig
Comment 12 2011-09-14 12:12:15 PDT
Comment on attachment 106856 [details] patch v1 View in context: https://bugs.webkit.org/attachment.cgi?id=106856&action=review > Source/WebCore/platform/graphics/Color.h:166 > + static const RGBA32 tapHighlight = 0x33000000; This doesn't seem like a great place for this to go. It seems like it should just be in RenderTheme.
Johnny(Jianning) Ding
Comment 13 2011-09-15 00:14:26 PDT
Created attachment 107468 [details] patch V2 (In reply to comment #12) > This doesn't seem like a great place for this to go. It seems like it should just be in RenderTheme. done.
Johnny(Jianning) Ding
Comment 14 2011-09-15 00:28:28 PDT
Created attachment 107469 [details] patch V2
Johnny(Jianning) Ding
Comment 15 2011-09-15 01:02:34 PDT
Created attachment 107474 [details] patch v2 upload latest patch v2 to add missing layout test files.
Antonio Gomes
Comment 16 2011-09-26 13:08:48 PDT
(In reply to comment #15) > Created an attachment (id=107474) [details] > patch v2 > > upload latest patch v2 to add missing layout test files. Could you re upload a patch that applies to trunk? Also Tiancheng's work was based on some code in iphone's release tarball. Maybe it should be mentioned as well.
Johnny(Jianning) Ding
Comment 17 2011-09-27 08:03:27 PDT
Created attachment 108849 [details] latest patch v2 (In reply to comment #16) > Could you re upload a patch that applies to trunk? Also Tiancheng's work was based on some code in iphone's release tarball. Maybe it should be mentioned as well. done.
Antonio Gomes
Comment 18 2011-09-27 08:37:52 PDT
Comment on attachment 108849 [details] latest patch v2 View in context: https://bugs.webkit.org/attachment.cgi?id=108849&action=review Looks good to me. Would you mind to send an email to webkit-dev announcing it, since tap-highlight is not yet standard. Ps: non of the EWS bots manage to apply this patch it seems. > Source/WebCore/css/CSSParser.cpp:1941 > + validPrimitive = true; // notice: apple call this valid_primitive this comment sounds a bit weird.
Kenneth Rohde Christiansen
Comment 19 2011-09-27 08:43:47 PDT
Zalan as you did a similar patch for us, can you have a look at this?
Kenneth Rohde Christiansen
Comment 20 2011-09-27 14:38:17 PDT
Comment on attachment 108849 [details] latest patch v2 View in context: https://bugs.webkit.org/attachment.cgi?id=108849&action=review > Source/WebCore/ChangeLog:8 > + Based on tijiang@rim.com's patch which was based on some code in Apple IPhone's release tarball. I would write: Original code from the iOS WebCore code dump, extracted and modified by .... > Source/WebCore/ChangeLog:12 > + used as WebKit default tap highlight color. I would leave out WebKit here. > Source/WebCore/rendering/style/StyleRareInheritedData.h:31 > -#include <wtf/RefCounted.h> > #include <wtf/PassRefPtr.h> > +#include <wtf/RefCounted.h> Unrelated change... Should be in another patch > Source/WebCore/rendering/style/StyleRareInheritedData.h:81 > unsigned resize : 2; // EResize > - unsigned userSelect : 1; // EUserSelect > + unsigned userSelect : 1; // EUserSelect > unsigned colorSpace : 1; // ColorSpace This change seems unreleated > LayoutTests/fast/events/touch/tap-highlight-color-expected.txt:7 > +Stage: touch start Stage? Sounds pretty strange. Event: touch start, or so would be more clear > LayoutTests/fast/events/touch/script-tests/tap-highlight-color.js:56 > + > + No need for these newlines
Johnny(Jianning) Ding
Comment 21 2011-09-27 18:16:20 PDT
(In reply to comment #18) > (From update of attachment 108849 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=108849&action=review > > Looks good to me. Would you mind to send an email to webkit-dev announcing it, since tap-highlight is not yet standard. Should I send it before landing it or after? > > Ps: non of the EWS bots manage to apply this patch it seems. > > > Source/WebCore/css/CSSParser.cpp:1941 > > + validPrimitive = true; // notice: apple call this valid_primitive > > this comment sounds a bit weird. It's originally written by Tiancheng. I will remove it in next patch.
Johnny(Jianning) Ding
Comment 22 2011-09-27 18:22:03 PDT
(In reply to comment #20) > I would write: > > Original code from the iOS WebCore code dump, extracted and modified by .... > > I would leave out WebKit here. Good suggestions, will change them in next update. > > > Source/WebCore/rendering/style/StyleRareInheritedData.h:31 > > -#include <wtf/RefCounted.h> > > #include <wtf/PassRefPtr.h> > > +#include <wtf/RefCounted.h> > > Unrelated change... Should be in another patch It's just to make style-check happy. (resolved include order issue) > > > Source/WebCore/rendering/style/StyleRareInheritedData.h:81 > > unsigned resize : 2; // EResize > > - unsigned userSelect : 1; // EUserSelect > > + unsigned userSelect : 1; // EUserSelect > > unsigned colorSpace : 1; // ColorSpace > > This change seems unreleated ditto. (removed redundant space) > > Stage? Sounds pretty strange. Event: touch start, or so would be more clear > > > No need for these newlines Will change them in next update.
Antonio Gomes
Comment 23 2011-09-27 19:01:11 PDT
(In reply to comment #21) > (In reply to comment #18) > > (From update of attachment 108849 [details] [details]) > > View in context: https://bugs.webkit.org/attachment.cgi?id=108849&action=review > > > > Looks good to me. Would you mind to send an email to webkit-dev announcing it, since tap-highlight is not yet standard. > > Should I send it before landing it or after? Before, please.
Johnny(Jianning) Ding
Comment 24 2011-09-28 08:06:38 PDT
Created attachment 109020 [details] patch v3
Early Warning System Bot
Comment 25 2011-09-28 08:16:08 PDT
WebKit Review Bot
Comment 26 2011-09-28 08:24:22 PDT
Comment on attachment 109020 [details] patch v3 Attachment 109020 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/9888172
Johnny(Jianning) Ding
Comment 27 2011-09-28 19:43:52 PDT
Created attachment 109113 [details] patch v3 to make ews happy
WebKit Review Bot
Comment 28 2011-09-28 23:32:01 PDT
Comment on attachment 109113 [details] patch v3 to make ews happy Attachment 109113 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/9893218 New failing tests: svg/css/getComputedStyle-basic.xhtml fast/css/getComputedStyle/computed-style.html fast/css/getComputedStyle/computed-style-without-renderer.html
Kenneth Rohde Christiansen
Comment 29 2011-09-29 12:05:27 PDT
Comment on attachment 109113 [details] patch v3 to make ews happy View in context: https://bugs.webkit.org/attachment.cgi?id=109113&action=review r=me, as noone complained about the feature on the ML and it is used by iOS, Playbook, Nokia N9 series and possible others as well. It can thus be considered a widely used WebKit mobile/touch feature. > Source/WebCore/rendering/style/StyleRareInheritedData.h:80 > - unsigned userSelect : 1; // EUserSelect > + unsigned userSelect : 1; // EUserSelect Let's remove unrelated changes
Johnny(Jianning) Ding
Comment 30 2011-09-30 13:21:50 PDT
Created attachment 109337 [details] patch v3 to fix reported broken tests This patch fixed the tests broken on try bot reported in comment #28. After considering the features support difference among all webkit ports (they may Change in the future) and "-webkit-tap-highlight-color" only supported on ports which support TOUCH_EVENTS. I disable the "-webkit-tap-highlight-color" output on related get computed style tests and only test it by using the new layout test fast/events/touch/tap-highlight-color.html. Kenneth, Antonio, would you like to reexamine it? Thanks!
WebKit Review Bot
Comment 31 2011-09-30 15:30:09 PDT
Comment on attachment 109337 [details] patch v3 to fix reported broken tests Clearing flags on attachment: 109337 Committed r96433: <http://trac.webkit.org/changeset/96433>
WebKit Review Bot
Comment 32 2011-09-30 15:30:16 PDT
All reviewed patches have been landed. Closing bug.
Adam Barth
Comment 33 2011-10-01 10:27:20 PDT
This test times out on Leopard: fast/events/touch/tap-highlight-color.html Is that expected?
Adam Barth
Comment 34 2011-10-01 10:32:03 PDT
I've noted the test as timing out: http://trac.webkit.org/changeset/96457 If that is in error, please correct the issue.
Johnny(Jianning) Ding
Comment 35 2011-10-02 02:33:41 PDT
> If that is in error, please correct the issue. Thanks for fix, Adam. I don't have Leopard on vacation now. Will fix it when I am back.
Johnny(Jianning) Ding
Comment 36 2011-10-09 04:34:24 PDT
Created attachment 110297 [details] patch to clean test expectation The timeout on LEOPARD is caused bug 66577, change the bug no and close this bug
WebKit Review Bot
Comment 37 2011-10-09 06:08:49 PDT
Comment on attachment 110297 [details] patch to clean test expectation Clearing flags on attachment: 110297 Committed r97027: <http://trac.webkit.org/changeset/97027>
WebKit Review Bot
Comment 38 2011-10-09 06:08:57 PDT
All reviewed patches have been landed. Closing bug.
Antonio Gomes
Comment 39 2011-10-12 08:38:34 PDT
(In reply to comment #32) > All reviewed patches have been landed. Closing bug. The patch adds a new field in RareInheritedData, but in RenderStyle::diff() method, it does not take this new property into account when comparing two RenderStyle's. I would say it is a missing part on the patch. Could you confirm?
Johnny(Jianning) Ding
Comment 40 2011-10-16 23:50:09 PDT
(In reply to comment #39) > The patch adds a new field in RareInheritedData, but in RenderStyle::diff() method, it does not take this new property into account when comparing two RenderStyle's. > > I would say it is a missing part on the patch. Could you confirm? Hi Antonio, I am not sure we need to compare tap-highlight-color in RenderStyle::diff so far because. 1) tap-highlight-color don't affect the layout. Currently we don't use it in any rendering actions. 2) the render engine embedder (browser) may use tap-highlight-color to draw the highlight rectangle(s) in draw surface when users tap an element, but the render engine should do nothing. The similar data field like tap-highlight-color in RareInheritedData is cursorData. We currently don't compare it in RenderStyle::diff. But if we really need to return a diff for tap-highlight-color change, a diff which can trigger repainting action to let embedder be aware of the change may be right choice, like StyleDifferenceRepaint. What do you think?
Note You need to log in before you can comment on or make changes to this bug.