Summary: | [CAIRO]GtkLauncher crashes when loading LayoutTest text-shadow-extreme-value.html | ||
---|---|---|---|
Product: | WebKit | Reporter: | Mihnea Ovidenie <mihnea> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | alex, bfulgham, mrobinson |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | Linux | ||
Bug Depends on: | 40793 | ||
Bug Blocks: |
Description
Mihnea Ovidenie
2010-07-12 08:21:45 PDT
Debugging a little, i have found that the allocation of m_effectBuffer in FilterEffect::getEffectContext() fails. In the first place, i have thought that the fix for the problem is to add a null check in this function, but then i have realized that the problem appears because in function GraphicsContext::calculateShadowBufferDimensions the kernel size is not limitted at all. The LayoutTest uses a blurRadius = 38005685px, which gives a very bug kernel that is not limitted to 1000 as in GraphicsContext::createPlatformShadow (both from GraphicsContextCairo.cpp). * I think the fix should be to limit the kernel size in calculateShadowBufferDimensions the same way it is done in createPlatformShadow * Taking a look at GraphicsContext::setPlatformShadow() from GraphicsContextCG.cpp, i can see that the blurRadius is clamped to 1000, not the kernel, which in the case of Cairo port (Win/Gtk) is computed to be sqrt(2*blurRadius). Am i missing something here? Regards, Mihnea Ovidenie Soon the blur radius will be limited to 128, similar to other ports. See this bug: https://bugs.webkit.org/show_bug.cgi?id=45599 The shadows code has changed completely, I've tested it and it does not crash anymore. Feel free to reopen if I missed something. |