ChangeLog

 12010-12-26 Julien Chaffraix <jchaffraix@codeaurora.org>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 [Gtk] Port tiled backing store
 6 https://bugs.webkit.org/show_bug.cgi?id=45423
 7
 8 * configure.ac: Add Tile Backing Store feature configuration.
 9
1102010-12-24 Darin Adler <darin@apple.com>
211
312 Updated makefiles used by Apple engineers to fix build with the

WebCore/ChangeLog

 12010-12-26 Julien Chaffraix <jchaffraix@codeaurora.org>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 [Gtk] Port tiled backing store
 6 https://bugs.webkit.org/show_bug.cgi?id=45423
 7
 8 This is the GTK port of tiling mechanism implemented in 35146
 9
 10 * GNUmakefile.am: Feature defines and addition of files for compilation for the tile backing store.
 11 * page/Frame.cpp:
 12 (WebCore::Frame::tiledBackingStorePaintEnd):
 13 * platform/graphics/Tile.h:
 14 * platform/graphics/TiledBackingStore.cpp:
 15 (WebCore::TiledBackingStore::TiledBackingStore):
 16 * platform/graphics/gtk/TileGtk.cpp: Added to implement the Tile interface.
 17 (WebCore::checkeredPixmap):
 18 (WebCore::Tile::Tile):
 19 (WebCore::Tile::~Tile):
 20 (WebCore::Tile::isDirty):
 21 (WebCore::Tile::isReadyToPaint):
 22 (WebCore::Tile::invalidate):
 23 (WebCore::Tile::updateBackBuffer):
 24 (WebCore::Tile::swapBackBufferToFront):
 25 (WebCore::Tile::paint):
 26 (WebCore::Tile::paintCheckerPattern):
 27
1282010-12-24 Dan Bernstein <mitz@apple.com>
229
330 Try to fix the Qt build after r74648.

WebCore/GNUmakefile.am

@@webcoregtk_sources += \
38353835endif
38363836
38373837
 3838if ENABLE_TILED_BACKING_STORE
 3839FEATURE_DEFINES += ENABLE_TILED_BACKING_STORE=1
 3840
 3841webcore_cppflags += \
 3842 -DENABLE_TILED_BACKING_STORE=1
 3843
 3844webcore_sources += \
 3845 WebCore/platform/graphics/Tile.h \
 3846 WebCore/platform/graphics/TiledBackingStore.h \
 3847 WebCore/platform/graphics/TiledBackingStoreClient.h \
 3848 WebCore/platform/graphics/TiledBackingStore.cpp \
 3849 WebCore/platform/graphics/gtk/TileGtk.cpp
 3850
 3851endif # END ENABLE_TILED_BACKING_STORE
 3852
 3853
38383854# ---
38393855# Channel mesaging support
38403856# ---

WebCore/page/Frame.cpp

@@void Frame::tiledBackingStorePaintEnd(const Vector<IntRect>& paintedArea)
862862{
863863 if (!m_page || !m_view)
864864 return;
865  unsigned size = paintedArea.size();
 865 int size = paintedArea.size();
866866 // Request repaint from the system
867867 for (int n = 0; n < size; ++n)
868868 m_page->chrome()->invalidateContentsAndWindow(m_view->contentsToWindow(paintedArea[n]), false);

WebCore/platform/graphics/Tile.h

2828#include <wtf/PassRefPtr.h>
2929#include <wtf/RefCounted.h>
3030
 31#if PLATFORM(GTK)
 32#include "RefPtrCairo.h"
 33#endif
 34
3135#if PLATFORM(QT)
3236QT_BEGIN_NAMESPACE
3337class QPixmap;

@@class QRegion;
3539QT_END_NAMESPACE
3640#endif
3741
 42#if PLATFORM(GTK)
 43#ifdef GTK_API_VERSION_2
 44typedef struct _GdkRegion ScreenRegion;
 45#else
 46typedef struct _cairo_region_t ScreenRegion;
 47#endif
 48#endif
 49
3850namespace WebCore {
3951
4052class GraphicsContext;

@@private:
7183 QPixmap* m_backBuffer;
7284 QRegion* m_dirtyRegion;
7385#endif
 86
 87#if PLATFORM(GTK)
 88 RefPtr<cairo_surface_t> m_buffer;
 89 ScreenRegion* m_dirtyRegion;
 90#endif
7491};
7592
7693}

WebCore/platform/graphics/TiledBackingStore.cpp

@@TiledBackingStore::TiledBackingStore(TiledBackingStoreClient* client)
4242 , m_pendingScale(0)
4343 , m_contentsFrozen(false)
4444{
 45 setTileSize(m_tileSize);
4546}
4647
4748TiledBackingStore::~TiledBackingStore()

WebCore/platform/graphics/gtk/TileGtk.cpp

 1/*
 2 Copyright (C) 2010 codeaurora.org
 3 All rights reserved.
 4
 5 Redistribution and use in source and binary forms, with or without
 6 modification, are permitted provided that the following conditions
 7 are met:
 8 1. Redistributions of source code must retain the above copyright
 9 notice, this list of conditions and the following disclaimer.
 10 2. Redistributions in binary form must reproduce the above copyright
 11 notice, this list of conditions and the following disclaimer in the
 12 documentation and/or other materials provided with the distribution.
 13 3. The name of the author may not be used to endorse or promote products
 14 derived from this software without specific prior written permission.
 15
 16 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 17 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 18 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 19 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 20 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 21 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 22 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 23 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 25 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 26*/
 27
 28#include "config.h"
 29#include "Tile.h"
 30
 31#if ENABLE(TILED_BACKING_STORE)
 32
 33#include "GraphicsContext.h"
 34#include "GtkVersioning.h"
 35#include "TiledBackingStore.h"
 36#include "TiledBackingStoreClient.h"
 37#include <GOwnPtr.h>
 38#include <GRefPtr.h>
 39#include <RefPtrCairo.h>
 40#include <OwnPtrCairo.h>
 41#include <gtk/gtk.h>
 42
 43namespace WebCore {
 44
 45static const unsigned checkerSize = 16;
 46static const unsigned checkerColor1 = 0xff555555;
 47static const unsigned checkerColor2 = 0xffaaaaaa;
 48
 49static GdkPixmap* checkeredPixmap()
 50{
 51 static GdkPixmap* pixmap = 0;
 52
 53 if (pixmap)
 54 return pixmap;
 55 pixmap = gdk_pixmap_new(0, checkerSize, checkerSize, gdk_visual_get_depth(gdk_visual_get_system()));
 56 cairo_t* cr = gdk_cairo_create(pixmap);
 57 GraphicsContext context(cr);
 58 for (unsigned y = 0; y < checkerSize; y += checkerSize / 2) {
 59 bool alternate = y % checkerSize;
 60 for (unsigned x = 0; x < checkerSize; x += checkerSize / 2) {
 61 context.fillRect(FloatRect(x, y, checkerSize / 2, checkerSize / 2), alternate ? checkerColor1 : checkerColor2, ColorSpaceDeviceRGB);
 62 alternate = !alternate;
 63 }
 64 }
 65
 66 return pixmap;
 67}
 68
 69Tile::Tile(TiledBackingStore* backingStore, const Coordinate& tileCoordinate)
 70 : m_backingStore(backingStore)
 71 , m_coordinate(tileCoordinate)
 72 , m_rect(m_backingStore->tileRectForCoordinate(tileCoordinate))
 73{
 74#ifdef GTK_API_VERSION_2
 75 GdkRectangle rect = m_rect;
 76 m_dirtyRegion = gdk_region_rectangle(&rect);
 77#else
 78 cairo_rectangle_int_t rect = m_rect;
 79 m_dirtyRegion = cairo_region_create_rectangle(&rect);
 80#endif
 81}
 82
 83Tile::~Tile()
 84{
 85#ifdef GTK_API_VERSION_2
 86 gdk_region_destroy(m_dirtyRegion);
 87#else
 88 cairo_region_destroy(m_dirtyRegion);
 89#endif
 90}
 91
 92bool Tile::isDirty() const
 93{
 94#ifdef GTK_API_VERSION_2
 95 return !gdk_region_empty(m_dirtyRegion);
 96#else
 97 return !cairo_region_is_empty(m_dirtyRegion);
 98#endif
 99}
 100
 101bool Tile::isReadyToPaint() const
 102{
 103 return m_buffer;
 104}
 105
 106void Tile::invalidate(const IntRect& dirtyRect)
 107{
 108 IntRect tileDirtyRect = intersection(dirtyRect, m_rect);
 109 if (tileDirtyRect.isEmpty())
 110 return;
 111
 112#ifdef GTK_API_VERSION_2
 113 GdkRectangle rect = tileDirtyRect;
 114 gdk_region_union_with_rect(m_dirtyRegion, &rect);
 115#else
 116 cairo_rectangle_int_t rect = tileDirtyRect;
 117 cairo_region_union_rectangle(m_dirtyRegion, &rect);
 118#endif
 119}
 120
 121void Tile::updateBackBuffer()
 122{
 123 if (m_buffer && !isDirty())
 124 return;
 125
 126 if (!m_buffer)
 127 m_buffer = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, m_backingStore->m_tileSize.width(), m_backingStore->m_tileSize.height()));
 128
 129 int rectCount;
 130#ifdef GTK_API_VERSION_2
 131 GOwnPtr<GdkRectangle> rects;
 132 gdk_region_get_rectangles(m_dirtyRegion, &rects.outPtr(), &rectCount);
 133 gdk_region_destroy(m_dirtyRegion);
 134 m_dirtyRegion = gdk_region_new();
 135#else
 136 int rectCount = cairo_region_num_rectangles(m_dirtyRegion);
 137 GOwnPtr<GdkRectangle> rects(g_new(GdkRectangle, rectCount));
 138 for (int i = 0; i < rectCount; i++)
 139 cairo_region_get_rectangle(event->region, i, rects.get()+i);
 140 cairo_region_destroy(m_dirtyRegion);
 141 m_dirtyRegion = cairo_region_create();
 142#endif
 143
 144 RefPtr<cairo_t> cr = adoptRef(cairo_create(m_buffer.get()));
 145 GraphicsContext context(cr.get());
 146 context.translate(-m_rect.x(), -m_rect.y());
 147
 148 for (int i = 0; i < rectCount ; ++i) {
 149 context.save();
 150 IntRect rect = rects.get()[i];
 151 context.clip(FloatRect(rect));
 152 context.scale(FloatSize(m_backingStore->m_contentsScale, m_backingStore->m_contentsScale));
 153 m_backingStore->m_client->tiledBackingStorePaint(&context, m_backingStore->mapToContents(rect));
 154 context.restore();
 155 }
 156}
 157
 158void Tile::swapBackBufferToFront()
 159{
 160}
 161
 162void Tile::paint(GraphicsContext* context, const IntRect& rect)
 163{
 164 if (!m_buffer)
 165 return;
 166
 167 IntRect target = intersection(rect, m_rect);
 168 IntRect source(target.x() - m_rect.x(), target.y() - m_rect.y(), target.width(), target.height());
 169
 170 cairo_t* cr = context->platformContext();
 171 cairo_set_source_surface(cr, m_buffer.get(), target.x() - source.x(), target.y() - source.y());
 172 cairo_rectangle(cr, target.x(), target.y(), target.width(), target.height());
 173 cairo_fill(cr);
 174}
 175
 176void Tile::paintCheckerPattern(GraphicsContext* context, const FloatRect& target)
 177{
 178 cairo_t* cr = context->platformContext();
 179 gdk_cairo_set_source_pixmap(cr, checkeredPixmap(), 0, 0);
 180 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
 181 cairo_rectangle(cr, target.x(), target.y(), target.width(), target.height());
 182 cairo_fill(cr);
 183}
 184
 185}
 186#endif // ENABLE(TILED_BACKING_STORE)

WebKit/gtk/ChangeLog

 12010-12-26 Julien Chaffraix <jchaffraix@codeaurora.org>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 [Gtk] Port tiled backing store
 6 https://bugs.webkit.org/show_bug.cgi?id=45423
 7
 8 This is the GTK port of tiling mechanism implemented in 35146
 9
 10 * WebCoreSupport/ChromeClientGtk.cpp:
 11 (WebKit::ChromeClient::scroll): If enabled, use the backing store while scrolling.
 12 (WebKit::ChromeClient::delegatedScrollRequested):
 13 (WebKit::ChromeClient::contentsSizeChanged):
 14 (WebKit::ChromeClient::visibleRectForTiledBackingStore): Returns the visibleContentRect for the main frame.
 15 * WebCoreSupport/ChromeClientGtk.h:
 16 * webkit/webkitwebsettings.cpp:
 17 (webkit_web_settings_class_init):
 18 (webkit_web_settings_set_property):
 19 (webkit_web_settings_get_property):
 20 (webkit_web_settings_copy):
 21 * webkit/webkitwebview.cpp:
 22 (renderFromTiledBackingStore): Added to calculate the document dirty rect taking the scroll offsets and invoke the tile paint api.
 23 (paintWebView): Use the tile store if enabled when painting.
 24 (webkit_web_view_update_settings): Exposed a new property enable-tiled-backing-store on the webkitwebsettings object.
 25 (webkit_web_view_settings_notify):
 26
1272010-12-21 Philippe Normand <pnormand@igalia.com>
228
329 Reviewed by Eric Seidel.

WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp

6464#include "DatabaseTracker.h"
6565#endif
6666
 67#if ENABLE(TILED_BACKING_STORE)
 68#include "TiledBackingStore.h"
 69#endif
 70
6771using namespace WebCore;
6872
6973namespace WebKit {

@@void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con
380384 if (!window)
381385 return;
382386
 387#if ENABLE(TILED_BACKING_STORE)
 388 Frame* frame = core(m_webView)->mainFrame();
 389 if (frame && frame->tiledBackingStore())
 390 frame->tiledBackingStore()->adjustVisibleRect();
 391#endif
 392
383393 // We cannot use gdk_window_scroll here because it is only able to
384394 // scroll the whole window at once, and we often need to scroll
385395 // portions of the window only (think frames).

@@void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con
421431 gdk_window_process_updates(window, TRUE);
422432}
423433
 434#if ENABLE(TILED_BACKING_STORE)
 435void ChromeClient::delegatedScrollRequested(const IntSize& delta)
 436{
 437 notImplemented();
 438}
 439#endif
 440
424441// FIXME: this does not take into account the WM decorations
425442static IntPoint widgetScreenPosition(GtkWidget* widget)
426443{

@@void ChromeClient::contentsSizeChanged(Frame* frame, const IntSize& size) const
475492 && (requisition.height != size.height())
476493 || (requisition.width != size.width()))
477494 gtk_widget_queue_resize_no_redraw(widget);
 495#if ENABLE(TILED_BACKING_STORE)
 496 if (frame && frame->tiledBackingStore())
 497 frame->tiledBackingStore()->adjustVisibleRect();
 498#endif
478499}
479500
480501void ChromeClient::scrollbarsModeDidChange() const

@@void ChromeClient::exitFullScreenForElement(WebCore::Element* element)
711732}
712733#endif
713734
 735#if ENABLE(TILED_BACKING_STORE)
 736IntRect ChromeClient::visibleRectForTiledBackingStore() const
 737{
 738 Frame* frame = core(m_webView)->mainFrame();
 739 if (!frame || !frame->view())
 740 return IntRect();
714741
 742 return frame->view()->visibleContentRect();
 743}
 744#endif
715745}

WebKit/gtk/WebCoreSupport/ChromeClientGtk.h

@@namespace WebKit {
151151 virtual void exitFullScreenForElement(WebCore::Element*);
152152#endif
153153
 154#if ENABLE(TILED_BACKING_STORE)
 155 virtual WebCore::IntRect visibleRectForTiledBackingStore() const;
 156 virtual void delegatedScrollRequested(const WebCore::IntSize&);
 157#endif
 158
154159 private:
155160 WebKitWebView* m_webView;
156161 WebCore::KURL m_hoveredLinkURL;

WebKit/gtk/webkit/webkitwebsettings.cpp

@@struct _WebKitWebSettingsPrivate {
110110 gboolean enable_java_applet;
111111 gboolean enable_hyperlink_auditing;
112112 gboolean enable_fullscreen;
 113 gboolean enable_tiled_backing_store;
113114};
114115
115116#define WEBKIT_WEB_SETTINGS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsPrivate))

@@enum {
162163 PROP_AUTO_RESIZE_WINDOW,
163164 PROP_ENABLE_JAVA_APPLET,
164165 PROP_ENABLE_HYPERLINK_AUDITING,
165  PROP_ENABLE_FULLSCREEN
 166 PROP_ENABLE_FULLSCREEN,
 167 PROP_ENABLE_TILED_BACKING_STORE
166168};
167169
168170// Create a default user agent string

@@static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass)
912914 FALSE,
913915 flags));
914916
 917 /**
 918 * WebKitWebSettings: enable-tiled-backing-store:
 919 *
 920 * Enable or disable tiled backing store
 921 *
 922 * Since: 1.3.10
 923 */
 924 g_object_class_install_property(gobject_class,
 925 PROP_ENABLE_TILED_BACKING_STORE,
 926 g_param_spec_boolean("enable-tiled-backing-store",
 927 _("Enable Tiled Backing Store"),
 928 _("Whether Tiled Backing Store should be enabled"),
 929 FALSE,
 930 flags));
 931
915932 g_type_class_add_private(klass, sizeof(WebKitWebSettingsPrivate));
916933}
917934

@@static void webkit_web_settings_set_property(GObject* object, guint prop_id, con
11561173 case PROP_ENABLE_FULLSCREEN:
11571174 priv->enable_fullscreen = g_value_get_boolean(value);
11581175 break;
 1176 case PROP_ENABLE_TILED_BACKING_STORE:
 1177 priv->enable_tiled_backing_store = g_value_get_boolean(value);
 1178 break;
11591179 default:
11601180 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
11611181 break;

@@static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa
13061326 case PROP_ENABLE_FULLSCREEN:
13071327 g_value_set_boolean(value, priv->enable_fullscreen);
13081328 break;
 1329 case PROP_ENABLE_TILED_BACKING_STORE:
 1330 g_value_set_boolean(value, priv->enable_tiled_backing_store);
 1331 break;
13091332 default:
13101333 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
13111334 break;

@@WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings)
13821405 "enable-java-applet", priv->enable_java_applet,
13831406 "enable-hyperlink-auditing", priv->enable_hyperlink_auditing,
13841407 "enable-fullscreen", priv->enable_fullscreen,
 1408 "enable-tiled-backing-store", priv->enable_tiled_backing_store,
13851409 NULL));
13861410
13871411 return copy;

WebKit/gtk/webkit/webkitwebview.cpp

103103#include <wtf/gobject/GOwnPtr.h>
104104#include <wtf/text/CString.h>
105105
 106#if ENABLE(TILED_BACKING_STORE)
 107#include "TiledBackingStore.h"
 108#endif
 109
106110/**
107111 * SECTION:webkitwebview
108112 * @short_description: The central class of the WebKitGTK+ API

@@static bool shouldCoalesce(const IntRect& rect, const Vector<IntRect>& rects)
666670 return useUnionedRect;
667671}
668672
 673#if ENABLE(TILED_BACKING_STORE)
 674static void renderFromTiledBackingStore(Frame* frame, GraphicsContext* context, IntRect rect)
 675{
 676 ASSERT(frame->tiledBackingStore());
 677
 678 if (!frame->view() || !frame->contentRenderer())
 679 return;
 680
 681 FrameView* view = frame->view();
 682
 683 int scrollX = view->scrollX();
 684 int scrollY = view->scrollY();
 685
 686 context->translate(-scrollX, -scrollY);
 687 rect.move(scrollX, scrollY);
 688 frame->tiledBackingStore()->paint(context, rect);
 689}
 690#endif
 691
669692static void paintWebView(Frame* frame, gboolean transparent, GraphicsContext& context, const IntRect& clipRect, const Vector<IntRect>& rects)
670693{
671694 bool coalesce = true;

@@static void paintWebView(Frame* frame, gboolean transparent, GraphicsContext& co
677700 context.clip(clipRect);
678701 if (transparent)
679702 context.clearRect(clipRect);
 703#if ENABLE(TILED_BACKING_STORE)
 704 if (frame->tiledBackingStore())
 705 renderFromTiledBackingStore(frame, &context, clipRect);
 706 else
 707#endif
680708 frame->view()->paint(&context, clipRect);
681709 } else {
682710 for (size_t i = 0; i < rects.size(); i++) {

@@static void paintWebView(Frame* frame, gboolean transparent, GraphicsContext& co
685713 context.clip(rect);
686714 if (transparent)
687715 context.clearRect(rect);
 716#if ENABLE(TILED_BACKING_STORE)
 717 if (frame->tiledBackingStore())
 718 renderFromTiledBackingStore(frame, &context, clipRect);
 719 else
 720#endif
688721 frame->view()->paint(&context, rect);
689722 context.restore();
690723 }

@@static void webkit_web_view_update_settings(WebKitWebView* webView)
32613294 javaScriptCanAccessClipboard, enableOfflineWebAppCache,
32623295 enableUniversalAccessFromFileURI, enableFileAccessFromFileURI,
32633296 enableDOMPaste, tabKeyCyclesThroughElements,
3264  enableSiteSpecificQuirks, usePageCache, enableJavaApplet, enableHyperlinkAuditing, enableFullscreen;
 3297 enableSiteSpecificQuirks, usePageCache, enableJavaApplet, enableHyperlinkAuditing, enableFullscreen,
 3298 enableTiledBackingStore;
32653299
32663300 WebKitEditingBehavior editingBehavior;
32673301

@@static void webkit_web_view_update_settings(WebKitWebView* webView)
33013335 "enable-java-applet", &enableJavaApplet,
33023336 "enable-hyperlink-auditing", &enableHyperlinkAuditing,
33033337 "enable-fullscreen", &enableFullscreen,
 3338 "enable-tiled-backing-store", &enableTiledBackingStore,
33043339 NULL);
33053340
33063341 settings->setDefaultTextEncodingName(defaultEncoding);

@@static void webkit_web_view_update_settings(WebKitWebView* webView)
33413376#if ENABLE(FULLSCREEN_API)
33423377 settings->setFullScreenEnabled(enableFullscreen);
33433378#endif
 3379#if ENABLE(TILED_BACKING_STORE)
 3380 settings->setTiledBackingStoreEnabled(enableTiledBackingStore);
 3381#endif
33443382 Page* page = core(webView);
33453383 if (page)
33463384 page->setTabKeyCyclesThroughElements(tabKeyCyclesThroughElements);

@@static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar
34553493 settings->setJavaEnabled(g_value_get_boolean(&value));
34563494 else if (name == g_intern_string("enable-hyperlink-auditing"))
34573495 settings->setHyperlinkAuditingEnabled(g_value_get_boolean(&value));
 3496#if ENABLE(TILED_BACKING_STORE)
 3497 else if (name == g_intern_string("enable-tiled-backing-store"))
 3498 settings->setTiledBackingStoreEnabled(g_value_get_boolean(&value));
 3499#endif
34583500 else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name))
34593501 g_warning("Unexpected setting '%s'", name);
34603502 g_value_unset(&value);

configure.ac

@@AC_ARG_ENABLE(fast_mobile_scrolling,
675675 [],[enable_fast_mobile_scrolling="no"])
676676AC_MSG_RESULT([$enable_fast_mobile_scrolling])
677677
 678# Tile support
 679AC_MSG_CHECKING([whether to enable Tiled Backing Store])
 680AC_ARG_ENABLE(tiled_backing_store,
 681 AC_HELP_STRING([--enable-tiled-backing-store],
 682 [enable support for Tiled Backing Store[default=no]]),
 683 [],[enable_tiled_backing_store="no"])
 684AC_MSG_RESULT([$enable_tiled_backing_store])
 685
678686# check whether to enable code coverage
679687AC_MSG_CHECKING([whether to enable code coverage support])
680688AC_ARG_ENABLE(coverage,

@@AM_CONDITIONAL([ENABLE_DATABASE],[test "$enable_database" = "yes"])
944952AM_CONDITIONAL([ENABLE_DATALIST],[test "$enable_datalist" = "yes"])
945953AM_CONDITIONAL([ENABLE_EVENTSOURCE],[test "$enable_eventsource" = "yes"])
946954AM_CONDITIONAL([ENABLE_FAST_MOBILE_SCROLLING],[test "$enable_fast_mobile_scrolling" = "yes"])
 955AM_CONDITIONAL([ENABLE_TILED_BACKING_STORE],[test "$enable_tiled_backing_store" = "yes"])
947956AM_CONDITIONAL([ENABLE_FILE_SYSTEM],[test "$enable_file_system" = "yes"])
948957AM_CONDITIONAL([ENABLE_ICONDATABASE],[test "$enable_icon_database" = "yes"])
949958AM_CONDITIONAL([ENABLE_IMAGE_RESIZER],[test "$enable_image_resizer" = "yes"])

@@Features:
10141023 Blob support : $enable_blob
10151024 Directory upload : $enable_directory_upload
10161025 Fast Mobile Scrolling : $enable_fast_mobile_scrolling
 1026 Tiled Backing Store : $enable_tiled_backing_store
10171027 JIT compilation : $enable_jit
10181028 Filters support : $enable_filters
10191029 Geolocation support : $enable_geolocation