Bug 35870

Summary: Upstream iPhone KeyEvent platform code and share with Mac platform
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: WebCore Misc.Assignee: Joseph Pecoraro <joepeck>
Status: RESOLVED FIXED    
Severity: Normal CC: ddkilzer, joepeck, mjs, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.6   
Attachments:
Description Flags
PLATFORM(COCOA) and upstreams platform/iphone
none
Updated to ToT for Bots
none
[PATCH] Part 1 - Upstream iPhone Code (unused so far)
ddkilzer: review+
[PATCH] Part 2 - Move Mac Code into Shared Location (no change to code itself yet)
ddkilzer: review+
[PATCH] Part 3 - Share Code (make generic for both platforms)
none
[PATCH] Part 3 - Share Code (make generic for both platforms) + FIX
ddkilzer: review+
[PATCH] Upstream Minor Fixes to MatchDownstream ddkilzer: review+

Joseph Pecoraro
Reported 2010-03-08 08:49:56 PST
The iPhone and Mac platforms both share a large amount of code, yet still have their differences. It would be nice to have a place to put shared code. Something like platform/cocoa, and a PLATFORM(COCOA) flag. Also, we should move up some of the platform/iphone that uses the shared code.
Attachments
PLATFORM(COCOA) and upstreams platform/iphone (116.82 KB, patch)
2010-03-08 08:58 PST, Joseph Pecoraro
no flags
Updated to ToT for Bots (117.12 KB, patch)
2010-03-08 09:40 PST, Joseph Pecoraro
no flags
[PATCH] Part 1 - Upstream iPhone Code (unused so far) (17.14 KB, patch)
2010-03-10 16:02 PST, Joseph Pecoraro
ddkilzer: review+
[PATCH] Part 2 - Move Mac Code into Shared Location (no change to code itself yet) (55.26 KB, patch)
2010-03-10 16:03 PST, Joseph Pecoraro
ddkilzer: review+
[PATCH] Part 3 - Share Code (make generic for both platforms) (14.87 KB, patch)
2010-03-10 16:04 PST, Joseph Pecoraro
no flags
[PATCH] Part 3 - Share Code (make generic for both platforms) + FIX (14.87 KB, patch)
2010-03-12 17:55 PST, Joseph Pecoraro
ddkilzer: review+
[PATCH] Upstream Minor Fixes to MatchDownstream (1.68 KB, patch)
2010-03-22 18:39 PDT, Joseph Pecoraro
ddkilzer: review+
Joseph Pecoraro
Comment 1 2010-03-08 08:58:39 PST
Created attachment 50227 [details] PLATFORM(COCOA) and upstreams platform/iphone
Joseph Pecoraro
Comment 2 2010-03-08 09:40:29 PST
Created attachment 50229 [details] Updated to ToT for Bots - bots showed an svn-apply issue with the XCode project, so I updated the patch to ToT.
WebKit Review Bot
Comment 3 2010-03-08 09:48:15 PST
Attachment 50229 [details] did not pass style-queue: Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1 Last 3072 characters of output: re/platform/cocoa/KeyEventCocoa.h:74: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:75: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:76: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:77: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:78: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:79: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:80: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:81: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:82: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:83: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:84: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:85: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:86: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:87: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:88: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:89: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:90: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:91: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:92: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:93: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:94: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:95: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:96: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:97: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:98: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:99: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:100: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:101: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:102: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:103: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/cocoa/KeyEventCocoa.h:104: Tab found; better to use spaces [whitespace/tab] [1] Total errors found: 73 in 8 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joseph Pecoraro
Comment 4 2010-03-10 16:02:17 PST
Created attachment 50449 [details] [PATCH] Part 1 - Upstream iPhone Code (unused so far)
Joseph Pecoraro
Comment 5 2010-03-10 16:03:17 PST
Created attachment 50450 [details] [PATCH] Part 2 - Move Mac Code into Shared Location (no change to code itself yet)
Joseph Pecoraro
Comment 6 2010-03-10 16:04:29 PST
Created attachment 50451 [details] [PATCH] Part 3 - Share Code (make generic for both platforms)
WebKit Review Bot
Comment 7 2010-03-10 16:06:00 PST
Attachment 50449 [details] did not pass style-queue: Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1 Last 3072 characters of output: orm/iphone/KeyEventCodesIPhone.h:77: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:78: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:79: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:80: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:81: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:82: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:83: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:84: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:85: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:86: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:87: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:88: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:89: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:90: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:91: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:92: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:93: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:94: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:95: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:96: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:97: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:98: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:99: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:100: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:101: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:102: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:103: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:104: Tab found; better to use spaces [whitespace/tab] [1] WebCore/platform/iphone/KeyEventCodesIPhone.h:105: Tab found; better to use spaces [whitespace/tab] [1] Total errors found: 72 in 3 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joseph Pecoraro
Comment 8 2010-03-10 16:08:17 PST
I was asked to break this up a little, so I broke this apart into 3 patches. I also removed the PLATFORM(COCOA) flag concept. I don't see a need for it if only the Mac / iPhone platforms decide to include / use the new files. Are there build configs that are greedy enough to grab these files unless I protect them with a guard?
Joseph Pecoraro
Comment 9 2010-03-12 17:37:35 PST
I have an obvious mistake in Part 2. I call windowsKeyCodeForKeyCode when I should call windowsKeyCodeForCharCode. Tests caught these pretty quick.
Joseph Pecoraro
Comment 10 2010-03-12 17:55:34 PST
Created attachment 50645 [details] [PATCH] Part 3 - Share Code (make generic for both platforms) + FIX Looks like it was in Part 3. So I've attached an updated version. Passes the tests locally now.
David Kilzer (:ddkilzer)
Comment 11 2010-03-22 12:13:29 PDT
Comment on attachment 50449 [details] [PATCH] Part 1 - Upstream iPhone Code (unused so far) > diff --git a/WebCore/platform/iphone/KeyEventCodesIPhone.h b/WebCore/platform/iphone/KeyEventCodesIPhone.h > + NSUpArrowFunctionKey = 0xF700, Please change the tabs to spaces in the header file to correct the style issues. r=me
David Kilzer (:ddkilzer)
Comment 12 2010-03-22 12:16:23 PDT
(In reply to comment #11) > (From update of attachment 50449 [details]) > > diff --git a/WebCore/platform/iphone/KeyEventCodesIPhone.h b/WebCore/platform/iphone/KeyEventCodesIPhone.h > > + NSUpArrowFunctionKey = 0xF700, > > Please change the tabs to spaces in the header file to correct the style > issues. > > r=me Actually, two more things: - You need to add these files to the Xcode project file. - The *.mm file needs #if PLATFORM(IPHONE)/#endif macros around its source so that it doesn't compile for Mac.
David Kilzer (:ddkilzer)
Comment 13 2010-03-22 12:17:10 PDT
(In reply to comment #12) > (In reply to comment #11) > > (From update of attachment 50449 [details] [details]) > > > diff --git a/WebCore/platform/iphone/KeyEventCodesIPhone.h b/WebCore/platform/iphone/KeyEventCodesIPhone.h > > > + NSUpArrowFunctionKey = 0xF700, > > > > Please change the tabs to spaces in the header file to correct the style > > issues. > > > > r=me > > Actually, two more things: > > - You need to add these files to the Xcode project file. > - The *.mm file needs #if PLATFORM(IPHONE)/#endif macros around its source so > that it doesn't compile for Mac. You can do the above in a follow-up patch as well (and add #if PLATFORM(MAC)/#endif macros around KeyEventMac.mm as well).
Joseph Pecoraro
Comment 14 2010-03-22 12:28:52 PDT
> > - You need to add these files to the Xcode project file. > > - The *.mm file needs #if PLATFORM(IPHONE)/#endif macros around its source so > > that it doesn't compile for Mac. > > You can do the above in a follow-up patch as well (and add #if > PLATFORM(MAC)/#endif macros around KeyEventMac.mm as well). So the MAC and IPHONE platforms share the same XCode project and the PLATFORM(X) macros pick and choose the files wanted to build for a particular platform?
David Kilzer (:ddkilzer)
Comment 15 2010-03-22 12:40:53 PDT
(In reply to comment #14) > > > - You need to add these files to the Xcode project file. > > > - The *.mm file needs #if PLATFORM(IPHONE)/#endif macros around its source so > > > that it doesn't compile for Mac. > > > > You can do the above in a follow-up patch as well (and add #if > > PLATFORM(MAC)/#endif macros around KeyEventMac.mm as well). > > So the MAC and IPHONE platforms share the same XCode project and the > PLATFORM(X) macros pick and choose the files wanted to build for a particular > platform? Correct.
David Kilzer (:ddkilzer)
Comment 16 2010-03-22 14:15:13 PDT
Comment on attachment 50450 [details] [PATCH] Part 2 - Move Mac Code into Shared Location (no change to code itself yet) > diff --git a/WebCore/platform/cocoa/KeyEventCocoa.h b/WebCore/platform/cocoa/KeyEventCocoa.h > new file mode 100644 > index 0000000..fe1d660 > --- /dev/null > +++ b/WebCore/platform/cocoa/KeyEventCocoa.h > +#ifndef KeyEventCocoa_h > +#define KeyEventCocoa_h > [...] > +#endif // !KeyEventCocoa_h Nit: usually we don't use a "!" in this comment for headers. Darin Adler mentioned on webkit-dev that this comment is unnecessary, so you may optionally remove it. Thanks for using an "svn mv" to create the KeyEventCocoa.mm file! r=me
Joseph Pecoraro
Comment 17 2010-03-22 14:29:03 PDT
Committed r56360 M WebCore/ChangeLog M WebCore/platform/mac/KeyEventMac.mm A WebCore/platform/iphone/KeyEventCodesIPhone.h A WebCore/platform/iphone/KeyEventIPhone.mm M WebCore/WebCore.xcodeproj/project.pbxproj r56360 = abfebcccb264bc8466cdd6843ab2477e624e2515 (trunk) http://trac.webkit.org/changeset/56360 (In reply to comment #16) > Nit: usually we don't use a "!" in this comment for headers. Darin Adler > mentioned on webkit-dev that this comment is unnecessary, so you may optionally > remove it. Sounds good.
David Kilzer (:ddkilzer)
Comment 18 2010-03-22 14:37:17 PDT
Comment on attachment 50645 [details] [PATCH] Part 3 - Share Code (make generic for both platforms) + FIX > diff --git a/WebCore/platform/iphone/KeyEventIPhone.mm b/WebCore/platform/iphone/KeyEventIPhone.mm > + return keyIdentifierForKeyCharCode(c); I think this should be: return keyIdentifierForCharCode(c); as I don't see a keyIdentifierForKeyCharCode() method in the patch. r=me
Joseph Pecoraro
Comment 19 2010-03-22 15:00:31 PDT
Committed r56361 M WebCore/ChangeLog M WebCore/platform/mac/KeyEventMac.mm A WebCore/platform/cocoa/KeyEventCocoa.h A WebCore/platform/cocoa/KeyEventCocoa.mm M WebCore/WebCore.xcodeproj/project.pbxproj r56361 = d188be8b60d8e0b305f4ec52950b049ff2a0c0a0 (trunk) http://trac.webkit.org/changeset/56361 Even though I created an svn checkout specifically for the svn copy, by putting "the move" in a separate patch from "the changes" git figured out it was a copy as well. (In reply to comment #18) > I think this should be: > > return keyIdentifierForCharCode(c); > > as I don't see a keyIdentifierForKeyCharCode() method in the patch. Good catch! I caught the Mac build through tests, but I didn't fix this typo.
Joseph Pecoraro
Comment 20 2010-03-22 15:35:01 PDT
Committed r56363 M WebCore/ChangeLog M WebCore/platform/mac/KeyEventMac.mm M WebCore/platform/iphone/KeyEventIPhone.mm M WebCore/platform/cocoa/KeyEventCocoa.h M WebCore/platform/cocoa/KeyEventCocoa.mm r56363 = cc578a5357718b5d48199ce34250bf476dc38ebb (trunk) http://trac.webkit.org/changeset/56363
Joseph Pecoraro
Comment 21 2010-03-22 18:39:15 PDT
Created attachment 51380 [details] [PATCH] Upstream Minor Fixes to MatchDownstream After merging this back downstream this required some minor changes. Bringing the minor fixes back upstream.
David Kilzer (:ddkilzer)
Comment 22 2010-03-22 20:29:44 PDT
Comment on attachment 51380 [details] [PATCH] Upstream Minor Fixes to MatchDownstream r=me
Joseph Pecoraro
Comment 23 2010-03-23 12:40:58 PDT
Committed r56408 M WebCore/ChangeLog M WebCore/platform/iphone/KeyEventCodesIPhone.h M WebCore/platform/iphone/KeyEventIPhone.mm r56408 = 583c3f6701ac9ed948513ff0581ae533810aac1e (trunk) http://trac.webkit.org/changeset/56408 All set, thanks!
Note You need to log in before you can comment on or make changes to this bug.