Bug 113949

Summary: [EFL] --minimal build fails with error: invalid use of incomplete type `class WebKit::WebContextMenuItemData'
Product: WebKit Reporter: Ed Bartosh <bartosh>
Component: WebKit EFLAssignee: Ed Bartosh <bartosh>
Status: RESOLVED WONTFIX    
Severity: Normal CC: cdumez, cmarcelo, commit-queue, eflews.bot, gyuyoung.kim, gyuyoung.kim, kalyan.kondapally, kenneth, kondapallykalyan, laszlo.gombos, lucas.de.marchi, luiz, mcatanzaro, mikhail.pozdnyakov, noam, rakuco, sam, tmpsantos, webkit.review.bot, zeno
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Bug Depends on: 114308    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch gyuyoung.kim: review-

Ed Bartosh
Reported 2013-04-04 12:38:52 PDT
./Tools/Scripts/build-webkit --efl --cmakeargs="-DSHARED_CORE=ON" --minimal fails with this error: /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp: In member function `void EwkContextMenu::contextMenuItemSelected(const WebKit::WebContextMenuItemData&)': /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:91:23: error: invalid use of incomplete type `class WebKit::WebContextMenuProxyEfl' In file included from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:30:0: /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/EwkView.h:70:7: error: forward declaration of `class WebKit::WebContextMenuProxyEfl' /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp: In function `Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu*, Ewk_Context_Menu_Item*)': /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:146:119: error: invalid use of incomplete type `class WebKit::WebContextMenuItemData' In file included from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:30:0: /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/EwkView.h:69:7: error: forward declaration of `class WebKit::WebContextMenuItemData' In file included from /home/ed/git/wk/WebKit/Source/WTF/wtf/text/CString.h:31:0, from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/EwkViewCallbacks.h:34, from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/EwkView.h:26, from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:30: /home/ed/git/wk/WebKit/Source/WTF/wtf/Vector.h: In instantiation of `const T& WTF::Vector<T, inlineCapacity>::at(size_t) const [with T = WebKit::WebContextMenuItemData; long unsigned int inlineCapacity = 0ul; size_t = long unsigned int]': /home/ed/git/wk/WebKit/Source/WTF/wtf/Vector.h:563:58: required from `const T& WTF::Vector<T, inlineCapacity>::operator[](size_t) const [with T = WebKit::WebContextMenuItemData; long unsigned int inlineCapacity = 0ul; size_t = long unsigned int]' /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:46:104: required from here /home/ed/git/wk/WebKit/Source/WTF/wtf/Vector.h:559:39: error: invalid use of incomplete type `class WebKit::WebContextMenuItemData' In file included from /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:30:0: /home/ed/git/wk/WebKit/Source/WebKit2/UIProcess/API/efl/EwkView.h:69:7: error: forward declaration of `class WebKit::WebContextMenuItemData' [ 92%] Building CXX object Source/WebKit2/CMakeFiles/ewebkit2.dir/UIProcess/API/efl/ewk_favicon_database.cpp.o make[2]: *** [Source/WebKit2/CMakeFiles/ewebkit2.dir/UIProcess/API/efl/ewk_context_menu.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [Source/WebKit2/CMakeFiles/ewebkit2.dir/all] Error 2 make: *** [all] Error 2
Attachments
Patch (3.21 KB, patch)
2013-04-04 12:44 PDT, Ed Bartosh
no flags
Patch (3.16 KB, patch)
2013-04-06 10:48 PDT, Ed Bartosh
no flags
Patch (9.36 KB, patch)
2013-04-07 13:00 PDT, Ed Bartosh
no flags
Patch (8.84 KB, patch)
2013-04-07 13:22 PDT, Ed Bartosh
no flags
Patch (8.71 KB, patch)
2013-04-08 11:19 PDT, Ed Bartosh
no flags
Patch (9.20 KB, patch)
2013-04-08 13:53 PDT, Ed Bartosh
no flags
Patch (9.15 KB, patch)
2013-04-09 14:10 PDT, Ed Bartosh
no flags
Patch (16.41 KB, patch)
2013-04-29 10:49 PDT, Ed Bartosh
no flags
Patch (9.98 KB, patch)
2013-05-09 13:51 PDT, Ed Bartosh
no flags
Patch (8.50 KB, patch)
2013-05-10 11:58 PDT, Ed Bartosh
gyuyoung.kim: review-
Ed Bartosh
Comment 1 2013-04-04 12:44:11 PDT
Ed Bartosh
Comment 2 2013-04-06 10:48:39 PDT
Created attachment 196744 [details] Patch Rebased. Please, review.
Ed Bartosh
Comment 3 2013-04-07 12:55:19 PDT
*** Bug 114098 has been marked as a duplicate of this bug. ***
Ed Bartosh
Comment 4 2013-04-07 13:00:53 PDT
Ed Bartosh
Comment 5 2013-04-07 13:22:58 PDT
Created attachment 196807 [details] Patch Rebased. Please review.
EFL EWS Bot
Comment 6 2013-04-07 13:34:33 PDT
Gyuyoung Kim
Comment 7 2013-04-07 17:32:22 PDT
Comment on attachment 196807 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=196807&action=review > Source/WebKit2/UIProcess/API/efl/ewk_context_menu.h:34 > +#if ENABLE(CONTEXT_MENUS) Should not use ENABLE() macro in public header.
Ed Bartosh
Comment 8 2013-04-08 11:19:36 PDT
EFL EWS Bot
Comment 9 2013-04-08 12:09:39 PDT
Ed Bartosh
Comment 10 2013-04-08 13:53:19 PDT
EFL EWS Bot
Comment 11 2013-04-08 14:23:58 PDT
Ed Bartosh
Comment 12 2013-04-09 14:10:53 PDT
EFL EWS Bot
Comment 13 2013-04-09 14:29:42 PDT
EFL EWS Bot
Comment 14 2013-04-11 14:34:31 PDT
Ed Bartosh
Comment 15 2013-04-29 10:49:37 PDT
EFL EWS Bot
Comment 16 2013-04-29 10:53:02 PDT
Gyuyoung Kim
Comment 17 2013-04-30 01:01:51 PDT
Comment on attachment 200027 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=200027&action=review > Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:-166 > -static WKContextMenuItemTag getWKTagFromEwkAction(Ewk_Context_Menu_Item_Action action) Why do you remove this function ? > Source/WebKit2/UIProcess/API/efl/ewk_view.h:117 > +#if ENABLE(CONTEXT_MENUS) Please don't use ENABLE() in public header. > Source/WebKit2/UIProcess/API/efl/ewk_view.h:178 > +#if ENABLE(CONTEXT_MENUS) ditto.
Ed Bartosh
Comment 18 2013-05-09 11:16:57 PDT
Gyuyoung, how can I distinguish between public and private headers? How can I avoid using use ENABLE(CONTEXT_MENUS) in Source/WebKit2/UIProcess/API/efl/ewk_view.h if m_contextMenu; is defined there?
Chris Dumez
Comment 19 2013-05-09 11:41:49 PDT
(In reply to comment #18) > Gyuyoung, how can I distinguish between public and private headers? How can I avoid using use ENABLE(CONTEXT_MENUS) in Source/WebKit2/UIProcess/API/efl/ewk_view.h if m_contextMenu; is defined there? Headers in API/efl/ folder are public unless ending with '_private.h'. There is no "m_contextMenu" in ewk_view.h so I don't understand your question. Gyuyoung missed your ifdef to ewk_context_menu.h public header ;)
Ed Bartosh
Comment 20 2013-05-09 11:56:07 PDT
I can see a lot of ENABLEs in Source/WebKit2/UIProcess/API/efl/EwkView.h is it also private header?
Chris Dumez
Comment 21 2013-05-09 12:04:46 PDT
(In reply to comment #20) > I can see a lot of ENABLEs in Source/WebKit2/UIProcess/API/efl/EwkView.h is it also private header? No it is not. I thought those files were in UIProcess/efl, sorry. Our public headers are written in C and are all lowercase. EwkView is C++ and camel case. Public headers are also listed in Source/WebKit2/PlatformEfl.cmake
Ed Bartosh
Comment 22 2013-05-09 13:51:46 PDT
Ed Bartosh
Comment 23 2013-05-09 13:56:01 PDT
Christophe, Thank you for your explanations!
Chris Dumez
Comment 24 2013-05-09 14:42:58 PDT
Comment on attachment 201272 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201272&action=review > Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp:28 > +#if ENABLE(CONTEXT_MENUS) This does not seem right. All the public functions in ewk_context_menu.h would be missing their implementation. You probably needs #ifdefs inside the body of each public API function.
Chris Dumez
Comment 25 2013-05-09 14:49:08 PDT
Comment on attachment 201272 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201272&action=review > Source/WebKit2/ChangeLog:17 > + * UIProcess/CoordinatedGraphics/WebView.cpp: FYI, you're touching some non-EFL WK2 files some you will probably need owner review (Source/WebKit2/Owners) unless Noam can do that now (since this is CoordinatedGraphics).
Noam Rosenthal
Comment 26 2013-05-09 14:51:47 PDT
Comment on attachment 201272 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201272&action=review >> Source/WebKit2/ChangeLog:17 >> + * UIProcess/CoordinatedGraphics/WebView.cpp: > > FYI, you're touching some non-EFL WK2 files some you will probably need owner review (Source/WebKit2/Owners) unless Noam can do that now (since this is CoordinatedGraphics). Apple were OK with not needing owners to review CoordintedGraphics. Either way, I'm ok with the changes to WebView. However, here you're touching PageClient.h as well.
Chris Dumez
Comment 27 2013-05-09 14:54:20 PDT
Comment on attachment 201272 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201272&action=review >>> Source/WebKit2/ChangeLog:17 >>> + * UIProcess/CoordinatedGraphics/WebView.cpp: >> >> FYI, you're touching some non-EFL WK2 files some you will probably need owner review (Source/WebKit2/Owners) unless Noam can do that now (since this is CoordinatedGraphics). > > Apple were OK with not needing owners to review CoordintedGraphics. Either way, I'm ok with the changes to WebView. > However, here you're touching PageClient.h as well. Thanks for clarifying Noam. I missed the PageClient change indeed. Definitely needs Owner review then.
Gyuyoung Kim
Comment 28 2013-05-09 21:30:00 PDT
(In reply to comment #19) > (In reply to comment #18) > Gyuyoung missed your ifdef to ewk_context_menu.h public header ;) I said as below, ;-) > Please don't use ENABLE() in public header.
Ed Bartosh
Comment 29 2013-05-10 11:58:35 PDT
Ed Bartosh
Comment 30 2013-05-10 12:12:58 PDT
Updated according to reviewer's comments.
Gyuyoung Kim
Comment 31 2013-05-15 21:57:28 PDT
Comment on attachment 201373 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=201373&action=review > Source/WebKit2/UIProcess/API/efl/EwkView.cpp:869 > +#endif Please move this to a line above. > Source/WebKit2/UIProcess/API/efl/ewk_context_menu_private.h:29 > +#if ENABLE(CONTEXT_MENUS) Don't you need to wrap functions defined by this class up with ENABLE(CONTEXT_MENU) as well ? For instance, appendItem(), removeItem().
Michael Catanzaro
Comment 32 2017-03-11 10:44:27 PST
Closing this bug because the EFL port has been removed from trunk. If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.
Note You need to log in before you can comment on or make changes to this bug.