Bug 44767 - [EFL] WebCore depends on symbols from WebKit
Summary: [EFL] WebCore depends on symbols from WebKit
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
Depends on:
Blocks: 44609
  Show dependency treegraph
Reported: 2010-08-27 08:24 PDT by Lucas De Marchi
Modified: 2010-12-14 05:19 PST (History)
6 users (show)

See Also:

Patch (7.08 KB, patch)
2010-08-27 10:59 PDT, Lucas De Marchi
no flags Details | Formatted Diff | Diff
Patch (7.08 KB, patch)
2010-08-27 11:14 PDT, Lucas De Marchi
abarth: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Lucas De Marchi 2010-08-27 08:24:41 PDT
Current ContextMenu implementation adds a dependency in WebCore from WebKit. This should not happen since it's WebKit that depends on WebCore.
Comment 1 Lucas De Marchi 2010-08-27 10:59:52 PDT
Created attachment 65733 [details]
Comment 2 WebKit Review Bot 2010-08-27 11:02:14 PDT
Attachment 65733 [details] did not pass style-queue:

Failed to run "['WebKitTools/Scripts/check-webkit-style']" exit_code: 1
WebKit/efl/ChangeLog:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 7 files

If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Lucas De Marchi 2010-08-27 11:14:17 PDT
Created attachment 65737 [details]
Comment 4 Antonio Gomes 2010-08-28 10:30:54 PDT
(In reply to comment #3)
> Created an attachment (id=65737) [details]
> Patch

Looks good.

@luiz, could you please informally review that patch? (he is our lord on it currentl :)
Comment 5 Adam Barth 2010-08-31 19:36:44 PDT
Comment on attachment 65737 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=65737&action=prettypatch

> WebCore/page/ContextMenuClient.h:60
> +#elif PLATFORM(EFL)
> +        virtual PlatformMenuDescription createPlatformDescription(ContextMenu*) = 0;
> +        virtual void freePlatformDescription(PlatformMenuDescription) = 0;
> +        virtual void appendItem(PlatformMenuDescription, ContextMenuItem&) = 0;
> +        virtual void show(PlatformMenuDescription menu) = 0;
I'm not sure we should have platform specific methods here.  I see that Mac does it, but that doesn't mean it's a good pattern.
Comment 6 Kenneth Rohde Christiansen 2010-09-01 00:26:26 PDT
Darin, can you give your comments on this?
Comment 7 Luiz Agostini 2010-09-08 10:58:57 PDT
If ContextMenu was an abstract class, EFL could have its own ContextMenu inherited class implemented in WebKit layer. The ContextMenu instance to be used would need to be provided by one of the clients (maybe ContextMenuClient). Then there would be no layering violations. It would demand a lot of changes in all platforms. Those changes would not be complex but they would be extensive.

An other possibility would be to have a new pure abstract class that inherits from ContextMenuClient in WebCore/platform/efl. This new class would have the EFL specific methods (createPlatformDescription, freePlatformDescription, appendItem and show) and could be used by ContextMenu with no layering violations (am I right?). ContextMenuClientEfl would then inherit from this new class instead of ContextMenuClient.
Comment 8 Lucas De Marchi 2010-12-14 05:19:03 PST
After the refactoring on context menu in WebCore, this is not needed anymore. Instead, EFL port must fix its implementation to adhere to the new API.