RESOLVED FIXED 143318
Expose the "Share" menu for text selections on platforms where it's available
https://bugs.webkit.org/show_bug.cgi?id=143318
Summary Expose the "Share" menu for text selections on platforms where it's available
Brady Eidson
Reported 2015-04-01 13:51:58 PDT
Expose the "Share" menu for text selections on platforms where it's available rdar://problem/20034174
Attachments
Patch v1 (30.77 KB, patch)
2015-04-01 15:22 PDT, Brady Eidson
no flags
Patch v2 (30.89 KB, patch)
2015-04-01 16:49 PDT, Brady Eidson
no flags
Patch v3 (31.09 KB, patch)
2015-04-02 08:48 PDT, Brady Eidson
no flags
Patch v4 (31.14 KB, patch)
2015-04-02 08:50 PDT, Brady Eidson
darin: review-
darin: commit-queue-
Patch v5 (47.26 KB, patch)
2015-04-02 11:48 PDT, Brady Eidson
no flags
Patch v6 (50.70 KB, patch)
2015-04-02 12:00 PDT, Brady Eidson
no flags
Patch v7 (50.68 KB, patch)
2015-04-02 12:33 PDT, Brady Eidson
no flags
Patch v8 (49.98 KB, patch)
2015-04-02 13:56 PDT, Brady Eidson
no flags
Patch v8.1 (49.98 KB, patch)
2015-04-02 14:02 PDT, Brady Eidson
no flags
Brady Eidson
Comment 1 2015-04-01 15:22:51 PDT
Created attachment 249947 [details] Patch v1
WebKit Commit Bot
Comment 2 2015-04-01 15:24:57 PDT
Attachment 249947 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:102: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 23 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brady Eidson
Comment 3 2015-04-01 16:49:42 PDT
Created attachment 249952 [details] Patch v2
Brady Eidson
Comment 4 2015-04-02 08:48:08 PDT
Created attachment 249981 [details] Patch v3
Brady Eidson
Comment 5 2015-04-02 08:50:31 PDT
Created attachment 249982 [details] Patch v4
Anders Carlsson
Comment 6 2015-04-02 09:08:50 PDT
Comment on attachment 249982 [details] Patch v4 View in context: https://bugs.webkit.org/attachment.cgi?id=249982&action=review > Source/WebKit2/Shared/API/c/WKContextMenuItemTypes.h:124 > + kWKContextMenuItemTagShareMenu = 5001, Why does this need to be 5001? > Source/WebKit2/Shared/API/c/WKSharedAPICast.h:508 > + if (static_cast<WKContextMenuItemTag>(action) == kWKContextMenuItemTagShareMenu) > + return kWKContextMenuItemTagShareMenu; Instead of this, I think you should add the corresponding WebCore enum. > Source/WebKit2/Shared/API/c/WKSharedAPICast.h:699 > + case kWKContextMenuItemTagShareMenu: > + return static_cast<WebCore::ContextMenuAction>(tag); Same comment here. > Source/WebKit2/Shared/WebContextMenuItemData.cpp:88 > + m_nativeContextMenuItem = NativeContextMenuItem::create(item); Is WebContextMenuItemData something we send over the wire? If so, we shouldn't add native items to it.
Brady Eidson
Comment 7 2015-04-02 09:11:36 PDT
(In reply to comment #6) > Comment on attachment 249982 [details] > Patch v4 > > View in context: > https://bugs.webkit.org/attachment.cgi?id=249982&action=review > > > Source/WebKit2/Shared/API/c/WKContextMenuItemTypes.h:124 > > + kWKContextMenuItemTagShareMenu = 5001, > > Why does this need to be 5001? Because the tag is only relevant in WK2-land and I was half heartedly trying to avoid adding it to WebCore also. So it follows... > > > Source/WebKit2/Shared/API/c/WKSharedAPICast.h:508 > > + if (static_cast<WKContextMenuItemTag>(action) == kWKContextMenuItemTagShareMenu) > > + return kWKContextMenuItemTagShareMenu; > > Instead of this, I think you should add the corresponding WebCore enum. If I do that, it'll just be another tag. > > Source/WebKit2/Shared/WebContextMenuItemData.cpp:88 > > + m_nativeContextMenuItem = NativeContextMenuItem::create(item); > > Is WebContextMenuItemData something we send over the wire? If so, we > shouldn't add native items to it. It does go over the wire. Adding stuff to the WebContextMenuItem directly, however, is going to be a much more invasive change. Which is why I didn't. But I guess it's The Right Thing To Do™
Darin Adler
Comment 8 2015-04-02 09:32:15 PDT
Comment on attachment 249982 [details] Patch v4 View in context: https://bugs.webkit.org/attachment.cgi?id=249982&action=review review- because it’s not compiling on GTK and EFL; some comments about possible improvements too. > Source/WebCore/page/ContextMenuClient.h:66 > + virtual ContextMenuItem shareSelectedTextMenuItem(const String& selectedText) > + { > + return ContextMenuItem::shareSelectedTextMenuItem(selectedText); > + } I think it’s better to not have the multi-line function body here in the class definition; makes the class harder to read. We can put it here in the header if we do want it to be inlined. Or we can put it in a .cpp file, maybe Page.cpp might be fine since the page object is where the client lives. > Source/WebCore/page/ContextMenuController.cpp:920 > + if (!selectedString.isEmpty() && ContextMenuItem::supportsShareMenu()) { > + ContextMenuItem ShareItem(m_client.shareSelectedTextMenuItem(selectedString)); > + appendItem(ShareItem, m_contextMenu.get()); > + appendItem(*separatorItem(), m_contextMenu.get()); > + > + m_context.setSelectedText(selectedString); > + } I would consider structuring this differently. I think the best way to do this would be to have the shareSelectedTextMenuItem function return an empty menu item if there is none, and make a helper function that appends the item plus a separator only if the item passed is non-null. We’d also call setSelectedText unconditionally, not just if the selected string is non-empty. I think it’s strange that we are using these capitalized local variables for the menu items, and this one in particular doesn’t seem to need a local variable at all. It would read better as a one-liner. > Source/WebCore/platform/ContextMenuItem.h:213 > +#if PLATFORM(COCOA) > + static bool supportsShareMenu(); > + WEBCORE_EXPORT static ContextMenuItem shareSelectedTextMenuItem(const String&); > +#else > + static bool supportsShareMenu() { return false; } > +#endif I don’t think we need supportsShareMenu for non-Cocoa platforms. Another way to do this might just to make shareSelectedTextMenuItem return a null ContextMenuItem instead of having a separate function returning a boolean. If we did need this function for non-Cocoa platforms, I’d rather have this at the bottom of the file: #if !PLATFORM(COCOA) bool ContextMenuItem::supportsShareMenu() { return true; } #endif And then leave the supportsShareMenu function unconditional inside the class definition. Conditionals are getting little out of hand in this header and I think we should strive to minimize them in the class definition. It seems this should be PLATFORM(MAC), not PLATFORM(COCOA), by the way. Or maybe USE(APPKIT). > Source/WebCore/platform/mac/ContextMenuItemMac.mm:106 > +NSMenuItem* ContextMenuItem::getPlatformDescription() const Wrong formatting of the NSMenuItem* here; move the * please. > Source/WebCore/platform/mac/ContextMenuItemMac.mm:205 > + NSMenuItem *nsItem = [NSMenuItem standardShareMenuItemWithItems:@[ (NSString *)selectedText ]]; > + return ContextMenuItem(nsItem); I don’t think we need this local variable. Lets write this as a one-liner. Might not even need the explicit construction of ContextMenuItem. > Source/WebKit2/Shared/NativeContextMenuItem.h:47 > +class NativeContextMenuItem : public RefCounted<NativeContextMenuItem> { I think this is a single-ownership object, so I suggest we use unique_ptr instead of RefPtr and not do all the RefCounted stuff. > Source/WebKit2/Shared/NativeContextMenuItem.h:49 > + static PassRefPtr<NativeContextMenuItem> create(const WebCore::ContextMenuItem& coreItem) Should return a Ref, not a PassRefPtr. > Source/WebKit2/Shared/NativeContextMenuItem.h:58 > +#if PLATFORM(COCOA) > + NSMenuItem *nsMenuItem() { return m_nsMenuItem.get(); } > +#endif This needs to be USE(APPKIT), not PLATFORM(COCOA). There is no NSMenuItem on iOS. > Source/WebKit2/Shared/NativeContextMenuItem.h:61 > + NativeContextMenuItem(const WebCore::ContextMenuItem& coreItem); No need for the argument name here. > Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:100 > + return ContextMenuItem(SubmenuType, toImpl(kWKContextMenuItemTagShareMenu), StringImpl::empty()); StringImpl::empty() is not right here; although it will work, I think you just want emptyString().
Brady Eidson
Comment 9 2015-04-02 10:18:16 PDT
(In reply to comment #8) > Comment on attachment 249982 [details] > Patch v4 > > View in context: > https://bugs.webkit.org/attachment.cgi?id=249982&action=review > > review- because it’s not compiling on GTK and EFL; some comments about > possible improvements too. > > > Source/WebCore/page/ContextMenuClient.h:66 > > + virtual ContextMenuItem shareSelectedTextMenuItem(const String& selectedText) > > + { > > + return ContextMenuItem::shareSelectedTextMenuItem(selectedText); > > + } > > I think it’s better to not have the multi-line function body here in the > class definition; makes the class harder to read. We can put it here in the > header if we do want it to be inlined. Or we can put it in a .cpp file, > maybe Page.cpp might be fine since the page object is where the client lives. I think it should be inlined. I can make it a single line. > > > Source/WebCore/page/ContextMenuController.cpp:920 > > + if (!selectedString.isEmpty() && ContextMenuItem::supportsShareMenu()) { > > + ContextMenuItem ShareItem(m_client.shareSelectedTextMenuItem(selectedString)); > > + appendItem(ShareItem, m_contextMenu.get()); > > + appendItem(*separatorItem(), m_contextMenu.get()); > > + > > + m_context.setSelectedText(selectedString); > > + } > > I would consider structuring this differently. I think the best way to do > this would be to have the shareSelectedTextMenuItem function return an empty > menu item if there is none, and make a helper function that appends the item > plus a separator only if the item passed is non-null. We’d also call > setSelectedText unconditionally, not just if the selected string is > non-empty. You just described my first swipe at this. Unfortunately, ContextMenuItems have no concept of "null", and they are also such a cross-platform mess that it quickly became an out-of-scope project to clean them up. I agree this would be the best structure in the future! > I think it’s strange that we are using these capitalized local variables for > the menu items, and this one in particular doesn’t seem to need a local > variable at all. It would read better as a one-liner. I agree it's strange we use these capitalized local variables, but I would've felt much worse breaking with the established style of the file. I agree it would read better as a one liner without the local variable, but because appendItem takes a ContextMenuItem&, that doesn't compile: ...Source/WebCore/page/ContextMenuController.cpp:916:32: Non-const lvalue reference to type 'WebCore::ContextMenuItem' cannot bind to a temporary of type 'WebCore::ContextMenuItem' And that explains why there's all these temporaries in the file in the first place. > > Source/WebCore/platform/ContextMenuItem.h:213 > > +#if PLATFORM(COCOA) > > + static bool supportsShareMenu(); > > + WEBCORE_EXPORT static ContextMenuItem shareSelectedTextMenuItem(const String&); > > +#else > > + static bool supportsShareMenu() { return false; } > > +#endif > > I don’t think we need supportsShareMenu for non-Cocoa platforms. Another way > to do this might just to make shareSelectedTextMenuItem return a null > ContextMenuItem instead of having a separate function returning a boolean. Again, refer back to the previous comment about a null ContextMenuItem - Unfortunately there is no such thing, and it's a non-trivial cleanup project to implement one. :( > If we did need this function for non-Cocoa platforms, I’d rather have this > at the bottom of the file: > > #if !PLATFORM(COCOA) > > bool ContextMenuItem::supportsShareMenu() > { > return true; > } > > #endif > > And then leave the supportsShareMenu function unconditional inside the class > definition. Conditionals are getting little out of hand in this header and I > think we should strive to minimize them in the class definition. This makes sense and it is now done. > > Source/WebCore/platform/mac/ContextMenuItemMac.mm:106 > > +NSMenuItem* ContextMenuItem::getPlatformDescription() const > > Wrong formatting of the NSMenuItem* here; move the * please. That's my tendency to follow established style within a file. Will fix all uses. > > Source/WebCore/platform/mac/ContextMenuItemMac.mm:205 > > + NSMenuItem *nsItem = [NSMenuItem standardShareMenuItemWithItems:@[ (NSString *)selectedText ]]; > > + return ContextMenuItem(nsItem); > > I don’t think we need this local variable. Lets write this as a one-liner. > Might not even need the explicit construction of ContextMenuItem. This changed a bit based on Ander's feedback, and needs to be a multi-liner, but a different multi-liner. > > > Source/WebKit2/Shared/NativeContextMenuItem.h:47 > > +class NativeContextMenuItem : public RefCounted<NativeContextMenuItem> { > > I think this is a single-ownership object, so I suggest we use unique_ptr > instead of RefPtr and not do all the RefCounted stuff. In the current version of the patch, the NativeContextMenuItem was passed around to multiple different WebContextMenuItemDatas and therefore couldn't be uniqued. In the new version, it is truly owned by a single WebContextMenuItem and can be uniqued. > > Source/WebKit2/WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:100 > > + return ContextMenuItem(SubmenuType, toImpl(kWKContextMenuItemTagShareMenu), StringImpl::empty()); > > StringImpl::empty() is not right here; although it will work, I think you > just want emptyString(). I originally used ASCIILiteral(""), because it was late at night. Guess what the compiler recommended I use instead? ;) I wonder if there's a reason the error message encourages StringImpl::empty instead of emptyString()!
Brady Eidson
Comment 10 2015-04-02 11:48:57 PDT
Created attachment 249999 [details] Patch v5
WebKit Commit Bot
Comment 11 2015-04-02 11:51:17 PDT
Attachment 249999 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm:308: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 1 in 30 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brady Eidson
Comment 12 2015-04-02 11:59:43 PDT
Style bot is full of crap. Attempting build fixes.
Brady Eidson
Comment 13 2015-04-02 12:00:28 PDT
Created attachment 250002 [details] Patch v6 One attempt to fix EFL/GTK builds
WebKit Commit Bot
Comment 14 2015-04-02 12:01:35 PDT
Attachment 250002 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm:308: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 1 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brady Eidson
Comment 15 2015-04-02 12:33:46 PDT
Created attachment 250003 [details] Patch v7 At this point I'm going to stop working on the WK2 build failures for the other ports, but this was apparently a boneheaded move in WebCore - So v7 is an attempt to fix that.
WebKit Commit Bot
Comment 16 2015-04-02 12:35:17 PDT
Attachment 250003 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm:308: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 1 in 34 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brady Eidson
Comment 17 2015-04-02 13:44:20 PDT
Will fix windows build.
Brady Eidson
Comment 18 2015-04-02 13:56:23 PDT
Created attachment 250005 [details] Patch v8
Brady Eidson
Comment 19 2015-04-02 14:02:09 PDT
Created attachment 250006 [details] Patch v8.1
WebKit Commit Bot
Comment 20 2015-04-02 14:03:31 PDT
Attachment 250006 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm:308: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 1 in 33 files If any of these errors are false positives, please file a bug against check-webkit-style.
WebKit Commit Bot
Comment 21 2015-04-02 15:41:02 PDT
Comment on attachment 250006 [details] Patch v8.1 Clearing flags on attachment: 250006 Committed r182293: <http://trac.webkit.org/changeset/182293>
WebKit Commit Bot
Comment 22 2015-04-02 15:41:07 PDT
All reviewed patches have been landed. Closing bug.
Brent Fulgham
Comment 23 2015-04-02 17:35:01 PDT
This broke other bots (as shown by EWS): FAILED: /usr/lib/ccache/g++-4.8 -DBUILDING_GTK__=1 -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DDATA_DIR=\"share\" -DDEVELOPMENT_BUILD=1 -DENABLE_3D_RENDERING=1 -DENABLE_PLUGIN_PROCESS=1 -DENABLE_PLUGIN_PROCESS_GTK2=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DLIBDIR=\"/usr/local/lib/x86_64-linux-gnu\" -DLIBEXECDIR=\"/usr/local/libexec/webkit2gtk-4.0\" -DMOZ_X11=1 -DPACKAGE_LOCALE_DIR=\"/usr/local/share/locale\" -DUSER_AGENT_GTK_MAJOR_VERSION=601 -DUSER_AGENT_GTK_MINOR_VERSION=1 -DWEBKIT2_COMPILATION -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -DWTF_PLATFORM_X11=1 -DWTF_USE_3D_GRAPHICS=1 -DWTF_USE_EGL=1 -DWTF_USE_GLX=1 -DWTF_USE_GSTREAMER -DWTF_USE_GSTREAMER_MPEGTS -DWTF_USE_LIBNOTIFY=0 -DWTF_USE_OPENGL=1 -DWTF_USE_OPENWEBRTC -DWTF_USE_REDIRECTED_XCOMPOSITE_WINDOW=1 -DWTF_USE_TEXTURE_MAPPER=1 -DWTF_USE_TEXTURE_MAPPER_GL=1 -DWTF_USE_WEBAUDIO_GSTREAMER -DWebKit2_EXPORTS -DXP_UNIX -pipe -std=c++11 -Wno-unused-parameter -O3 -DNDEBUG -fno-exceptions -fno-strict-aliasing -fno-rtti -fPIC -I../../Source/WebKit2/Platform -I../../Source/WebKit2/Shared -I../../Source/WebKit2/Shared/API/c -I../../Source/WebKit2/UIProcess/API/C -I../../Source/WebKit2/WebProcess/InjectedBundle -I../../Source/WebKit2/WebProcess/InjectedBundle/API/c -IDerivedSources -IDerivedSources/InjectedBundle -IDerivedSources/webkitdom -IDerivedSources/ForwardingHeaders -IDerivedSources/ForwardingHeaders/webkit2gtk -IDerivedSources/ForwardingHeaders/webkit2gtk-webextension -IDerivedSources/webkit2gtk/webkit2 -IDerivedSources/webkit2gtk -I../../Source/JavaScriptCore/llint -I../../Source/WebKit2 -I../../Source/WebKit2/DatabaseProcess -I../../Source/WebKit2/DatabaseProcess/IndexedDB -I../../Source/WebKit2/DatabaseProcess/IndexedDB/sqlite -I../../Source/WebKit2/NetworkProcess -I../../Source/WebKit2/NetworkProcess/FileAPI -I../../Source/WebKit2/NetworkProcess/cache -I../../Source/WebKit2/Platform/IPC -I../../Source/WebKit2/PluginProcess -I../../Source/WebKit2/Shared/API -I../../Source/WebKit2/Shared/Authentication -I../../Source/WebKit2/Shared/CoreIPCSupport -I../../Source/WebKit2/Shared/Databases -I../../Source/WebKit2/Shared/Databases/IndexedDB -I../../Source/WebKit2/Shared/Downloads -I../../Source/WebKit2/Shared/FileAPI -I../../Source/WebKit2/Shared/Network -I../../Source/WebKit2/Shared/Network/CustomProtocols -I../../Source/WebKit2/Shared/Plugins -I../../Source/WebKit2/Shared/Plugins/Netscape -I../../Source/WebKit2/Shared/Plugins/Netscape/x11 -I../../Source/WebKit2/Shared/WebsiteData -I../../Source/WebKit2/UIProcess -I../../Source/WebKit2/UIProcess/API -I../../Source/WebKit2/UIProcess/API/cpp -I../../Source/WebKit2/UIProcess/Authentication -I../../Source/WebKit2/UIProcess/Databases -I../../Source/WebKit2/UIProcess/Downloads -I../../Source/WebKit2/UIProcess/InspectorServer -I../../Source/WebKit2/UIProcess/Launcher -I../../Source/WebKit2/UIProcess/Network -I../../Source/WebKit2/UIProcess/Network/CustomProtocols -I../../Source/WebKit2/UIProcess/Notifications -I../../Source/WebKit2/UIProcess/Plugins -I../../Source/WebKit2/UIProcess/Storage -I../../Source/WebKit2/UIProcess/UserContent -I../../Source/WebKit2/UIProcess/WebsiteData -I../../Source/WebKit2/WebProcess -I../../Source/WebKit2/WebProcess/ApplicationCache -I../../Source/WebKit2/WebProcess/Battery -I../../Source/WebKit2/WebProcess/Cookies -I../../Source/WebKit2/WebProcess/Databases -I../../Source/WebKit2/WebProcess/Databases/IndexedDB -I../../Source/WebKit2/WebProcess/FileAPI -I../../Source/WebKit2/WebProcess/FullScreen -I../../Source/WebKit2/WebProcess/Geolocation -I../../Source/WebKit2/WebProcess/IconDatabase -I../../Source/WebKit2/WebProcess/InjectedBundle/API -I../../Source/WebKit2/WebProcess/InjectedBundle/DOM -I../../Source/WebKit2/WebProcess/Launching -I../../Source/WebKit2/WebProcess/MediaCache -I../../Source/WebKit2/WebProcess/MediaStream -I../../Source/WebKit2/WebProcess/Network -I../../Source/WebKit2/WebProcess/Notifications -I../../Source/WebKit2/WebProcess/OriginData -I../../Source/WebKit2/WebProcess/Plugins -I../../Source/WebKit2/WebProcess/Plugins/Netscape -I../../Source/WebKit2/WebProcess/ResourceCache -I../../Source/WebKit2/WebProcess/Storage -I../../Source/WebKit2/WebProcess/UserContent -I../../Source/WebKit2/WebProcess/WebCoreSupport -I../../Source/WebKit2/WebProcess/WebPage -I../../Source/WebCore -I../../Source/WebCore/Modules/battery -I../../Source/WebCore/Modules/mediastream -I../../Source/WebCore/Modules/networkinfo -I../../Source/WebCore/Modules/notifications -I../../Source/WebCore/Modules/streams -I../../Source/WebCore/Modules/vibration -I../../Source/WebCore/Modules/webdatabase -I../../Source/WebCore/accessibility -I../../Source/WebCore/bindings/js -I../../Source/WebCore/bindings -I../../Source/WebCore/bridge -I../../Source/WebCore/bridge/jsc -I../../Source/WebCore/css -I../../Source/WebCore/dom -I../../Source/WebCore/dom/default -I../../Source/WebCore/editing -I../../Source/WebCore/fileapi -I../../Source/WebCore/history -I../../Source/WebCore/html -I../../Source/WebCore/html/shadow -I../../Source/WebCore/html/track -I../../Source/WebCore/inspector -I../../Source/WebCore/loader -I../../Source/WebCore/loader/archive -I../../Source/WebCore/loader/icon -I../../Source/WebCore/loader/cache -I../../Source/WebCore/page -I../../Source/WebCore/page/animation -I../../Source/WebCore/page/scrolling -I../../Source/WebCore/platform -I../../Source/WebCore/platform/animation -I../../Source/WebCore/platform/audio -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/filters -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebCore/platform/graphics/surfaces -I../../Source/WebCore/platform/graphics/texmap -I../../Source/WebCore/platform/graphics/transforms -I../../Source/WebCore/platform/mediastream -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/sql -I../../Source/WebCore/platform/text -I../../Source/WebCore/plugins -I../../Source/WebCore/rendering -I../../Source/WebCore/rendering/line -I../../Source/WebCore/rendering/shapes -I../../Source/WebCore/rendering/style -I../../Source/WebCore/storage -I../../Source/WebCore/style -I../../Source/WebCore/svg -I../../Source/WebCore/svg/graphics -I../../Source/WebCore/svg/properties -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/ForwardingHeaders -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/collector/handles -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/WTF -IDerivedSources/JavaScriptCore -IDerivedSources/WebCore -IDerivedSources/WebKit2 -IDerivedSources/WebKit2/include -I. -I../../Source -I../../Source/ThirdParty/ANGLE -I../../Source/ThirdParty/ANGLE/include/KHR -I../../Source/WebKit2/PluginProcess/unix -I../../Source/WebCore/platform/cairo -I../../Source/WebCore/platform/gtk -I../../Source/WebCore/platform/graphics/cairo -I../../Source/WebCore/platform/graphics/opentype -I../../Source/WebCore/platform/network/soup -I../../Source/WebCore/platform/text/enchant -I../../Source/WebKit2/DatabaseProcess/unix -I../../Source/WebKit2/NetworkProcess/gtk -I../../Source/WebKit2/NetworkProcess/unix -I../../Source/WebKit2/Shared/API/c/gtk -I../../Source/WebKit2/Shared/Network/CustomProtocols/soup -I../../Source/WebKit2/Shared/Downloads/soup -I../../Source/WebKit2/Shared/gtk -I../../Source/WebKit2/Shared/soup -I../../Source/WebKit2/Shared/unix -I../../Source/WebKit2/UIProcess/API/C/cairo -I../../Source/WebKit2/UIProcess/API/C/gtk -I../../Source/WebKit2/UIProcess/API/C/soup -I../../Source/WebKit2/UIProcess/API/cpp/gtk -I../../Source/WebKit2/UIProcess/API/gtk -I../../Source/WebKit2/UIProcess/Network/CustomProtocols/soup -I../../Source/WebKit2/UIProcess/Plugins/gtk -I../../Source/WebKit2/UIProcess/gtk -I../../Source/WebKit2/UIProcess/soup -I../../Source/WebKit2/WebProcess/InjectedBundle/API/gtk -I../../Source/WebKit2/WebProcess/gtk -I../../Source/WebKit2/WebProcess/soup -I../../Source/WebKit2/WebProcess/unix -I../../Source/WebKit2/WebProcess/WebCoreSupport/gtk -I../../Source/WebKit2/WebProcess/WebCoreSupport/soup -I../../Source/WebKit2/WebProcess/WebPage/atk -I../../Source/WebKit2/WebProcess/WebPage/gtk -I../../Source/WTF/wtf/gtk -I../../Source/WTF/wtf/gobject -I../DependenciesGTK/Root/include/cairo -I/usr/include/enchant -I../DependenciesGTK/Root/include/libxml2 -I../DependenciesGTK/Root/include/glib-2.0 -I../DependenciesGTK/Root/lib64/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I../DependenciesGTK/Root/include/harfbuzz -I../DependenciesGTK/Root/include/libsoup-2.4 -I../DependenciesGTK/Root/include/gtk-3.0 -I../DependenciesGTK/Root/include/atk-1.0 -I../DependenciesGTK/Root/include/at-spi2-atk/2.0 -I../DependenciesGTK/Root/include/gio-unix-2.0 -I../DependenciesGTK/Root/include/gdk-pixbuf-2.0 -I../DependenciesGTK/Root/include/freetype2 -I../DependenciesGTK/Root/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libpng12 -I/usr/include/libdrm -I../DependenciesGTK/Root/include/gtk-3.0/unix-print -Wall -Wextra -Wcast-align -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wundef -Wwrite-strings -include /home/slave/webkitgtk/gtk-linux-64-release/build/Source/WebKit2/WebKit2Prefix.h -MMD -MT Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/API/gtk/WebKitContextMenuClient.cpp.o -MF "Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/API/gtk/WebKitContextMenuClient.cpp.o.d" -o Source/WebKit2/CMakeFiles/WebKit2.dir/UIProcess/API/gtk/WebKitContextMenuClient.cpp.o -c ../../Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp ../../Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp:37:10: error: ‘bool ContextMenuClient::getContextMenuFromProposedMenu(WebKit::WebPageProxy&, const WTF::Vector<WebKit::WebContextMenuItemData>&, WTF::Vector<WebKit::WebContextMenuItemData>&, const WebKit::WebHitTestResult::Data&, API::Object*)’ marked override, but does not override bool getContextMenuFromProposedMenu(WebPageProxy&, const Vector<WebContextMenuItemData>& proposedMenu, Vector<WebContextMenuItemData>&, const WebHitTestResult::Data& hitTestResultData, API::Object* userData) override
WebKit Commit Bot
Comment 24 2015-04-02 17:49:59 PDT
Re-opened since this is blocked by bug 143355
Csaba Osztrogonác
Comment 25 2015-04-02 22:44:03 PDT
Relanded in http://trac.webkit.org/changeset/182303. ( But the build is still broken. :( )
Csaba Osztrogonác
Comment 26 2015-04-02 23:37:43 PDT
Csaba Osztrogonác
Comment 27 2015-04-02 23:51:47 PDT
GTK build is still broken: ../../Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuClient.cpp:37:10: error: ‘bool ContextMenuClient::getContextMenuFromProposedMenu(WebKit::WebPageProxy&, const WTF::Vector<WebKit::WebContextMenuItemData>&, WTF::Vector<WebKit::WebContextMenuItemData>&, const WebKit::WebHitTestResult::Data&, API::Object*)’ marked override, but does not override bool getContextMenuFromProposedMenu(WebPageProxy&, const Vector<WebContextMenuItemData>& proposedMenu, Vector<WebContextMenuItemData>&, const WebHitTestResult::Data& hitTestResultData, API::Object* userData) override ^
Philippe Normand
Comment 28 2015-04-03 02:21:39 PDT
Note You need to log in before you can comment on or make changes to this bug.