Bug 113949 - [EFL] --minimal build fails with error: invalid use of incomplete type `class WebKit::WebContextMenuItemData'
Summary: [EFL] --minimal build fails with error: invalid use of incomplete type `class...
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit EFL (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Ed Bartosh
URL:
Keywords:
: 114098 (view as bug list)
Depends on: 114308
Blocks:
  Show dependency treegraph
 
Reported: 2013-04-04 12:38 PDT by Ed Bartosh
Modified: 2017-03-11 10:44 PST (History)
20 users (show)

See Also:


Attachments
Patch (3.21 KB, patch)
2013-04-04 12:44 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (3.16 KB, patch)
2013-04-06 10:48 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (9.36 KB, patch)
2013-04-07 13:00 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (8.84 KB, patch)
2013-04-07 13:22 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (8.71 KB, patch)
2013-04-08 11:19 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (9.20 KB, patch)
2013-04-08 13:53 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (9.15 KB, patch)
2013-04-09 14:10 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (16.41 KB, patch)
2013-04-29 10:49 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (9.98 KB, patch)
2013-05-09 13:51 PDT, Ed Bartosh
no flags Details | Formatted Diff | Diff
Patch (8.50 KB, patch)
2013-05-10 11:58 PDT, Ed Bartosh
gyuyoung.kim: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Bartosh 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
Comment 1 Ed Bartosh 2013-04-04 12:44:11 PDT
Created attachment 196506 [details]
Patch
Comment 2 Ed Bartosh 2013-04-06 10:48:39 PDT
Created attachment 196744 [details]
Patch

Rebased. Please, review.
Comment 3 Ed Bartosh 2013-04-07 12:55:19 PDT
*** Bug 114098 has been marked as a duplicate of this bug. ***
Comment 4 Ed Bartosh 2013-04-07 13:00:53 PDT
Created attachment 196803 [details]
Patch
Comment 5 Ed Bartosh 2013-04-07 13:22:58 PDT
Created attachment 196807 [details]
Patch

Rebased. Please review.
Comment 6 EFL EWS Bot 2013-04-07 13:34:33 PDT
Comment on attachment 196807 [details]
Patch

Attachment 196807 [details] did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17517137
Comment 7 Gyuyoung Kim 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.
Comment 8 Ed Bartosh 2013-04-08 11:19:36 PDT
Created attachment 196875 [details]
Patch
Comment 9 EFL EWS Bot 2013-04-08 12:09:39 PDT
Comment on attachment 196875 [details]
Patch

Attachment 196875 [details] did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17586012
Comment 10 Ed Bartosh 2013-04-08 13:53:19 PDT
Created attachment 196951 [details]
Patch
Comment 11 EFL EWS Bot 2013-04-08 14:23:58 PDT
Comment on attachment 196951 [details]
Patch

Attachment 196951 [details] did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17423127
Comment 12 Ed Bartosh 2013-04-09 14:10:53 PDT
Created attachment 197170 [details]
Patch
Comment 13 EFL EWS Bot 2013-04-09 14:29:42 PDT
Comment on attachment 197170 [details]
Patch

Attachment 197170 [details] did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17597017
Comment 14 EFL EWS Bot 2013-04-11 14:34:31 PDT
Comment on attachment 197170 [details]
Patch

Attachment 197170 [details] did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/57050
Comment 15 Ed Bartosh 2013-04-29 10:49:37 PDT
Created attachment 200027 [details]
Patch
Comment 16 EFL EWS Bot 2013-04-29 10:53:02 PDT
Comment on attachment 200027 [details]
Patch

Attachment 200027 [details] did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/229554
Comment 17 Gyuyoung Kim 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.
Comment 18 Ed Bartosh 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?
Comment 19 Chris Dumez 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 ;)
Comment 20 Ed Bartosh 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?
Comment 21 Chris Dumez 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
Comment 22 Ed Bartosh 2013-05-09 13:51:46 PDT
Created attachment 201272 [details]
Patch
Comment 23 Ed Bartosh 2013-05-09 13:56:01 PDT
Christophe, Thank you for your explanations!
Comment 24 Chris Dumez 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.
Comment 25 Chris Dumez 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).
Comment 26 Noam Rosenthal 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.
Comment 27 Chris Dumez 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.
Comment 28 Gyuyoung Kim 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.
Comment 29 Ed Bartosh 2013-05-10 11:58:35 PDT
Created attachment 201373 [details]
Patch
Comment 30 Ed Bartosh 2013-05-10 12:12:58 PDT
Updated according to reviewer's comments.
Comment 31 Gyuyoung Kim 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().
Comment 32 Michael Catanzaro 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.