RESOLVED FIXED 95680
[EFL][WK2] CSS3 Media Queries functionality is broken
https://bugs.webkit.org/show_bug.cgi?id=95680
Summary [EFL][WK2] CSS3 Media Queries functionality is broken
Alexander Shalamov
Reported 2012-09-03 04:46:33 PDT
WebCore/platform/PlatformScreenEfl.cpp has implementation that requires access to ewk_view (main evas object) to get evas object properties. In WK2, WebProcess doesn't have access to that evas object, therefore, methods that get screen rect or screen depth either return incorrect value or crash. Dependency to evas object should be removed as it is done in other ports.
Attachments
Patch (5.77 KB, patch)
2012-09-03 05:01 PDT, Alexander Shalamov
no flags
Patch (8.70 KB, patch)
2012-09-04 00:21 PDT, Alexander Shalamov
no flags
Patch_3 (8.81 KB, patch)
2012-09-04 01:34 PDT, Alexander Shalamov
kenneth: review+
kenneth: commit-queue-
Patch_4 (8.82 KB, patch)
2012-09-04 02:30 PDT, Alexander Shalamov
no flags
Alexander Shalamov
Comment 1 2012-09-03 05:01:21 PDT
Alexander Shalamov
Comment 2 2012-09-03 05:21:53 PDT
Comment on attachment 161900 [details] Patch Need to unskip media query tests
Chris Dumez
Comment 3 2012-09-03 05:30:22 PDT
Comment on attachment 161900 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=161900&action=review Can you unskip any test with this fix? > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:54 > + int error = ecore_x_init(0); \ How about calling it success? > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:55 > + if (error > 0) { \ if (success) { \ > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:63 > + ecore_x_shutdown(); \ Should be inside the if scope. > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:118 > + CALL_WITH_ECORE_X(ecore_x_screen_size_get(screen, &w, &h);) Would be nicer if it would be: CALL_WITH_ECORE_X(ecore_x_screen_size_get(screen, &w, &h));
Alexander Shalamov
Comment 4 2012-09-04 00:21:25 PDT
Created attachment 161977 [details] Patch - Applied fixes according to review comments - Unskipped failing WK2 layout tests
Chris Dumez
Comment 5 2012-09-04 00:25:39 PDT
Comment on attachment 161977 [details] Patch LGTM. Thanks.
Kenneth Rohde Christiansen
Comment 6 2012-09-04 00:35:33 PDT
Comment on attachment 161977 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=161977&action=review > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:98 > + switch (depth) { > + case 0: comment about this case? > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:118 > + CALL_WITH_ECORE_X(ecore_x_screen_size_get(screen, &w, &h)); isn't it "expensive" initializing and shutting ecore_x down? no caching?
Gyuyoung Kim
Comment 7 2012-09-04 01:02:54 PDT
Comment on attachment 161977 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=161977&action=review > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:117 > + int w = 0, h = 0; Please use "width and height" instead of abbreviation.
Alexander Shalamov
Comment 8 2012-09-04 01:18:04 PDT
(In reply to comment #6) > (From update of attachment 161977 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=161977&action=review > > > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:98 > > + switch (depth) { > > + case 0: > > comment about this case? I was thinking about case when we get 0 from ecore_x_default_depth_get. If that case is removed, default case would be hit and 0 will be returned. I can remove it if you think it is not required. > > > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:118 > > + CALL_WITH_ECORE_X(ecore_x_screen_size_get(screen, &w, &h)); > > isn't it "expensive" initializing and shutting ecore_x down? no caching? It is cached inside ecore_x (ref counted). If ecore_x_init was called before, all consecutive init / shutdown calls will increment and decrement ref count. In efl wk1 and wk2, we call ecore_x_init at startup of the process. If X is not running or DISPLAY variable is unset, ecore_x init will fail immediately and we will not call any ecore_x function.
Alexander Shalamov
Comment 9 2012-09-04 01:34:42 PDT
Created attachment 161986 [details] Patch_3 - Added comment for case 0: - w,h => width, height
Kenneth Rohde Christiansen
Comment 10 2012-09-04 01:47:13 PDT
Comment on attachment 161986 [details] Patch_3 View in context: https://bugs.webkit.org/attachment.cgi?id=161986&action=review > Source/WebCore/platform/efl/PlatformScreenEfl.cpp:97 > + // In case when 0 is returned by screenDepth, fallback to 8 bit per component End comments with punctuation mark.. // Special tread 0 as an error, and return 8 bit per component.
Alexander Shalamov
Comment 11 2012-09-04 02:30:09 PDT
Created attachment 161994 [details] Patch_4 Fixed comment as proposed by Kenneth.
WebKit Review Bot
Comment 12 2012-09-04 06:30:11 PDT
Comment on attachment 161994 [details] Patch_4 Clearing flags on attachment: 161994 Committed r127463: <http://trac.webkit.org/changeset/127463>
WebKit Review Bot
Comment 13 2012-09-04 06:30:16 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.