diff options
author | Steve Block <steveblock@google.com> | 2011-06-08 08:26:01 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-08 08:26:01 -0700 |
commit | 3742ac093d35d923c81693096ab6671e9b147700 (patch) | |
tree | c2add9100f789dad45ef1ec5328bddde02c47a4c /Source/WebKit/gtk/webkit/webkitwebview.cpp | |
parent | 901401d90459bc22580842455d4588b9a697514d (diff) | |
parent | e5926f4a0d6adc9ad4a75824129f117181953560 (diff) | |
download | external_webkit-3742ac093d35d923c81693096ab6671e9b147700.zip external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.gz external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.bz2 |
Merge changes I55c6d71a,Ifb3277d4,Ia1b847a2,I7ba9cf3f,Ida2b2a8a,I1280ec90,I72f818d5,I2e3b588b,I9a4e6289,Ia724c78b,Icd8612c8,Ie31b15d7,Ie125edae,I77941a88,I89dae78b,I3516e5ca,I1a4c17b5,I2c4ecc1a,I9c8e6537,Ifac13115,Ie1f80e09,Ia541ed77,I60ce9d78
* changes:
Merge WebKit at r82507: Update ThirdPartyProject.prop
Merge WebKit at r82507: Cherry-pick change r88166 to add INSPECTOR guards to ScriptProfiler
Merge WebKit at r82507: Work around a V8 bug
Merge WebKit at r82507: JNIType renamed to JavaType
Merge WebKit at r82507: IconDatabaseClient interface expanded
Merge WebKit at r82507: Don't use new loss-free code path in HTMLCanvasElement::toDataURL()
Merge WebKit at r82507: IcondDatabaseBase::iconForPageURL() renamed
Merge WebKit at r82507: IconDatabaseBase::Open() signature changed
Merge WebKit at r82507: Node::isContentEditable() renamed
Merge WebKit at r82507: Use icon database through IconDatabaseBase
Merge WebKit at r82507: toInputElement() is now a member of Node
Merge WebKit at r82507: FrameLoaderClient::objectContentType() signature changed
Merge WebKit at r82507: StringImpl::computeHash() removed
Merge WebKit at r82507: Stub out FontPlatformData::setOrientation()
Merge WebKit at r82507: Path::strokeBoundingRect() is now const
Merge WebKit at r82507: Add missing UnusedParam.h include in ApplicationCacheGroup.cpp
Merge WebKit at r82507: Continue to use Android's version of FontPlatformData.h
Merge WebKit at r82507: Update signature of FontCustomPlatformData::fontPlatformData()
Merge WebKit at r82507: Fix conflicts due to JNI refactoring
Merge WebKit at r82507: Fix conflicts due to new StorageTracker
Merge WebKit at r82507: Fix conflicts
Merge WebKit at r82507: Fix makefiles
Merge WebKit at r82507: Initial merge by git
Diffstat (limited to 'Source/WebKit/gtk/webkit/webkitwebview.cpp')
-rw-r--r-- | Source/WebKit/gtk/webkit/webkitwebview.cpp | 63 |
1 files changed, 49 insertions, 14 deletions
diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp index 0ffc9d9..bf74d7b 100644 --- a/Source/WebKit/gtk/webkit/webkitwebview.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp @@ -85,6 +85,7 @@ #include "webkitgeolocationpolicydecision.h" #include "webkitglobalsprivate.h" #include "webkithittestresultprivate.h" +#include "webkiticondatabase.h" #include "webkitmarshal.h" #include "webkitnetworkrequest.h" #include "webkitnetworkresponse.h" @@ -709,8 +710,8 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* frame->view()->updateLayoutAndStyleIfNeededRecursive(); RefPtr<cairo_t> cr = adoptRef(gdk_cairo_create(event->window)); - GraphicsContext ctx(cr.get()); - ctx.setGdkExposeEvent(event); + GraphicsContext gc(cr.get()); + gc.setGdkExposeEvent(event); int rectCount; GOwnPtr<GdkRectangle> rects; @@ -719,7 +720,7 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* for (int i = 0; i < rectCount; i++) paintRects.append(IntRect(rects.get()[i])); - paintWebView(frame, priv->transparent, ctx, static_cast<IntRect>(event->area), paintRects); + paintWebView(frame, priv->transparent, gc, static_cast<IntRect>(event->area), paintRects); } return FALSE; @@ -736,7 +737,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr) Frame* frame = core(webView)->mainFrame(); if (frame->contentRenderer() && frame->view()) { - GraphicsContext ctx(cr); + GraphicsContext gc(cr); IntRect rect = clipRect; cairo_rectangle_list_t* rectList = cairo_copy_clip_rectangle_list(cr); @@ -747,7 +748,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr) for (int i = 0; i < rectList->num_rectangles; i++) rects.append(enclosingIntRect(FloatRect(rectList->rectangles[i]))); } - paintWebView(frame, priv->transparent, ctx, rect, rects); + paintWebView(frame, priv->transparent, gc, rect, rects); cairo_rectangle_list_destroy(rectList); } @@ -2315,6 +2316,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) * @icon_uri: the URI for the icon * * This signal is emitted when the main frame has got a favicon. + * See WebKitIconDatabase::icon-loaded if you want to keep track of + * icons for child frames. * * Since: 1.1.18 */ @@ -3290,7 +3293,8 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) javaScriptCanAccessClipboard, enableOfflineWebAppCache, enableUniversalAccessFromFileURI, enableFileAccessFromFileURI, enableDOMPaste, tabKeyCyclesThroughElements, - enableSiteSpecificQuirks, usePageCache, enableJavaApplet, enableHyperlinkAuditing, enableFullscreen; + enableSiteSpecificQuirks, usePageCache, enableJavaApplet, + enableHyperlinkAuditing, enableFullscreen, enableDNSPrefetching; WebKitEditingBehavior editingBehavior; @@ -3331,6 +3335,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) "enable-hyperlink-auditing", &enableHyperlinkAuditing, "spell-checking-languages", &defaultSpellCheckingLanguages, "enable-fullscreen", &enableFullscreen, + "enable-dns-prefetching", &enableDNSPrefetching, NULL); settings->setDefaultTextEncodingName(defaultEncoding); @@ -3375,6 +3380,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient()); static_cast<WebKit::TextCheckerClientEnchant*>(client->textChecker())->updateSpellCheckingLanguage(defaultSpellCheckingLanguages); #endif + settings->setDNSPrefetchingEnabled(enableDNSPrefetching); Page* page = core(webView); if (page) @@ -3441,6 +3447,8 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar settings->setJavaScriptEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("enable-plugins")) settings->setPluginsEnabled(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-dns-prefetching")) + settings->setDNSPrefetchingEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("resizable-text-areas")) settings->setTextAreasAreResizable(g_value_get_boolean(&value)); else if (name == g_intern_string("user-stylesheet-uri")) @@ -4337,8 +4345,7 @@ gboolean webkit_web_view_get_editable(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - Frame* frame = core(webView)->mainFrame(); - return frame && frame->document()->inDesignMode(); + return core(webView)->isEditable(); } /** @@ -4363,15 +4370,14 @@ void webkit_web_view_set_editable(WebKitWebView* webView, gboolean flag) { g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - Frame* frame = core(webView)->mainFrame(); - g_return_if_fail(frame); - - // TODO: What happens when the frame is replaced? flag = flag != FALSE; if (flag == webkit_web_view_get_editable(webView)) return; - frame->document()->setDesignMode(flag ? WebCore::Document::on : WebCore::Document::off); + core(webView)->setEditable(flag); + + Frame* frame = core(webView)->mainFrame(); + g_return_if_fail(frame); if (flag) { frame->editor()->applyEditingStyleToBodyElement(); @@ -5058,12 +5064,41 @@ WebKitHitTestResult* webkit_web_view_get_hit_test_result(WebKitWebView* webView, G_CONST_RETURN gchar* webkit_web_view_get_icon_uri(WebKitWebView* webView) { g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - String iconURL = iconDatabase().iconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL()); + String iconURL = iconDatabase().synchronousIconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL()); webView->priv->iconURI = iconURL.utf8(); return webView->priv->iconURI.data(); } /** + * webkit_web_view_get_icon_pixbuf: + * @webView: the #WebKitWebView object + * + * Obtains a #GdkPixbuf of the favicon for the given #WebKitWebView, or + * a default icon if there is no icon for the given page. Use + * webkit_web_view_get_icon_uri() if you need to distinguish these cases. + * Usually you want to connect to WebKitWebView::icon-loaded and call this + * method in the callback. + * + * The pixbuf will have the largest size provided by the server and should + * be resized before it is displayed. + * See also webkit_icon_database_get_icon_pixbuf(). + * + * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL + * + * Since: 1.3.13 + */ +GdkPixbuf* webkit_web_view_get_icon_pixbuf(WebKitWebView* webView) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); + + const gchar* pageURI = webkit_web_view_get_uri(webView); + WebKitIconDatabase* database = webkit_get_icon_database(); + return webkit_icon_database_get_icon_pixbuf(database, pageURI); +} + + + +/** * webkit_web_view_get_dom_document: * @webView: a #WebKitWebView * |