OrlandoLabao43 / sandrob

Automatically exported from code.google.com/p/sandrob
2 stars 0 forks source link

SVG rendering support #42

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Investigate if it is possible to add SVG rendering

http://code.google.com/p/android/issues/detail?id=1376

Original issue reported on code.google.com by supp.san...@gmail.com on 22 Aug 2011 at 8:53

GoogleCodeExporter commented 8 years ago

Original comment by supp.san...@gmail.com on 22 Aug 2011 at 8:53

GoogleCodeExporter commented 8 years ago
webkit compiled with svg support for stock 2.3.3
http://code.google.com/p/sandrob/downloads/detail?name=sandrob_stock233_1_0_3_32
.apk

some examples to test
http://croczilla.com/bits_and_pieces/svg/samples/

Try to do the same for 2.2.x/2.1.x/cm6.1/cm7.0

Original comment by supp.san...@gmail.com on 22 Aug 2011 at 9:05

GoogleCodeExporter commented 8 years ago
Version for stock 2.3.3 is on the Market

Original comment by supp.san...@gmail.com on 23 Aug 2011 at 1:18

GoogleCodeExporter commented 8 years ago
Version for stock 2.2 is on the Market.
Trying to make it work on 2.1.

Site https://www.github.com crashes browser. 
Looks like 

https://a248.e.akamai.net/assets.github.com/images/modules/footer/blacktocat.svg
https://a248.e.akamai.net/assets.github.com/images/modules/footer/footer-logo.sv
g

are problem. 

Original comment by supp.san...@gmail.com on 27 Aug 2011 at 6:55

GoogleCodeExporter commented 8 years ago
Problem is that svg is used as favicon.
Not fixed yet.

Original comment by supp.san...@gmail.com on 8 Oct 2011 at 10:12

GoogleCodeExporter commented 8 years ago
Making some progress debuging native code, so issue can be soon solved.
Wonder how many sites uses SVG for favicon...

Original comment by supp.san...@gmail.com on 14 Nov 2011 at 7:07

GoogleCodeExporter commented 8 years ago
using ndk-stack to match callstack with source

http://www.android-dev.ro/2011/07/11/android-ndk-revision-6/

adb logcat | ndk-stack -sym 
/media/verbatim/cm/out/debug/target/product/generic/symbols/system/

pid: 10264, tid: 10277  >>> org.sandrob.stock233 <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000000ac
Stack frame #00  pc 000308e8  /system/lib/libskia.so 
(_ZN8SkRegion2opERKS_S1_NS_2OpE): Routine next in 
external/skia/src/core/SkRegion.cpp:1304
Stack frame #01  pc 00031714  /system/lib/libskia.so 
(_ZN8SkRegion2opERKS_RK7SkIRectNS_2OpE): Routine init in 
external/skia/src/core/SkRegion.cpp:580
Stack frame #02  pc 00269f92  
/data/data/org.sandrob.stock233/lib/libwebcores237.so: Routine op in 
external/webkit/WebKit/android/jni/WebViewCore.cpp:1060
Stack frame #03  pc 0026a0d0  
/data/data/org.sandrob.stock233/lib/libwebcores237.so: Routine offInvalidate in 
external/webkit/WebKit/android/jni/WebViewCore.cpp:1069
Stack frame #04  pc 0019a1e8  
/data/data/org.sandrob.stock233/lib/libwebcores237.so: Routine 
platformOffscreenContentRectangle in 
external/webkit/WebCore/platform/android/ScrollViewAndroid.cpp:118
Stack frame #05  pc 001856b2  
/data/data/org.sandrob.stock233/lib/libwebcores237.so: Routine 
repaintContentRectangle in 
external/webkit/WebCore/platform/graphics/IntSize.h:75

Original comment by supp.san...@gmail.com on 14 Nov 2011 at 7:56

GoogleCodeExporter commented 8 years ago

fix in Routine offInvalidate in 
external/webkit/WebKit/android/jni/WebViewCore.cpp:1069

void WebViewCore::offInvalidate(const WebCore::IntRect &r)
{
    // FIXME: these invalidates are offscreen, and can be throttled or
    // deferred until the area is visible. For now, treat them as
    // regular invals so that drawing happens (inefficiently) for now.

    // line commented by SandroB causing crash on https//wwww.github.com 
    // when SVG is enabled
    // contentInvalidate(r);
}

Original comment by supp.san...@gmail.com on 14 Nov 2011 at 8:48

GoogleCodeExporter commented 8 years ago
function
void WebViewCore::offInvalidate(const WebCore::IntRect &r)
is still used so it can not be just commented out

some offscreen region are not refreshed if this is done

must find finer solution in these ones
platformOffscreenContentRectangle in 
external/webkit/WebCore/platform/android/ScrollViewAndroid.cpp:118
repaintContentRectangle in 
external/webkit/WebCore/platform/graphics/IntSize.h:75

Original comment by supp.san...@gmail.com on 14 Nov 2011 at 10:47

GoogleCodeExporter commented 8 years ago
fixed with the code from ICS android 4.0.1 source 

void ScrollView::platformOffscreenContentRectangle(const IntRect& vis, const 
IntRect& rect)
{
    android::WebViewCore* core = android::WebViewCore::getWebViewCore(this);

    ///////////////////////////////////////
    // sandrob added from ICS android 4.0.1
    if (!core) // SVG does not instantiate webviewcore
        return; // and doesn't need to record drawing offscreen
    /////////////////////////////////////// 

    SkRegion rectRgn = SkRegion(rect);
    rectRgn.op(vis, SkRegion::kDifference_Op);
    SkRegion::Iterator iter(rectRgn);
    for (; !iter.done(); iter.next()) {
        const SkIRect& diff = iter.rect();
        core->offInvalidate(diff);
    }
}

Original comment by supp.san...@gmail.com on 16 Nov 2011 at 6:49

GoogleCodeExporter commented 8 years ago
version is on the market

Original comment by supp.san...@gmail.com on 17 Nov 2011 at 12:36

GoogleCodeExporter commented 8 years ago

Original comment by supp.san...@gmail.com on 22 Nov 2011 at 9:57