[webkit-dev] forwarding headers and CMake

2015-07-28 Thread Alex Christensen
In my work getting CMake working on Windows, I discovered a subtle difference 
in how forwarding headers are made.  In the existing build system, a forwarding 
header contains the entire contents of the original header.  In the current 
CMake build, the WEBKIT_CREATE_FORWARDING_HEADERS macro creates lots of one 
line files that #include the original file.

For example, my JSBase.h forwarding header contains only this one line:
#include “JavaScriptCore/API/JSBase.h”

In order to switch the Windows build over to use CMake, I’m pretty sure we 
would need the entire contents of the headers to be copied to the build 
directory.  Would changing this build behavior cause a problem for the GTK or 
EFL ports?  If so, I would probably make the forwarding headers macros port 
specific.

Alex
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] border-radius lost when applying -webkit-filter

2015-07-28 Thread Vienneau, Christopher
Hi,

I'm on a slightly older pull from WebKit trunk (179714) and I'm seeing this 
issue where border radius is lost if a css filter is also applied.  My sample 
page looks like this:
!DOCTYPE html

html
titleBasic CSS Filters/title
headBasic CSS Filters/head

style
#pic {
  border-radius: 10px;
  -webkit-filter: sepia(0.8);
}
/style

body
div
  img id=pic src=testImage.jpg
/div
/body
/html

When I run with the above code the image is rendered with the Sepi filter, but 
the border radius is not applied.  If I comment out the filter the image is 
properly rendered with the border radius applied.  By debugging I can see that 
a different code path is followed in the two cases.
Without the filter:
 WebKitd.dll!WebCore::GraphicsContext::clip(const WebCore::Path  
 path, WebCore::WindRule windRule) Line 951C++
   WebKitd.dll!WebCore::GraphicsContext::clipRoundedRect(const 
WebCore::FloatRoundedRect  rect) Line 586 C++
   
WebKitd.dll!WebCore::RenderBoxModelObject::clipRoundedInnerRect(WebCore::GraphicsContext
 * context, const WebCore::FloatRect  rect, const WebCore::FloatRoundedRect  
clipRect) Line 540  C++
   WebKitd.dll!WebCore::RenderReplaced::paint(WebCore::PaintInfo  
paintInfo, const WebCore::LayoutPoint  paintOffset) Line 180  C++
...
we get into clipRoundedInnerRect which goes into the code which can perform the 
clipping operation, and all works as expected.

With the Filter (3 callstacks below):
 WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
 WebCore::FloatRoundedRect  roundedRect) Line 377  C++
   WebKitd.dll!WebCore::RenderLayerBacking::updateImageContents() 
Line 1960C++
   WebKitd.dll!WebCore::RenderLayerBacking::updateConfiguration() 
Line 595  C++
   
WebKitd.dll!WebCore::RenderLayerCompositor::rebuildCompositingLayerTree(WebCore::RenderLayer
  layer, WTF::VectorWebCore::GraphicsLayer *,0,WTF::CrashOnOverflow  
childLayersOfEnclosingLayer, int depth) Line 1522 C++
...

 WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
 WebCore::FloatRoundedRect  roundedRect) Line 377  C++
   WebKitd.dll!WebCore::RenderLayerBacking::resetContentsRect() 
Line 1124   C++
   
WebKitd.dll!WebCore::RenderLayerBacking::updateAfterDescendants() Line 1003 
 C++
   
WebKitd.dll!WebCore::RenderLayerCompositor::rebuildCompositingLayerTree(WebCore::RenderLayer
  layer, WTF::VectorWebCore::GraphicsLayer *,0,WTF::CrashOnOverflow  
childLayersOfEnclosingLayer, int depth) Line 1609 C++
...
 WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
 WebCore::FloatRoundedRect  roundedRect) Line 377  C++
   WebKitd.dll!WebCore::RenderLayerBacking::resetContentsRect() 
Line 1124   C++
   
WebKitd.dll!WebCore::RenderLayerBacking::updateAfterDescendants() Line 1003 
 C++

WebKitd.dll!WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry(WebCore::RenderLayer
  compositingAncestor, WebCore::RenderLayer  layer, bool 
compositedChildrenOnly) Line 1862   C++
...

In this path we never call clipRoundedInnerRect, we do however call 
setContentsClippingRect with what looks like appropriate parameters to do what 
we would want.  However upon investigation it appears that this data is not 
used by anything.  Looking at other ports it seems that GraphicsLayerCA.cpp may 
be making use of this data in its clipping technique.

Looking for fixes that might already be available I found the two below 
interesting, however note that I already have these in the change that we last 
took.  They just sounds extremely similar to what I'm describing.
http://trac.webkit.org/changeset/179147
http://trac.webkit.org/changeset/175794


I'm wondering if it can be confirmed that this issue has been a problem for 
other ports as well?  Are there any fixes that address my problem that I may 
have overlooked?  What if anything needs to be done to support this (is 
something like what is done in the CA port a requirement?)  Any advice on 
implementing the minimal changes, CA's changes appear extensive.

Thanks for any advice

Chris  Vienneau
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] border-radius lost when applying -webkit-filter

2015-07-28 Thread Myles C. Maxfield
This works for me using the latest ToT build. I would recommend updating your 
source tree.

--Myles
 On Jul 28, 2015, at 4:52 PM, Vienneau, Christopher cvienn...@ea.com wrote:
 
 Hi,
  
 I’m on a slightly older pull from WebKit trunk (179714) and I’m seeing this 
 issue where border radius is lost if a css filter is also applied.  My sample 
 page looks like this:
 !DOCTYPE html
  
 html
 titleBasic CSS Filters/title
 headBasic CSS Filters/head
  
 style
 #pic {
   border-radius: 10px;
   -webkit-filter: sepia(0.8);
 }
 /style
  
 body
 div
   img id=pic src=testImage.jpg
 /div
 /body
 /html
  
 When I run with the above code the image is rendered with the Sepi filter, 
 but the border radius is not applied.  If I comment out the filter the image 
 is properly rendered with the border radius applied.  By debugging I can see 
 that a different code path is followed in the two cases.  
 Without the filter:
  WebKitd.dll!WebCore::GraphicsContext::clip(const WebCore::Path 
   path, WebCore::WindRule windRule) Line 951C++
WebKitd.dll!WebCore::GraphicsContext::clipRoundedRect(const 
 WebCore::FloatRoundedRect  rect) Line 586 C++

 WebKitd.dll!WebCore::RenderBoxModelObject::clipRoundedInnerRect(WebCore::GraphicsContext
  * context, const WebCore::FloatRect  rect, const WebCore::FloatRoundedRect 
  clipRect) Line 540  C++
WebKitd.dll!WebCore::RenderReplaced::paint(WebCore::PaintInfo 
  paintInfo, const WebCore::LayoutPoint  paintOffset) Line 180  C++
 …
 we get into clipRoundedInnerRect which goes into the code which can perform 
 the clipping operation, and all works as expected.
  
 With the Filter (3 callstacks below):
  
  WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
  WebCore::FloatRoundedRect  roundedRect) Line 377  C++
WebKitd.dll!WebCore::RenderLayerBacking::updateImageContents() 
 Line 1960C++
WebKitd.dll!WebCore::RenderLayerBacking::updateConfiguration() 
 Line 595  C++

 WebKitd.dll!WebCore::RenderLayerCompositor::rebuildCompositingLayerTree(WebCore::RenderLayer
   layer, WTF::VectorWebCore::GraphicsLayer *,0,WTF::CrashOnOverflow  
 childLayersOfEnclosingLayer, int depth) Line 1522 C++
 …
  
  
  WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
  WebCore::FloatRoundedRect  roundedRect) Line 377  C++
WebKitd.dll!WebCore::RenderLayerBacking::resetContentsRect() 
 Line 1124   C++

 WebKitd.dll!WebCore::RenderLayerBacking::updateAfterDescendants() Line 1003   
C++

 WebKitd.dll!WebCore::RenderLayerCompositor::rebuildCompositingLayerTree(WebCore::RenderLayer
   layer, WTF::VectorWebCore::GraphicsLayer *,0,WTF::CrashOnOverflow  
 childLayersOfEnclosingLayer, int depth) Line 1609 C++
 …
  
  WebKitd.dll!WebCore::GraphicsLayer::setContentsClippingRect(const 
  WebCore::FloatRoundedRect  roundedRect) Line 377  C++
WebKitd.dll!WebCore::RenderLayerBacking::resetContentsRect() 
 Line 1124   C++

 WebKitd.dll!WebCore::RenderLayerBacking::updateAfterDescendants() Line 1003   
C++
 
 WebKitd.dll!WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry(WebCore::RenderLayer
   compositingAncestor, WebCore::RenderLayer  layer, bool 
 compositedChildrenOnly) Line 1862   C++
 …
  
 In this path we never call clipRoundedInnerRect, we do however call 
 setContentsClippingRect with what looks like appropriate parameters to do 
 what we would want.  However upon investigation it appears that this data is 
 not used by anything.  Looking at other ports it seems that 
 GraphicsLayerCA.cpp may be making use of this data in its clipping technique.
  
 Looking for fixes that might already be available I found the two below 
 interesting, however note that I already have these in the change that we 
 last took.  They just sounds extremely similar to what I’m describing.
 http://trac.webkit.org/changeset/179147 
 http://trac.webkit.org/changeset/179147
 http://trac.webkit.org/changeset/175794 
 http://trac.webkit.org/changeset/175794
  
  
 I’m wondering if it can be confirmed that this issue has been a problem for 
 other ports as well?  Are there any fixes that address my problem that I may 
 have overlooked?  What if anything needs to be done to support this (is 
 something like what is done in the CA port a requirement?)  Any advice on 
 implementing the minimal changes, CA’s changes appear extensive.
  
 Thanks for any advice
  
 Chris  Vienneau
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org mailto:webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev 
 https://lists.webkit.org/mailman/listinfo/webkit-dev
___

Re: [webkit-dev] forwarding headers and CMake

2015-07-28 Thread Martin Robinson
I think this might cause issues, because it requires the forwarding
headers be regenerated when any of the target headers change. Why does
Windows need this change? Are the headers being copied for some
packaging purpose? If so, perhaps that can be a separate step specific
to Windows.

--Martin

On Tue, Jul 28, 2015 at 6:03 PM, Alex Christensen
achristen...@apple.com wrote:
 In my work getting CMake working on Windows, I discovered a subtle difference 
 in how forwarding headers are made.  In the existing build system, a 
 forwarding header contains the entire contents of the original header.  In 
 the current CMake build, the WEBKIT_CREATE_FORWARDING_HEADERS macro creates 
 lots of one line files that #include the original file.

 For example, my JSBase.h forwarding header contains only this one line:
 #include “JavaScriptCore/API/JSBase.h”

 In order to switch the Windows build over to use CMake, I’m pretty sure we 
 would need the entire contents of the headers to be copied to the build 
 directory.  Would changing this build behavior cause a problem for the GTK or 
 EFL ports?  If so, I would probably make the forwarding headers macros port 
 specific.

 Alex
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Infinite JavaScript loop blocks the MiniBrowser

2015-07-28 Thread Pascal Jacquemart
Hello,

I am trying to protect the MiniBrowser from executing faulty JavaScript code 
taking too much time / CPU. All browsers normally raise a pop-up allowing the 
user to stop the script and run away.
But MiniBrowser does not seem to have such feature. It is just stuck forever ;-(

After a little digging I found this JSC API: 
JSContextGroupSetExecutionTimeLimit()
I had to implement a JSC Watchdog back-end because it is not implemented for 
EFL, fair enough - https://bugs.webkit.org/show_bug.cgi?id=147107 (ongoing)

Now the JSContextGroupSetExecutionTimeLimit() have the expected behaviour.
I can stop the JavaScript execution and run away... Great but the big problem 
now is that the JavaScript won't restart. Even while loading other pages, the 
JavaScript remains disabled.

If you have any hints about this, I would be grateful.
How to restart JavaScript execution? Where to look? Is it an EFL bug?

Thanks,   Pascal Jacquemart

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Infinite JavaScript loop blocks the MiniBrowser

2015-07-28 Thread Geoffrey Garen
Mark, do you know how to restart JavaScript after it has reached a watchdog 
time limit?

Geoff

 On Jul 28, 2015, at 9:09 AM, Pascal Jacquemart p.jacquem...@samsung.com 
 wrote:
 
 Hello,
 
 I am trying to protect the MiniBrowser from executing faulty JavaScript code 
 taking too much time / CPU. All browsers normally raise a pop-up allowing the 
 user to stop the script and run away. 
 But MiniBrowser does not seem to have such feature. It is just stuck forever 
 ;-(
 
 After a little digging I found this JSC API: 
 JSContextGroupSetExecutionTimeLimit()
 I had to implement a JSC Watchdog back-end because it is not implemented for 
 EFL, fair enough - https://bugs.webkit.org/show_bug.cgi?id=147107 
 https://bugs.webkit.org/show_bug.cgi?id=147107 (ongoing)
 
 Now the JSContextGroupSetExecutionTimeLimit() have the expected behaviour.
 I can stop the JavaScript execution and run away... Great but the big problem 
 now is that the JavaScript won't restart. Even while loading other pages, the 
 JavaScript remains disabled.
 
 If you have any hints about this, I would be grateful.
 How to restart JavaScript execution? Where to look? Is it an EFL bug?
 
 Thanks,   Pascal Jacquemart
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org mailto:webkit-dev@lists.webkit.org
 https://lists.webkit.org/mailman/listinfo/webkit-dev 
 https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev