RESOLVED FIXED 182869
[WinCairo] Add WKView and WKAPI
https://bugs.webkit.org/show_bug.cgi?id=182869
Summary [WinCairo] Add WKView and WKAPI
Yousuke Kimoto
Reported 2018-02-16 04:57:55 PST
WKView.[cpp|h] and WKAPICastWin.h are required to build wincairo webkit. This ticket is to just add those files.
Attachments
bz182869-1.patch (12.50 KB, patch)
2018-02-16 05:16 PST, Yousuke Kimoto
no flags
Patch (13.46 KB, patch)
2018-03-05 04:40 PST, Yousuke Kimoto
no flags
Patch (12.97 KB, patch)
2018-03-08 05:46 PST, Yousuke Kimoto
no flags
Patch (126.98 KB, patch)
2018-04-11 03:54 PDT, Fujii Hironori
no flags
Archive of layout-test-results from ews200 for win-future (12.67 MB, application/zip)
2018-04-11 06:18 PDT, EWS Watchlist
no flags
Patch (117.01 KB, patch)
2018-04-16 23:43 PDT, Fujii Hironori
no flags
Archive of layout-test-results from ews103 for mac-sierra (2.28 MB, application/zip)
2018-04-17 00:50 PDT, EWS Watchlist
no flags
Archive of layout-test-results from ews206 for win-future (12.60 MB, application/zip)
2018-04-17 01:40 PDT, EWS Watchlist
no flags
Patch (107.33 KB, patch)
2018-04-23 20:15 PDT, Fujii Hironori
no flags
Patch for landing (107.49 KB, patch)
2018-04-24 20:11 PDT, Fujii Hironori
no flags
Yousuke Kimoto
Comment 1 2018-02-16 05:16:17 PST
Created attachment 334031 [details] bz182869-1.patch
Yousuke Kimoto
Comment 2 2018-03-02 02:29:38 PST
Comment on attachment 334031 [details] bz182869-1.patch For wincairo webkit, WKAPICast.h needs to include "WKAPICastWin.h". I'll fix it.
Yousuke Kimoto
Comment 3 2018-03-05 04:40:33 PST
Alex Christensen
Comment 4 2018-03-05 13:47:48 PST
Comment on attachment 334997 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=334997&action=review > Source/WebKit/UIProcess/API/C/win/WKView.cpp:65 > +void WKViewSetIsInWindow(WKViewRef viewRef, bool isInWindow) > +{ > + notImplemented(); > +} Let's not add unimplemented API. > Source/WebKit/UIProcess/API/C/win/WKView.cpp:112 > +void WKViewSetDrawsTransparentBackground(WKViewRef viewRef, bool drawsTransparentBackground) > +{ > +} ditto. > Source/WebKit/UIProcess/API/C/win/WKView.cpp:117 > +bool WKViewDrawsTransparentBackground(WKViewRef viewRef) > +{ > + return false; > +} This is also basically unimplemented. > Source/WebKit/UIProcess/API/C/win/WKView.h:76 > + WK_EXPORT void WKViewSetInitialFocus(WKViewRef view, bool forward); forward is probably the wrong name here.
Yousuke Kimoto
Comment 5 2018-03-08 05:46:11 PST
Yousuke Kimoto
Comment 6 2018-03-08 05:56:06 PST
Thank you for your review. (In reply to Alex Christensen from comment #4) > Comment on attachment 334997 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=334997&action=review > > > Source/WebKit/UIProcess/API/C/win/WKView.cpp:65 > > +void WKViewSetIsInWindow(WKViewRef viewRef, bool isInWindow) > > +{ > > + notImplemented(); > > +} > > Let's not add unimplemented API. Fixed. > > Source/WebKit/UIProcess/API/C/win/WKView.cpp:112 > > +void WKViewSetDrawsTransparentBackground(WKViewRef viewRef, bool drawsTransparentBackground) > > +{ > > +} > > ditto. > > Source/WebKit/UIProcess/API/C/win/WKView.cpp:117 > > +bool WKViewDrawsTransparentBackground(WKViewRef viewRef) > > +{ > > + return false; > > +} > > This is also basically unimplemented. Those two APIs are not used for now, so they were just removed. > > Source/WebKit/UIProcess/API/C/win/WKView.h:76 > > + WK_EXPORT void WKViewSetInitialFocus(WKViewRef view, bool forward); > > forward is probably the wrong name here. "isForward" is used instead by mimicking WKViewSetIsInWindow()'s boolean variable name.
Alex Christensen
Comment 7 2018-03-28 15:55:44 PDT
Comment on attachment 335295 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=335295&action=review This is adding a file that doesn't compile. Let's not. > Source/WebKit/UIProcess/API/C/win/WKAPICastWin.h:2 > + * Copyright (C) 2010 Apple Inc. All rights reserved. If this is resurrecting old code, please indicate the initial commit this came from. > Source/WebKit/UIProcess/API/C/win/WKAPICastWin.h:38 > +WK_ADD_API_MAPPING(WKViewRef, WebView) Is WebView correct? I think we might want something more like WebPageProxy here. > Source/WebKit/UIProcess/API/C/win/WKView.cpp:32 > +#include "WebView.h" WebView.h doesn't exist in modern WebKit. Does this compile?
Fujii Hironori
Comment 8 2018-04-11 03:54:08 PDT
EWS Watchlist
Comment 9 2018-04-11 06:17:55 PDT
Comment on attachment 337690 [details] Patch Attachment 337690 [details] did not pass win-ews (win): Output: http://webkit-queues.webkit.org/results/7282666 New failing tests: http/tests/security/contentSecurityPolicy/userAgentShadowDOM/allow-audio.html
EWS Watchlist
Comment 10 2018-04-11 06:18:06 PDT
Created attachment 337694 [details] Archive of layout-test-results from ews200 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Fujii Hironori
Comment 11 2018-04-13 21:16:58 PDT
Could anyone review?
Alex Christensen
Comment 12 2018-04-16 08:50:30 PDT
Comment on attachment 337690 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=337690&action=review > Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp:35 > +const LPCWSTR webKitDLLName = L"WebKit2.dll"; Do we want this name? > Source/WebKit/UIProcess/win/WebContextMenuProxyWin.h:51 > + WebPageProxy* m_page; It looks like this could be a WebPageProxy&. > Source/WebKit/UIProcess/win/WebView.cpp:72 > +SOFT_LINK_LIBRARY(IMM32) Why are we soft linking instead of directly linking? > Source/WebKit/UIProcess/win/WebView.cpp:245 > + , m_toolTipWindow(0) These should be { nullptr } in the header. > Source/WebKit/UIProcess/win/WebView.h:57 > + static WebView* create(RECT rect, const API::PageConfiguration& configuration, HWND parentWindow) This should return a std::unique_ptr or UniqueRef.
Fujii Hironori
Comment 13 2018-04-16 21:51:51 PDT
Comment on attachment 337690 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=337690&action=review Thank you for the review. >> Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp:35 >> +const LPCWSTR webKitDLLName = L"WebKit2.dll"; > > Do we want this name? I will remove the variable. >> Source/WebKit/UIProcess/win/WebView.cpp:72 >> +SOFT_LINK_LIBRARY(IMM32) > > Why are we soft linking instead of directly linking? I don't know the reason. SOFT_LINK was used since Bug 51049. I will link it directly.
Fujii Hironori
Comment 14 2018-04-16 22:52:52 PDT
Comment on attachment 337690 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=337690&action=review >> Source/WebKit/UIProcess/win/WebView.h:57 >> + static WebView* create(RECT rect, const API::PageConfiguration& configuration, HWND parentWindow) > > This should return a std::unique_ptr or UniqueRef. WebView is an APIObject. It needs to be leaked to convert C object. WebProcessPool::create return Ref<WebProcessPool> and using leakRef() to convert C object. > static Ref<WebProcessPool> create(API::ProcessPoolConfiguration&); > WKContextRef WKContextCreate() > { > auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions(); > return toAPI(&WebProcessPool::create(configuration).leakRef()); > } I will use this style for WebView.
Fujii Hironori
Comment 15 2018-04-16 23:43:21 PDT
EWS Watchlist
Comment 16 2018-04-17 00:50:22 PDT
Comment on attachment 338081 [details] Patch Attachment 338081 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/7340707 New failing tests: animations/needs-layout.html
EWS Watchlist
Comment 17 2018-04-17 00:50:23 PDT
Created attachment 338086 [details] Archive of layout-test-results from ews103 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 18 2018-04-17 01:40:04 PDT
Comment on attachment 338081 [details] Patch Attachment 338081 [details] did not pass win-ews (win): Output: http://webkit-queues.webkit.org/results/7341027 New failing tests: http/tests/security/video-poster-cross-origin-crash2.html
EWS Watchlist
Comment 19 2018-04-17 01:40:16 PDT
Created attachment 338091 [details] Archive of layout-test-results from ews206 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews206 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Fujii Hironori
Comment 20 2018-04-17 22:58:24 PDT
Could you review again, Alex?
Fujii Hironori
Comment 21 2018-04-23 03:17:29 PDT
Could anyone review this?
Fujii Hironori
Comment 22 2018-04-23 20:15:48 PDT
Created attachment 338632 [details] Patch * Removed half-baked IME support to simplify this patch.
Alex Christensen
Comment 23 2018-04-24 11:00:18 PDT
Comment on attachment 338632 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=338632&action=review > Source/WebKit/UIProcess/Launcher/ProcessLauncher.h:96 > + HANDLE m_hProcess; You might consider using a Win32Handle here.
Fujii Hironori
Comment 24 2018-04-24 20:11:06 PDT
Created attachment 338701 [details] Patch for landing
Fujii Hironori
Comment 25 2018-04-24 20:36:34 PDT
Radar WebKit Bug Importer
Comment 26 2018-04-24 20:38:56 PDT
Note You need to log in before you can comment on or make changes to this bug.