diff options
Diffstat (limited to 'WebKit/gtk')
22 files changed, 1365 insertions, 89 deletions
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog index 370fb2b..62aa3da 100644 --- a/WebKit/gtk/ChangeLog +++ b/WebKit/gtk/ChangeLog @@ -1,3 +1,244 @@ +2009-10-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Jan Alonzo. + + [GTK] API to start inspector for a WebView + https://bugs.webkit.org/show_bug.cgi?id=22551 + + Provide a simple, coordinates-based API to start the inspector. + + * WebCoreSupport/InspectorClientGtk.cpp: + (WebKit::InspectorClient::createPage): Use files from the source + tree when running from the top of the source directory. + (WebKit::InspectorClient::localizedStringsURL): Ditto. + * webkit/webkitprivate.h: + * webkit/webkitwebinspector.cpp: + (webkit_web_inspector_inspect_coordinates): + (webkit_web_inspector_close): + (webkit_web_inspector_execute_script): + * webkit/webkitwebinspector.h: + +2009-10-27 Shinichiro Hamaji <hamaji@chromium.org> + + Reviewed by Darin Adler. + + Provide a way to get counter values with layoutTestContoller + https://bugs.webkit.org/show_bug.cgi?id=30555 + + * webkit/webkitprivate.h: + * webkit/webkitwebframe.cpp: + (webkit_web_frame_counter_value_for_element_by_id): + +2009-10-28 Joe Mason <jmason@rim.com> + + Reviewed by Adam Treat. + + Call the shared FrameLoader::defaultObjectContentType instead of + copying code into FrameLoaderClient::objectContentType. This causes no + behavioural change. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::objectContentType): + +2009-10-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + [Gtk] Extraneous object of ROLE_PANEL in hierarchy for entries + https://bugs.webkit.org/show_bug.cgi?id=25897 + + Update test to also check that entries implement the AtkText + interface. + + * tests/testatk.c: + (run_get_text_tests): + (test_webkit_atk_get_text_at_offset_forms): + (test_webkit_atk_get_text_at_offset): + (main): + +2009-10-26 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Update documentation control files for 1.1.16. + + * docs/webkitgtk-docs.sgml: + * docs/webkitgtk-sections.txt: + +2009-10-26 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=30759 + [GTK] Should use WebKitNetworkResponse, and expose it + + WebKitDownload now uses our WebKitNetworkResponse instead of using + ResourceResponse directly. By exposing the response, like we do + with the request, we give our users the ability to look at the + response headers, status code, and so on, through the SoupMessage + object. + + * webkit/webkitdownload.cpp: + (webkit_download_dispose): + (webkit_download_finalize): + (webkit_download_get_property): + (webkit_download_set_property): + (webkit_download_class_init): + (webkit_download_get_network_response): + (webkit_download_set_response): + (webkit_download_get_total_size): + (webkit_download_get_progress): + (webkit_download_received_data): + * webkit/webkitdownload.h: + +2009-10-26 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Update for 1.1.16 release. + + * NEWS: + +2009-10-22 Gavin Barraclough <barraclough@apple.com> + + Reviewed by NOBODY (build fix). + Build fix following bug #30696. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::windowObjectCleared): + * webkit/webkitwebframe.cpp: + (webkit_web_frame_get_global_context): + +2009-10-22 Alejandro G. Castro <alex@igalia.com> + + Reviewed by Xan Lopez. + + m_webView should be private attribute of the EditorClientGtk. + https://bugs.webkit.org/show_bug.cgi?id=30664 + + * WebKit/gtk/WebCoreSupport/EditorClientGtk.h: + +2009-10-20 Fumitoshi Ukai <ukai@chromium.org> + + Reviewed by David Levin. + + Removed WebSocket runtime settings. + https://bugs.webkit.org/show_bug.cgi?id=29896 + + WebSocket runtime configuration is supported by chromium/v8 only. + + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-10-19 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Alexey Proskuryakov. + + [Gtk] ApplicationCacheStorage error while compiling WebKit/gtk/webkit/webkitapplicationcache.cpp + https://bugs.webkit.org/show_bug.cgi?id=30358 + + Guard calls to cacheStorage() with ENABLE(OFFLINE_WEB_APPLICATIONS). + + * webkit/webkitapplicationcache.cpp: + +2009-10-19 Zan Dobersek <zandobersek@gmail.com> + + Reviewed by Gustavo Noronha. + + Add a settings to allow DOM pastes to be performed. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-10-19 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed. Make WebKitHitTestResult actually appear in the + documentation index. + + * docs/webkitgtk-docs.sgml: + +2009-10-15 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Protect WebSocket calls in case the feature is not compiled in. + + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-10-15 Zan Dobersek <zandobersek@gmail.com> + + Reviewed by Gustavo Noronha. + + Add a settings to enable support for experimental Web Sockets. + Currently this comes in handy in layout tests. + + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_class_init): + (webkit_web_settings_set_property): + (webkit_web_settings_get_property): + (webkit_web_settings_copy): + * webkit/webkitwebview.cpp: + (webkit_web_view_update_settings): + (webkit_web_view_settings_notify): + +2009-10-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + page transition may crash webkit + https://bugs.webkit.org/show_bug.cgi?id=29890 + + There are actually cases in which a resource may be asked using + webkit_web_view_get_resource after a new load has already been + started, so protect ourselves from crashes in this case. + + * WebCoreSupport/FrameLoaderClientGtk.cpp: + (WebKit::FrameLoaderClient::dispatchDidFinishLoading): + * webkit/webkitwebview.cpp: + (webkit_web_view_get_resource): + +2009-10-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Xan Lopez. + + Remove unnecessary self-include. + + * webkit/webkitsecurityorigin.h: + +2009-10-12 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + [GTK] Crash when right-clicking misspelled word + https://bugs.webkit.org/show_bug.cgi?id=29772 + + Make sure the dictionary exist before adding it to the list of + dictionaries. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::checkSpellingOfString): + * webkit/webkitwebsettings.cpp: + (webkit_web_settings_set_property): + +2009-10-08 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Move executeScript from FrameLoader to ScriptController + https://bugs.webkit.org/show_bug.cgi?id=30200 + + Update API call. + + * webkit/webkitwebview.cpp: + (webkit_web_view_execute_script): + 2009-10-07 Xan Lopez <xlopez@igalia.com> Fix the GTK+ build. @@ -2001,7 +2242,7 @@ Refactor how SoupMessage is handled, so that our ResourceRequest object doesn't have to store it as a member, which complicates - managing ResourceRequest's lifetime. + managing ResourceRequest's lifetvime. * tests/testhttpbackend.c: (navigation_policy_decision_requested_cb): diff --git a/WebKit/gtk/NEWS b/WebKit/gtk/NEWS index 8d0803c..b901f4b 100644 --- a/WebKit/gtk/NEWS +++ b/WebKit/gtk/NEWS @@ -1,4 +1,28 @@ ================= +WebKitGTK+ 1.1.16 +================= + +What's new in WebKitGTK+ 1.1.16? + + - Add optional support to generate the gobject-introspection + gir/typelib files. Enable with --enable-introspection, it's off by + default. + - Add a new load status value, WEBKIT_LOAD_FAILED, emitted when + there's an error during the load process. This is the natural + companion to WEBKIT_LOAD_FINISHED, which is only emitted when the + load finished succesfuly. + - Ensure that keyboard events filtered by GtkIMContext still create + the proper DOM events. + - Many a11y improvements: caret browsing fixes, expose heading + levels, more accessible roles supported, more work in correctly + showing the element's ancestry list, improved support for lists, + etc. + - Many improvements to our media support. + - Add a new setting to control DOM pastes + (document.execCommand("Paste")) + - Many, many bugfixes all over the place. + +================= WebKitGTK+ 1.1.15 ================= diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp index 7121163..6ec6baf 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp @@ -615,6 +615,10 @@ void EditorClient::learnWord(const String& text) void EditorClient::checkSpellingOfString(const UChar* text, int length, int* misspellingLocation, int* misspellingLength) { + GSList* langs = webkit_web_settings_get_spell_languages(m_webView); + if (!langs) + return; + gchar* ctext = g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0); int utflen = g_utf8_strlen(ctext, -1); @@ -632,7 +636,6 @@ void EditorClient::checkSpellingOfString(const UChar* text, int length, int* mis int start = i; int end = i; int wordLength; - GSList* langs = webkit_web_settings_get_spell_languages(m_webView); while (attrs[end].is_word_end < 1) end++; diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h index 68034cf..9292651 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h @@ -118,6 +118,7 @@ namespace WebKit { virtual void getGuessesForWord(const WebCore::String&, WTF::Vector<WebCore::String>& guesses); virtual void setInputMethodState(bool enabled); + private: WebKitWebView* m_webView; }; } diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp index 1cf9aee..d53df88 100644 --- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> * Copyright (C) 2008, 2009 Collabora Ltd. All rights reserved. * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> + * Copyright (C) Research In Motion Limited 2009. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -490,24 +491,7 @@ PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize&, HTM ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType) { - String type = mimeType; - // We don't use MIMETypeRegistry::getMIMETypeForPath() because it returns "application/octet-stream" upon failure - if (type.isEmpty()) - type = MIMETypeRegistry::getMIMETypeForExtension(url.path().substring(url.path().reverseFind('.') + 1)); - - if (type.isEmpty()) - return WebCore::ObjectContentFrame; - - if (MIMETypeRegistry::isSupportedImageMIMEType(type)) - return WebCore::ObjectContentImage; - - if (PluginDatabase::installedPlugins()->isMIMETypeRegistered(mimeType)) - return WebCore::ObjectContentNetscapePlugin; - - if (MIMETypeRegistry::isSupportedNonImageMIMEType(type)) - return WebCore::ObjectContentFrame; - - return WebCore::ObjectContentNone; + return FrameLoader::defaultObjectContentType(url, mimeType); } String FrameLoaderClient::overrideMediaType() const @@ -530,8 +514,8 @@ void FrameLoaderClient::windowObjectCleared() // TODO: Consider using g_signal_has_handler_pending() to avoid the overhead // when there are no handlers. - JSGlobalContextRef context = toGlobalRef(coreFrame->script()->globalObject()->globalExec()); - JSObjectRef windowObject = toRef(coreFrame->script()->globalObject()); + JSGlobalContextRef context = toGlobalRef(coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec()); + JSObjectRef windowObject = toRef(coreFrame->script()->globalObject(mainThreadNormalWorld())); ASSERT(windowObject); WebKitWebView* webView = getViewFromFrame(m_frame); @@ -847,6 +831,11 @@ void FrameLoaderClient::dispatchDidFinishLoading(WebCore::DocumentLoader* loader GOwnPtr<gchar> identifierString(toString(identifier)); WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get()); + // A NULL WebResource means the load has been interrupted, and + // replaced by another one while this resource was being loaded. + if (!webResource) + return; + const char* uri = webkit_web_resource_get_uri(webResource); RefPtr<ArchiveResource> coreResource(loader->subresource(KURL(KURL(), uri))); diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp index fef07c1..78f5543 100644 --- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp @@ -97,9 +97,17 @@ Page* InspectorClient::createPage() g_signal_connect(m_webView, "destroy", G_CALLBACK(notifyWebViewDestroyed), (gpointer)this); - gchar* inspectorURI = g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/inspector.html", NULL, NULL); - webkit_web_view_load_uri(m_webView, inspectorURI); - g_free(inspectorURI); + GOwnPtr<gchar> inspectorURI; + + // Make the Web Inspector work when running tests + if (g_file_test("WebCore/inspector/front-end/inspector.html", G_FILE_TEST_EXISTS)) { + GOwnPtr<gchar> currentDirectory(g_get_current_dir()); + GOwnPtr<gchar> fullPath(g_strdup_printf("%s/WebCore/inspector/front-end/inspector.html", currentDirectory.get())); + inspectorURI.set(g_filename_to_uri(fullPath.get(), NULL, NULL)); + } else + inspectorURI.set(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/inspector.html", NULL, NULL)); + + webkit_web_view_load_uri(m_webView, inspectorURI.get()); gtk_widget_show(GTK_WIDGET(m_webView)); @@ -108,8 +116,18 @@ Page* InspectorClient::createPage() String InspectorClient::localizedStringsURL() { + GOwnPtr<gchar> URL; + + // Make the Web Inspector work when running tests + if (g_file_test("WebCore/English.lproj/localizedStrings.js", G_FILE_TEST_EXISTS)) { + GOwnPtr<gchar> currentDirectory(g_get_current_dir()); + GOwnPtr<gchar> fullPath(g_strdup_printf("%s/WebCore/English.lproj/localizedStrings.js", currentDirectory.get())); + URL.set(g_filename_to_uri(fullPath.get(), NULL, NULL)); + } else + URL.set(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/localizedStrings.js", NULL, NULL)); + // FIXME: support l10n of localizedStrings.js - return String::fromUTF8(g_filename_to_uri(DATA_DIR"/webkit-1.0/webinspector/localizedStrings.js", NULL, NULL)); + return String::fromUTF8(URL.get()); } String InspectorClient::hiddenPanels() diff --git a/WebKit/gtk/docs/webkitgtk-docs.sgml b/WebKit/gtk/docs/webkitgtk-docs.sgml index ca608d4..7719336 100644 --- a/WebKit/gtk/docs/webkitgtk-docs.sgml +++ b/WebKit/gtk/docs/webkitgtk-docs.sgml @@ -25,6 +25,7 @@ <xi:include href="xml/webkitwebdatasource.xml"/> <xi:include href="xml/webkitwebresource.xml"/> <xi:include href="xml/webkitdownload.xml"/> + <xi:include href="xml/webkithittestresult.xml"/> <xi:include href="xml/webkitsoupauthdialog.xml"/> <xi:include href="xml/webkitsecurityorigin.xml"/> <xi:include href="xml/webkitwebwindowfeatures.xml"/> @@ -89,4 +90,7 @@ <index id="index-1.1.15" role="1.1.15"> <title>Index of new symbols in 1.1.15</title> </index> + <index id="index-1.1.16" role="1.1.16"> + <title>Index of new symbols in 1.1.16</title> + </index> </book> diff --git a/WebKit/gtk/docs/webkitgtk-sections.txt b/WebKit/gtk/docs/webkitgtk-sections.txt index a7b636c..8bdd3b3 100644 --- a/WebKit/gtk/docs/webkitgtk-sections.txt +++ b/WebKit/gtk/docs/webkitgtk-sections.txt @@ -132,6 +132,7 @@ webkit_download_get_current_size webkit_download_get_destination_uri webkit_download_get_elapsed_time webkit_download_get_network_request +webkit_download_get_network_response webkit_download_get_progress webkit_download_get_status webkit_download_get_suggested_filename diff --git a/WebKit/gtk/po/ChangeLog b/WebKit/gtk/po/ChangeLog index 68321ad..d7eee3a 100644 --- a/WebKit/gtk/po/ChangeLog +++ b/WebKit/gtk/po/ChangeLog @@ -1,3 +1,32 @@ +2009-10-19 Daniel Macks <dmacks@netspace.org> + + Reviewed by Adam Barth. + + Inconsistent handling of gettext domain can cause compile failure + https://bugs.webkit.org/show_bug.cgi?id=30292 + + * GNUmakefile.am: Use DOMAIN variable instead of hard-coded value + +2009-10-15 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] marshal stamp files are not cleaned after a distclean + https://bugs.webkit.org/show_bug.cgi?id=30156 + + Add stamp-po to CLEANFILES. + + * GNUmakefile.am: + +2009-10-09 Rimas Kudelis <rq@akl.lt> + + Rubber-stamped by Gustavo Noronha + + https://bugs.webkit.org/show_bug.cgi?id=30054 + Localization of WebKit GTK into Lithuanian + + * lt.po: Added. + 2009-07-18 Jorge González <aloriel@gmail.com> Rubber-stamped by Jan Alonzo. diff --git a/WebKit/gtk/po/GNUmakefile.am b/WebKit/gtk/po/GNUmakefile.am index b5b0c4c..2c5ff94 100644 --- a/WebKit/gtk/po/GNUmakefile.am +++ b/WebKit/gtk/po/GNUmakefile.am @@ -73,7 +73,7 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/WebKit/gtk/po/POTFILES --files-from=$(srcdir)/WebKit/gtk/po/POTFILES \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ - --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/webkit.pot \ + --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(srcdir) \ @@ -83,7 +83,7 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/WebKit/gtk/po/POTFILES --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ - --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/webkit.pot \ + --keyword=_ --keyword=N_ -o $(srcdir)/WebKit/gtk/po/$(DOMAIN).pot \ ;; \ esac @@ -116,8 +116,8 @@ update-po: GNUmakefile exit 1 # clean rules -stamp_files += \ - stamp-po +CLEANFILES += \ + $(top_builddir)/stamp-po MAINTAINERCLEANFILES += \ $(MOFILES) diff --git a/WebKit/gtk/po/lt.po b/WebKit/gtk/po/lt.po new file mode 100644 index 0000000..a212b29 --- /dev/null +++ b/WebKit/gtk/po/lt.po @@ -0,0 +1,702 @@ +# Lithuanian translation for WebKit GTK. +# This file is put in the public domain. +# Rimas Kudelis <rq@akl.lt>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: webkit 1.1.4\n" +"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" +"POT-Creation-Date: 2009-04-09 19:09-0300\n" +"PO-Revision-Date: 2009-10-09 18:42+0200\n" +"Last-Translator: Rimas Kudelis <rq@akl.lt>\n" +"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.4.0\n" + +#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:425 +msgid "Upload File" +msgstr "Failo išsiuntimas" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:139 +msgid "Input _Methods" +msgstr "Įvesties _metodai" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 +msgid "LRM _Left-to-right mark" +msgstr "Krypties iš _kairės į dešinę ženklas (LRM)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 +msgid "RLM _Right-to-left mark" +msgstr "Krypties iš _dešinės į kairę ženklas (RLM)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 +msgid "LRE Left-to-right _embedding" +msgstr "Į_terpimo iš kairės į dešinę ženklas (LRE)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 +msgid "RLE Right-to-left e_mbedding" +msgstr "Įt_erpimo iš dešinės į kairę ženklas (RLE)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 +msgid "LRO Left-to-right _override" +msgstr "_Perdengiantis iš kairės į dešinę ženklas (LRO)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 +msgid "RLO Right-to-left o_verride" +msgstr "Pe_rdengiantis iš dešinės į kairę ženklas (RLO)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 +msgid "PDF _Pop directional formatting" +msgstr "_Ankstesnio lygmens krypties ženklas (PDF)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 +msgid "ZWS _Zero width space" +msgstr "_Nulinio pločio tarpas (ZWS)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 +msgid "ZWJ Zero width _joiner" +msgstr "Nulinio pločio _jungimo ženklas (ZWJ)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 +msgid "ZWNJ Zero width _non-joiner" +msgstr "Nulinio pločio _skėlimo ženklas (ZWNJ)" + +#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:134 +msgid "_Insert Unicode Control Character" +msgstr "Įterpti unikodo valdymo ženklą" + +#: WebKit/gtk/webkit/webkitdownload.cpp:250 +#, fuzzy +msgid "Network Request" +msgstr "Tinklo užklausa" + +#: WebKit/gtk/webkit/webkitdownload.cpp:251 +#, fuzzy +msgid "The network request for the URI that should be downloaded" +msgstr "Tinklo užklausa parsiųstino failo universaliajam ištekliaus identifikatoriui (URI)" + +#: WebKit/gtk/webkit/webkitdownload.cpp:265 +msgid "Destination URI" +msgstr "Paskirties URI" + +#: WebKit/gtk/webkit/webkitdownload.cpp:266 +msgid "The destination URI where to save the file" +msgstr "Paskirties failo universalusis ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitdownload.cpp:280 +msgid "Suggested Filename" +msgstr "Siūlomas failo vardas" + +#: WebKit/gtk/webkit/webkitdownload.cpp:281 +msgid "The filename suggested as default when saving" +msgstr "Numatytasis siūlomas įrašomo failo vardas" + +#: WebKit/gtk/webkit/webkitdownload.cpp:294 +msgid "Progress" +msgstr "Progresas" + +#: WebKit/gtk/webkit/webkitdownload.cpp:295 +#, fuzzy +msgid "Determines the current progress of the download" +msgstr "Nurodo atsiuntimo progresą" + +#: WebKit/gtk/webkit/webkitdownload.cpp:308 +msgid "Status" +msgstr "Būsena" + +#: WebKit/gtk/webkit/webkitdownload.cpp:309 +#, fuzzy +msgid "Determines the current status of the download" +msgstr "Nurodo atsiuntimo būseną" + +#: WebKit/gtk/webkit/webkitdownload.cpp:324 +msgid "Current Size" +msgstr "Esamasis dydis" + +#: WebKit/gtk/webkit/webkitdownload.cpp:325 +msgid "The length of the data already downloaded" +msgstr "Jau parsiųstų duomenų kiekis" + +#: WebKit/gtk/webkit/webkitdownload.cpp:339 +msgid "Total Size" +msgstr "Visas dydis" + +#: WebKit/gtk/webkit/webkitdownload.cpp:340 +msgid "The total size of the file" +msgstr "Visas failo dydis" + +#: WebKit/gtk/webkit/webkitdownload.cpp:469 +msgid "User cancelled the download" +msgstr "Naudotojas atsisakė siuntimo" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:244 +#, c-format +msgid "A username and password are being requested by the site %s" +msgstr "Svetainei %s reikalingas naudotojo vardas ir slaptažodis" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:269 +msgid "Username:" +msgstr "Naudotojo vardas:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:271 +msgid "Password:" +msgstr "Slaptažodis:" + +#: WebKit/gtk/webkit/webkitsoupauthdialog.c:281 +msgid "Remember password" +msgstr "Įsiminti slaptažodį" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:211 +msgid "Name" +msgstr "Pavadinimas" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:212 +msgid "The name of the frame" +msgstr "Kadro pavadinimas" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:218 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:154 +#: WebKit/gtk/webkit/webkitwebview.cpp:1715 +msgid "Title" +msgstr "Antraštė" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:219 +msgid "The document title of the frame" +msgstr "Kadre atverto tinklalapio pavadinimas" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:225 +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:186 +#: WebKit/gtk/webkit/webkitwebview.cpp:1729 +msgid "URI" +msgstr "URI" + +#: WebKit/gtk/webkit/webkitwebframe.cpp:226 +msgid "The current URI of the contents displayed by the frame" +msgstr "Kadre atverto tinklalapio universalusis ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:155 +msgid "The title of the history item" +msgstr "Žurnalo įrašo pavadinimas" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:170 +msgid "Alternate Title" +msgstr "Alternatyvus pavadinimas" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:171 +msgid "The alternate title of the history item" +msgstr "Alternatyvus žurnalo įrašo pavadinimas" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:187 +msgid "The URI of the history item" +msgstr "Žurnalo įrašo universalusis ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:202 +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:167 +msgid "Original URI" +msgstr "Pirminis URI" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:203 +msgid "The original URI of the history item" +msgstr "Pirminis žurnalo įrašo universalusis ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:218 +msgid "Last visited Time" +msgstr "Paskutinis apsilankymas" + +#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:219 +msgid "The time at which the history item was last visited" +msgstr "Paskutinio apsilankymo data ir laikas" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:260 +msgid "Web View" +msgstr "Žiniatinklio rodinys" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:261 +msgid "The Web View that renders the Web Inspector itself" +msgstr "Žiniatinklio rodinys, rodantis žiniatinklio analizatorių" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:274 +msgid "Inspected URI" +msgstr "Analizuojamas URI" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:275 +msgid "The URI that is currently being inspected" +msgstr "Šiuo metu analizuojamo failo universalusi ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:291 +msgid "Enable JavaScript profiling" +msgstr "Įjungti „JavaScript“ profiliavimą" + +#: WebKit/gtk/webkit/webkitwebinspector.cpp:292 +msgid "Profile the executed JavaScript." +msgstr "Profiliuoti vykdomą „JavaScript“ kodą." + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:152 +msgid "Reason" +msgstr "Priežastis" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:153 +#, fuzzy +msgid "The reason why this navigation is occurring" +msgstr "Tinklalapio atvėrimo priežastis" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:168 +msgid "The URI that was requested as the target for the navigation" +msgstr "Mėginamo atverti tinklalapio universalusis ištekliaus identifikatorius (URI)" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:180 +msgid "Button" +msgstr "Mygtukas" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:181 +msgid "The button used to click" +msgstr "Mygtukas, kurį galima paspausti" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:196 +msgid "Modifier state" +msgstr "Modifikatorių būsena" + +#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:197 +msgid "A bitmask representing the state of the modifier keys" +msgstr "Bitų kaukė, atspindinti modifikavimo klavišų būseną" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:129 +msgid "Default Encoding" +msgstr "Numatytoji koduotė" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:130 +msgid "The default encoding used to display text." +msgstr "Numatytoji teksto koduotė." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:138 +msgid "Cursive Font Family" +msgstr "Rankraštinių šriftų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:139 +msgid "The default Cursive font family used to display text." +msgstr "Numatytoji tekstui atvaizduoti naudojama rankraštinių šriftų šeima." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:147 +msgid "Default Font Family" +msgstr "Numatytoji šriftų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:148 +msgid "The default font family used to display text." +msgstr "Numatytoji tekstui atvaizduoti naudojama šriftų šeima." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:156 +msgid "Fantasy Font Family" +msgstr "Dekoratyvių šriftų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:157 +msgid "The default Fantasy font family used to display text." +msgstr "Numatytoji tekstui atvaizduoti naudojama dekoratyvių šriftų šeima." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:165 +msgid "Monospace Font Family" +msgstr "Lygiapločių šriftų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:166 +msgid "The default font family used to display monospace text." +msgstr "Numatytoji tekstui atvaizduoti naudojama lygiapločių šriftų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:174 +msgid "Sans Serif Font Family" +msgstr "Šriftų be užraitų šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:175 +msgid "The default Sans Serif font family used to display text." +msgstr "Numatytoji tekstui atvaizduoti naudojama šriftų be užraitų šeima." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:183 +msgid "Serif Font Family" +msgstr "Šriftų su užraitais šeima" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:184 +msgid "The default Serif font family used to display text." +msgstr "Numatytoji tekstui atvaizduoti naudojama šriftų su užraitais šeima." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:192 +msgid "Default Font Size" +msgstr "Numatytasis šrifto dydis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:193 +msgid "The default font size used to display text." +msgstr "Numatytasis tekstui atvaizduoti naudojamo šrifto dydis." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:201 +msgid "Default Monospace Font Size" +msgstr "Numatytasis lygiapločio šrifto dydis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:202 +msgid "The default font size used to display monospace text." +msgstr "Numatytasis tekstui atvaizduoti naudojamo lygiapločio šrifto dydis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:210 +msgid "Minimum Font Size" +msgstr "Minimalus šrifto dydis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:211 +msgid "The minimum font size used to display text." +msgstr "Mažiausias leistinas tekstui atvaizduoti naudojamo šrifto dydis." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:219 +#, fuzzy +msgid "Minimum Logical Font Size" +msgstr "Minimalus loginis šrifto dydis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:220 +#, fuzzy +msgid "The minimum logical font size used to display text." +msgstr "Mažiausias leistinas loginis tekstui atvaizduoti naudojamo šrifto dydis." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:239 +msgid "Enforce 96 DPI" +msgstr "Naudoti 96 tašk./colyje" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:240 +msgid "Enforce a resolution of 96 DPI" +msgstr "Priverstinai naudoti 96 tašk./colyje skiriamąją gebą" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:248 +msgid "Auto Load Images" +msgstr "Įkelti paveikslus" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:249 +msgid "Load images automatically." +msgstr "Automatiškai įkelti paveikslus." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:257 +msgid "Auto Shrink Images" +msgstr "Mažinti paveikslus" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:258 +msgid "Automatically shrink standalone images to fit." +msgstr "Automatiškai mažinti pavienius paveikslus, kad sutilptų į langą." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:266 +msgid "Print Backgrounds" +msgstr "Spausdinti foną" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:267 +msgid "Whether background images should be printed." +msgstr "Ar spausdinti fono piešinius." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:275 +msgid "Enable Scripts" +msgstr "Įjungti scenarijus" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:276 +msgid "Enable embedded scripting languages." +msgstr "Įjungti įtaisytuosius scenarijus." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:284 +msgid "Enable Plugins" +msgstr "Įjungti papildinius" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:285 +msgid "Enable embedded plugin objects." +msgstr "Įjungti įtaisytuosius papildinius." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:293 +msgid "Resizable Text Areas" +msgstr "Keičiamo dydžio teksto laukai" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:294 +msgid "Whether text areas are resizable." +msgstr "Ar leisti keisti teksto laukų dydį." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 +msgid "User Stylesheet URI" +msgstr "Naudotojo stiliaus aprašo URI" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:302 +msgid "The URI of a stylesheet that is applied to every page." +msgstr "Visiems tinklalapiams taikytino naudotojo stiliaus aprašo failo universalusis ištekliaus identifikatorius (URI)." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:317 +msgid "Zoom Stepping Value" +msgstr "Mastelio keitimo žingsnis" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 +msgid "The value by which the zoom level is changed when zooming in or out." +msgstr "Žingsnis, kuriuo keičiamas mastelis, jį didinant ar mažinant." + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:336 +msgid "Enable Developer Extras" +msgstr "Įjungti programuotojų įrankius" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:337 +msgid "Enables special extensions that help developers" +msgstr "Įjungti specialius tinklalapių programuotojams skirtus įrankius" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 +msgid "Enable Private Browsing" +msgstr "Įjungti privatųjį naršymą" + +#: WebKit/gtk/webkit/webkitwebsettings.cpp:358 +msgid "Enables private browsing mode" +msgstr "Įjungti privačiojo naršymo veikseną" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1716 +msgid "Returns the @web_view's document title" +msgstr "Grąžina @web_view objekte atverto tinklalapio pavadinimą" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1730 +msgid "Returns the current URI of the contents displayed by the @web_view" +msgstr "Grąžina @web_view objekte atverto tinklalapio universalųjį ištekliaus identifikatorių (URI)" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1743 +msgid "Copy target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1744 +msgid "The list of targets this web view supports for clipboard copying" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1757 +msgid "Paste target list" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1758 +msgid "The list of targets this web view supports for clipboard pasting" +msgstr "" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1764 +msgid "Settings" +msgstr "Nuostatos" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1765 +msgid "An associated WebKitWebSettings instance" +msgstr "Susietasis „WebKitWebSettings“ tipo objektas" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1778 +msgid "Web Inspector" +msgstr "Žiniatinklio analizatorius" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1779 +msgid "The associated WebKitWebInspector instance" +msgstr "Susietasis „WebKitWebInspector“ tipo objektas" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1799 +msgid "Editable" +msgstr "Keičiamas" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1800 +msgid "Whether content can be modified by the user" +msgstr "Ar turinys gali būti keičiamas naudotojo" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1806 +msgid "Transparent" +msgstr "Permatomas" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1807 +msgid "Whether content has a transparent background" +msgstr "Ar turinio fonas permatomas" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1820 +msgid "Zoom level" +msgstr "Mastelis" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1821 +msgid "The level of zoom of the content" +msgstr "Turinio rodymo mastelio dydis" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1836 +msgid "Full content zoom" +msgstr "Taikyti mastelį visam turiniui" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1837 +msgid "Whether the full content is scaled when zooming" +msgstr "Ar mastelis keičiamas visam tinklalapio turiniui" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1850 +msgid "Encoding" +msgstr "Koduotė" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1851 +msgid "The default encoding of the web view" +msgstr "Numatytoji žiniatinklio rodinio koduotė" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1864 +msgid "Custom Encoding" +msgstr "Pasirinktinė koduotė" + +#: WebKit/gtk/webkit/webkitwebview.cpp:1865 +msgid "The custom encoding of the web view" +msgstr "Pasirinktinė žiniatinklio rodinio koduotė" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:51 +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:56 +msgid "Submit" +msgstr "Pateikti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:61 +msgid "Reset" +msgstr "Atkurti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:66 +msgid "_Searchable Index" +msgstr "" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:71 +msgid "Choose File" +msgstr "Parinkite failą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:76 +msgid "(None)" +msgstr "(Joks)" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:81 +msgid "Open Link in New _Window" +msgstr "Atverti saistomą objektą naujame _lange" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:86 +msgid "_Download Linked File" +msgstr "At_siųsti saistomą objektą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:91 +msgid "Copy Link Loc_ation" +msgstr "Kopijuoti saito _adresą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:96 +msgid "Open _Image in New Window" +msgstr "Atverti _paveikslą naujame lange" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:101 +msgid "Sa_ve Image As" +msgstr "Į_rašyti paveikslą kaip" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:106 +msgid "Cop_y Image" +msgstr "_Kopijuoti paveikslą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:111 +msgid "Open _Frame in New Window" +msgstr "_Atverti kadrą naujame lange" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:162 +msgid "_Reload" +msgstr "At_siųsti iš naujo" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:179 +msgid "No Guesses Found" +msgstr "Pasiūlymų nėra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:184 +msgid "_Ignore Spelling" +msgstr "_Nepaisyti rašybos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:189 +msgid "_Learn Spelling" +msgstr "Įsi_minti rašybą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:194 +msgid "_Search the Web" +msgstr "_Ieškoti žiniatinklyje" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:199 +msgid "_Look Up in Dictionary" +msgstr "Ieškoti _žodyne" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:204 +msgid "_Open Link" +msgstr "_Atverti saistomą objektą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:209 +msgid "Ignore _Grammar" +msgstr "Nepaisyti _gramatikos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:214 +msgid "Spelling and _Grammar" +msgstr "Rašyba ir _gramatika" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Show Spelling and Grammar" +msgstr "_Rodyti rašybą ir gramatiką" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:219 +msgid "_Hide Spelling and Grammar" +msgstr "_Nerodyti rašybos ir gramatikos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:224 +msgid "_Check Document Now" +msgstr "Pa_tikrinti dokumentą dabar" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:229 +msgid "Check Spelling While _Typing" +msgstr "Tikrinti _rašybą rašant tekstą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:234 +msgid "Check _Grammar With Spelling" +msgstr "Tikrinti _gramatiką kartu su rašyba" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:239 +msgid "_Font" +msgstr "Šri_ftas" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:262 +msgid "_Outline" +msgstr "_Kontūras" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:267 +msgid "Inspect _Element" +msgstr "Analizuoti _elementą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:272 +msgid "No recent searches" +msgstr "Paskiausių paieškų nėra" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:277 +msgid "Recent searches" +msgstr "Paskiausios paieškos" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:282 +msgid "_Clear recent searches" +msgstr "_Valyti paskiausias paieškas" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:287 +msgid "term" +msgstr "terminas" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:292 +msgid "definition" +msgstr "apibrėžtis" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:297 +msgid "press" +msgstr "spustelėti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:302 +msgid "select" +msgstr "pasirinkti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:307 +msgid "activate" +msgstr "aktyvinti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:312 +msgid "uncheck" +msgstr "nuimti žymėjimą" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:317 +msgid "check" +msgstr "pažymėti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:322 +msgid "jump" +msgstr "šokti" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:328 +msgid " files" +msgstr " failai" + +#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:333 +msgid "Unknown" +msgstr "Nežinoma" + diff --git a/WebKit/gtk/tests/testatk.c b/WebKit/gtk/tests/testatk.c index 3910347..e47898b 100644 --- a/WebKit/gtk/tests/testatk.c +++ b/WebKit/gtk/tests/testatk.c @@ -50,36 +50,9 @@ static void test_get_text_function(AtkText* text_obj, AtkGetTextFunction fn, Atk g_free(text); } -static void test_webkit_atk_get_text_at_offset(void) +static void run_get_text_tests(AtkText* text_obj) { - WebKitWebView* webView; - AtkObject *obj; - GMainLoop* loop; - AtkText* text_obj; - char* text; - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation alloc = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &alloc); - webkit_web_view_load_string(webView, contents, NULL, NULL, NULL); - loop = g_main_loop_new(NULL, TRUE); - - g_timeout_add(100, (GSourceFunc)bail_out, loop); - g_main_loop_run(loop); - - /* Get to the inner AtkText object */ - obj = gtk_widget_get_accessible(GTK_WIDGET(webView)); - g_assert(obj); - obj = atk_object_ref_accessible_child(obj, 0); - g_assert(obj); - obj = atk_object_ref_accessible_child(obj, 0); - g_assert(obj); - - text_obj = ATK_TEXT(obj); - g_assert(ATK_IS_TEXT(text_obj)); - - text = atk_text_get_text(text_obj, 0, -1); + char* text = atk_text_get_text(text_obj, 0, -1); g_assert_cmpstr(text, ==, "This is a test. This is the second sentence. And this the third."); g_free(text); @@ -218,6 +191,70 @@ static void test_webkit_atk_get_text_at_offset(void) /* ATK_TEXT_BOUNDARY_LINE_END */ test_get_text_function(text_obj, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 0, "This is a test. This is the second sentence. And this the third.", 0, 64); +} + +static void test_webkit_atk_get_text_at_offset_forms(void) +{ + WebKitWebView* webView; + AtkObject* obj; + GMainLoop* loop; + AtkText* text_obj; + + webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_object_ref_sink(webView); + GtkAllocation alloc = { 0, 0, 800, 600 }; + gtk_widget_size_allocate(GTK_WIDGET(webView), &alloc); + webkit_web_view_load_string(webView, contents, NULL, NULL, NULL); + loop = g_main_loop_new(NULL, TRUE); + + g_timeout_add(100, (GSourceFunc)bail_out, loop); + g_main_loop_run(loop); + + /* Get to the inner AtkText object */ + obj = gtk_widget_get_accessible(GTK_WIDGET(webView)); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + + text_obj = ATK_TEXT(obj); + g_assert(ATK_IS_TEXT(text_obj)); + + run_get_text_tests(text_obj); + + g_object_unref(webView); +} + +static void test_webkit_atk_get_text_at_offset(void) +{ + WebKitWebView* webView; + AtkObject* obj; + GMainLoop* loop; + AtkText* text_obj; + + webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); + g_object_ref_sink(webView); + GtkAllocation alloc = { 0, 0, 800, 600 }; + gtk_widget_size_allocate(GTK_WIDGET(webView), &alloc); + webkit_web_view_load_string(webView, contents, NULL, NULL, NULL); + loop = g_main_loop_new(NULL, TRUE); + + g_timeout_add(100, (GSourceFunc)bail_out, loop); + g_main_loop_run(loop); + + /* Get to the inner AtkText object */ + obj = gtk_widget_get_accessible(GTK_WIDGET(webView)); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + obj = atk_object_ref_accessible_child(obj, 0); + g_assert(obj); + + text_obj = ATK_TEXT(obj); + g_assert(ATK_IS_TEXT(text_obj)); + + run_get_text_tests(text_obj); g_object_unref(webView); } @@ -229,6 +266,7 @@ int main(int argc, char** argv) g_test_bug_base("https://bugs.webkit.org/"); g_test_add_func("/webkit/atk/get_text_at_offset", test_webkit_atk_get_text_at_offset); + g_test_add_func("/webkit/atk/get_text_at_offset_forms", test_webkit_atk_get_text_at_offset_forms); return g_test_run (); } diff --git a/WebKit/gtk/webkit/webkitapplicationcache.cpp b/WebKit/gtk/webkit/webkitapplicationcache.cpp index 2c6b71f..e967d34 100644 --- a/WebKit/gtk/webkit/webkitapplicationcache.cpp +++ b/WebKit/gtk/webkit/webkitapplicationcache.cpp @@ -20,13 +20,17 @@ #include "config.h" #include "webkitprivate.h" +#include <wtf/UnusedParam.h> + #include "ApplicationCacheStorage.h" void webkit_application_cache_set_maximum_size(unsigned long long size) { +#if ENABLE(OFFLINE_WEB_APPLICATIONS) WebCore::cacheStorage().empty(); WebCore::cacheStorage().vacuumDatabaseFile(); WebCore::cacheStorage().setMaximumSize(size); +#else + UNUSED_PARAM(size); +#endif } - - diff --git a/WebKit/gtk/webkit/webkitdownload.cpp b/WebKit/gtk/webkit/webkitdownload.cpp index 568378c..dd6629b 100644 --- a/WebKit/gtk/webkit/webkitdownload.cpp +++ b/WebKit/gtk/webkit/webkitdownload.cpp @@ -31,6 +31,7 @@ #include "webkitdownload.h" #include "webkitenumtypes.h" #include "webkitmarshal.h" +#include "webkitnetworkresponse.h" #include "webkitprivate.h" #include <glib/gstdio.h> @@ -74,7 +75,7 @@ struct _WebKitDownloadPrivate { GFileOutputStream* outputStream; DownloadClient* downloadClient; WebKitNetworkRequest* networkRequest; - ResourceResponse* networkResponse; + WebKitNetworkResponse* networkResponse; RefPtr<ResourceHandle> resourceHandle; }; @@ -95,7 +96,8 @@ enum { PROP_PROGRESS, PROP_STATUS, PROP_CURRENT_SIZE, - PROP_TOTAL_SIZE + PROP_TOTAL_SIZE, + PROP_NETWORK_RESPONSE }; G_DEFINE_TYPE(WebKitDownload, webkit_download, G_TYPE_OBJECT); @@ -119,6 +121,11 @@ static void webkit_download_dispose(GObject* object) priv->networkRequest = NULL; } + if (priv->networkResponse) { + g_object_unref(priv->networkResponse); + priv->networkResponse = NULL; + } + G_OBJECT_CLASS(webkit_download_parent_class)->dispose(object); } @@ -138,7 +145,6 @@ static void webkit_download_finalize(GObject* object) } delete priv->downloadClient; - delete priv->networkResponse; // The download object may never have _start called on it, so we // need to make sure timer is non-NULL. @@ -159,6 +165,9 @@ static void webkit_download_get_property(GObject* object, guint prop_id, GValue* case PROP_NETWORK_REQUEST: g_value_set_object(value, webkit_download_get_network_request(download)); break; + case PROP_NETWORK_RESPONSE: + g_value_set_object(value, webkit_download_get_network_response(download)); + break; case PROP_DESTINATION_URI: g_value_set_string(value, webkit_download_get_destination_uri(download)); break; @@ -191,6 +200,9 @@ static void webkit_download_set_property(GObject* object, guint prop_id, const G case PROP_NETWORK_REQUEST: priv->networkRequest = WEBKIT_NETWORK_REQUEST(g_value_dup_object(value)); break; + case PROP_NETWORK_RESPONSE: + priv->networkResponse = WEBKIT_NETWORK_RESPONSE(g_value_dup_object(value)); + break; case PROP_DESTINATION_URI: webkit_download_set_destination_uri(download, g_value_get_string(value)); break; @@ -252,6 +264,21 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); /** + * WebKitDownload:network-response + * + * The #WebKitNetworkResponse instance associated with the download. + * + * Since: 1.1.16 + */ + g_object_class_install_property(objectClass, + PROP_NETWORK_RESPONSE, + g_param_spec_object("network-response", + _("Network Response"), + _("The network response for the URI that should be downloaded"), + WEBKIT_TYPE_NETWORK_RESPONSE, + (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); + + /** * WebKitDownload:destination-uri * * The URI of the save location for this download. @@ -530,11 +557,29 @@ WebKitNetworkRequest* webkit_download_get_network_request(WebKitDownload* downlo return priv->networkRequest; } +/** + * webkit_download_get_network_response: + * @download: the #WebKitDownload + * + * Retrieves the #WebKitNetworkResponse object that backs the download + * process. + * + * Returns: the #WebKitNetworkResponse instance + * + * Since: 1.1.16 + */ +WebKitNetworkResponse* webkit_download_get_network_response(WebKitDownload* download) +{ + g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); + + WebKitDownloadPrivate* priv = download->priv; + return priv->networkResponse; +} + static void webkit_download_set_response(WebKitDownload* download, const ResourceResponse& response) { - // FIXME Use WebKitNetworkResponse when it's merged. WebKitDownloadPrivate* priv = download->priv; - priv->networkResponse = new ResourceResponse(response); + priv->networkResponse = webkit_network_response_new_with_core_response(response); if (!response.isNull() && !response.suggestedFilename().isEmpty()) webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data()); @@ -704,10 +749,12 @@ guint64 webkit_download_get_total_size(WebKitDownload* download) g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0); WebKitDownloadPrivate* priv = download->priv; - if (!priv->networkResponse) + SoupMessage* message = priv->networkResponse ? webkit_network_response_get_message(priv->networkResponse) : NULL; + + if (!message) return 0; - return MAX(priv->currentSize, priv->networkResponse->expectedContentLength()); + return MAX(priv->currentSize, soup_message_headers_get_content_length(message->response_headers)); } /** @@ -744,9 +791,9 @@ gdouble webkit_download_get_progress(WebKitDownload* download) WebKitDownloadPrivate* priv = download->priv; if (!priv->networkResponse) - return 0; + return 0.0; - gdouble total_size = (gdouble)priv->networkResponse->expectedContentLength(); + gdouble total_size = static_cast<gdouble>(webkit_download_get_total_size(download)); if (total_size == 0) return 1.0; @@ -803,7 +850,7 @@ static void webkit_download_received_data(WebKitDownload* download, const gchar* g_object_notify(G_OBJECT(download), "current-size"); ASSERT(priv->networkResponse); - if (priv->currentSize > priv->networkResponse->expectedContentLength()) + if (priv->currentSize > webkit_download_get_total_size(download)) g_object_notify(G_OBJECT(download), "total-size"); gdouble lastProgress = webkit_download_get_progress(download); diff --git a/WebKit/gtk/webkit/webkitdownload.h b/WebKit/gtk/webkit/webkitdownload.h index 6e7f38b..a732a57 100644 --- a/WebKit/gtk/webkit/webkitdownload.h +++ b/WebKit/gtk/webkit/webkitdownload.h @@ -84,6 +84,9 @@ webkit_download_get_uri (WebKitDownload *download); WEBKIT_API WebKitNetworkRequest* webkit_download_get_network_request (WebKitDownload *download); +WEBKIT_API WebKitNetworkResponse* +webkit_download_get_network_response (WebKitDownload *download); + WEBKIT_API const gchar* webkit_download_get_suggested_filename (WebKitDownload *download); diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h index 44dac04..088175f 100644 --- a/WebKit/gtk/webkit/webkitprivate.h +++ b/WebKit/gtk/webkit/webkitprivate.h @@ -224,6 +224,10 @@ extern "C" { void webkit_web_inspector_set_inspected_uri(WebKitWebInspector* web_inspector, const gchar* inspected_uri); + WEBKIT_API void + webkit_web_inspector_execute_script(WebKitWebInspector* inspector, long callId, const gchar* script); + + WebKitWebWindowFeatures* webkit_web_window_features_new_from_core_features (const WebCore::WindowFeatures& features); @@ -285,6 +289,9 @@ extern "C" { WEBKIT_API gchar* webkit_web_frame_dump_render_tree (WebKitWebFrame* frame); + WEBKIT_API gchar* + webkit_web_frame_counter_value_for_element_by_id (WebKitWebFrame* frame, const gchar* id); + WEBKIT_API guint webkit_web_frame_get_pending_unload_event_count(WebKitWebFrame* frame); diff --git a/WebKit/gtk/webkit/webkitsecurityorigin.h b/WebKit/gtk/webkit/webkitsecurityorigin.h index 57bcd19..24ebe06 100644 --- a/WebKit/gtk/webkit/webkitsecurityorigin.h +++ b/WebKit/gtk/webkit/webkitsecurityorigin.h @@ -20,7 +20,6 @@ #ifndef webkitsecurityorigin_h #define webkitsecurityorigin_h -#include "webkitsecurityorigin.h" #include "webkitwebdatabase.h" G_BEGIN_DECLS diff --git a/WebKit/gtk/webkit/webkitwebframe.cpp b/WebKit/gtk/webkit/webkitwebframe.cpp index 67fa632..843f923 100644 --- a/WebKit/gtk/webkit/webkitwebframe.cpp +++ b/WebKit/gtk/webkit/webkitwebframe.cpp @@ -683,7 +683,7 @@ JSGlobalContextRef webkit_web_frame_get_global_context(WebKitWebFrame* frame) if (!coreFrame) return NULL; - return toGlobalRef(coreFrame->script()->globalObject()->globalExec()); + return toGlobalRef(coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec()); } /** @@ -799,6 +799,28 @@ gchar* webkit_web_frame_dump_render_tree(WebKitWebFrame* frame) } /** + * webkit_web_frame_counter_value_for_element_by_id: + * @frame: a #WebKitWebFrame + * @id: an element ID string + * + * Return value: The counter value of element @id in @frame + */ +gchar* webkit_web_frame_counter_value_for_element_by_id(WebKitWebFrame* frame, const gchar* id) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL); + + Frame* coreFrame = core(frame); + if (!coreFrame) + return 0; + + Element* coreElement = coreFrame->document()->getElementById(AtomicString(id)); + if (!coreElement) + return 0; + String counterValue = counterValueForElement(coreElement); + return g_strdup(counterValue.utf8().data()); +} + +/** * webkit_web_frame_get_pending_unload_event_count: * @frame: a #WebKitWebFrame * diff --git a/WebKit/gtk/webkit/webkitwebinspector.cpp b/WebKit/gtk/webkit/webkitwebinspector.cpp index 4e4f8de..ee2815c 100644 --- a/WebKit/gtk/webkit/webkitwebinspector.cpp +++ b/WebKit/gtk/webkit/webkitwebinspector.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 2008 Gustavo Noronha Silva * Copyright (C) 2008, 2009 Holger Hans Peter Freyther + * Copyright (C) 2009 Collabora Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -19,11 +20,18 @@ */ #include "config.h" +#include "webkitwebinspector.h" +#include "FocusController.h" +#include "Frame.h" #include <glib/gi18n-lib.h> -#include "webkitwebinspector.h" -#include "webkitmarshal.h" +#include "HitTestRequest.h" +#include "HitTestResult.h" #include "InspectorClientGtk.h" +#include "IntPoint.h" +#include "Page.h" +#include "RenderView.h" +#include "webkitmarshal.h" #include "webkitprivate.h" /** @@ -56,6 +64,7 @@ */ using namespace WebKit; +using namespace WebCore; enum { INSPECT_WEB_VIEW, @@ -426,3 +435,66 @@ webkit_web_inspector_set_inspector_client(WebKitWebInspector* web_inspector, Web priv->page = page; } + +/** + * webkit_web_inspector_inspect_coordinates: + * @web_inspector: the #WebKitWebInspector that will do the inspection + * @x: the X coordinate of the node to be inspected + * @y: the Y coordinate of the node to be inspected + * + * Causes the Web Inspector to inspect the node that is located at the + * given coordinates of the widget. The coordinates should be relative + * to the #WebKitWebView widget, not to the scrollable content, and + * may be obtained from a #GdkEvent directly. + * + * This means @x, and @y being zero doesn't guarantee you will hit the + * left-most top corner of the content, since the contents may have + * been scrolled. + * + * Since: 1.1.17 + */ +void webkit_web_inspector_inspect_coordinates(WebKitWebInspector* webInspector, gdouble x, gdouble y) +{ + g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); + g_return_if_fail(x >= 0 && y >= 0); + + WebKitWebInspectorPrivate* priv = webInspector->priv; + + Frame* frame = priv->page->focusController()->focusedOrMainFrame(); + FrameView* view = frame->view(); + + if (!view) + return; + + HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active); + IntPoint documentPoint = view->windowToContents(IntPoint(static_cast<int>(x), static_cast<int>(y))); + HitTestResult result(documentPoint); + + frame->contentRenderer()->layer()->hitTest(request, result); + priv->page->inspectorController()->inspect(result.innerNonSharedNode()); +} + +/** + * webkit_web_inspector_close: + * @web_inspector: the #WebKitWebInspector that will be closed + * + * Causes the Web Inspector to be closed. + * + * Since: 1.1.17 + */ +void webkit_web_inspector_close(WebKitWebInspector* webInspector) +{ + g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); + + WebKitWebInspectorPrivate* priv = webInspector->priv; + priv->page->inspectorController()->close(); +} + +void webkit_web_inspector_execute_script(WebKitWebInspector* webInspector, long callId, const gchar* script) +{ + g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); + g_return_if_fail(script); + + WebKitWebInspectorPrivate* priv = webInspector->priv; + priv->page->inspectorController()->evaluateForTestInFrontend(callId, script); +} diff --git a/WebKit/gtk/webkit/webkitwebinspector.h b/WebKit/gtk/webkit/webkitwebinspector.h index 9010e26..94fd806 100644 --- a/WebKit/gtk/webkit/webkitwebinspector.h +++ b/WebKit/gtk/webkit/webkitwebinspector.h @@ -60,6 +60,12 @@ webkit_web_inspector_get_web_view(WebKitWebInspector* web_inspector); WEBKIT_API const gchar* webkit_web_inspector_get_inspected_uri(WebKitWebInspector* web_inspector); +WEBKIT_API void +webkit_web_inspector_inspect_coordinates(WebKitWebInspector* web_inspector, gdouble x, gdouble y); + +WEBKIT_API void +webkit_web_inspector_close(WebKitWebInspector* webInspector); + G_END_DECLS #endif /* webkitwebinspector_h */ diff --git a/WebKit/gtk/webkit/webkitwebsettings.cpp b/WebKit/gtk/webkit/webkitwebsettings.cpp index 588d5bd..89c5233 100644 --- a/WebKit/gtk/webkit/webkitwebsettings.cpp +++ b/WebKit/gtk/webkit/webkitwebsettings.cpp @@ -96,6 +96,8 @@ struct _WebKitWebSettingsPrivate { gboolean enable_offline_web_application_cache; WebKitEditingBehavior editing_behavior; gboolean enable_universal_access_from_file_uris; + gboolean enable_web_sockets; + gboolean enable_dom_paste; }; #define WEBKIT_WEB_SETTINGS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsPrivate)) @@ -135,7 +137,9 @@ enum { PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE, PROP_EDITING_BEHAVIOR, - PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS + PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS, + PROP_ENABLE_WEB_SOCKETS, + PROP_ENABLE_DOM_PASTE }; // Create a default user agent string @@ -647,6 +651,40 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) FALSE, flags)); + /** + * WebKitWebSettings:enable-web-sockets + * + * Whether to enable support for Web Sockets. + * + * Implementation of Web Sockets is currently considered experimental. + * Name of this property and the behavior could change in the future. + * + * Since: 1.1.16 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_WEB_SOCKETS, + g_param_spec_boolean("enable-web-sockets", + _("Enable Web Sockets"), + _("Whether to enable Web Sockets"), + FALSE, + flags)); + + /** + * WebKitWebSettings:enable-dom-paste + * + * Whether to enable DOM paste. If set to %TRUE, document.execCommand("Paste") + * will correctly execute and paste content of the clipboard. + * + * Since: 1.1.16 + */ + g_object_class_install_property(gobject_class, + PROP_ENABLE_DOM_PASTE, + g_param_spec_boolean("enable-dom-paste", + _("Enable DOM paste"), + _("Whether to enable DOM paste"), + FALSE, + flags)); + g_type_class_add_private(klass, sizeof(WebKitWebSettingsPrivate)); } @@ -694,6 +732,7 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con { WebKitWebSettings* web_settings = WEBKIT_WEB_SETTINGS(object); WebKitWebSettingsPrivate* priv = web_settings->priv; + EnchantBroker* broker; SpellLanguage* lang; GSList* spellLanguages = NULL; @@ -787,26 +826,32 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con case PROP_SPELL_CHECKING_LANGUAGES: priv->spell_checking_languages = g_strdup(g_value_get_string(value)); + broker = enchant_broker_init(); if (priv->spell_checking_languages) { char** langs = g_strsplit(priv->spell_checking_languages, ",", -1); for (int i = 0; langs[i]; i++) { - lang = g_slice_new0(SpellLanguage); - lang->config = enchant_broker_init(); - lang->speller = enchant_broker_request_dict(lang->config, langs[i]); + if (enchant_broker_dict_exists(broker, langs[i])) { + lang = g_slice_new0(SpellLanguage); + lang->config = enchant_broker_init(); + lang->speller = enchant_broker_request_dict(lang->config, langs[i]); - spellLanguages = g_slist_append(spellLanguages, lang); + spellLanguages = g_slist_append(spellLanguages, lang); + } } g_strfreev(langs); } else { const char* language = pango_language_to_string(gtk_get_default_language()); - lang = g_slice_new0(SpellLanguage); - lang->config = enchant_broker_init(); - lang->speller = enchant_broker_request_dict(lang->config, language); + if (enchant_broker_dict_exists(broker, language)) { + lang = g_slice_new0(SpellLanguage); + lang->config = enchant_broker_init(); + lang->speller = enchant_broker_request_dict(lang->config, language); - spellLanguages = g_slist_append(spellLanguages, lang); + spellLanguages = g_slist_append(spellLanguages, lang); + } } + enchant_broker_free(broker); g_slist_foreach(priv->spell_checking_languages_list, free_spell_checking_language, NULL); g_slist_free(priv->spell_checking_languages_list); priv->spell_checking_languages_list = spellLanguages; @@ -833,6 +878,12 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con case PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS: priv->enable_universal_access_from_file_uris = g_value_get_boolean(value); break; + case PROP_ENABLE_WEB_SOCKETS: + priv->enable_web_sockets = g_value_get_boolean(value); + break; + case PROP_ENABLE_DOM_PASTE: + priv->enable_dom_paste = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -944,6 +995,12 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa case PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS: g_value_set_boolean(value, priv->enable_universal_access_from_file_uris); break; + case PROP_ENABLE_WEB_SOCKETS: + g_value_set_boolean(value, priv->enable_web_sockets); + break; + case PROP_ENABLE_DOM_PASTE: + g_value_set_boolean(value, priv->enable_dom_paste); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -1008,6 +1065,8 @@ WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings) "enable-offline-web-application-cache", priv->enable_offline_web_application_cache, "editing-behavior", priv->editing_behavior, "enable-universal-access-from-file-uris", priv->enable_universal_access_from_file_uris, + "enable-web-sockets", priv->enable_web_sockets, + "enable-dom-paste", priv->enable_dom_paste, NULL)); return copy; diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp index 47d7d98..9f668f4 100644 --- a/WebKit/gtk/webkit/webkitwebview.cpp +++ b/WebKit/gtk/webkit/webkitwebview.cpp @@ -2392,7 +2392,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) enableScripts, enablePlugins, enableDeveloperExtras, resizableTextAreas, enablePrivateBrowsing, enableCaretBrowsing, enableHTML5Database, enableHTML5LocalStorage, enableXSSAuditor, javascriptCanOpenWindows, enableOfflineWebAppCache, - enableUniversalAccessFromFileURI; + enableUniversalAccessFromFileURI, enableDOMPaste; WebKitEditingBehavior editingBehavior; @@ -2421,6 +2421,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) "enable-offline-web-application-cache", &enableOfflineWebAppCache, "editing-behavior", &editingBehavior, "enable-universal-access-from-file-uris", &enableUniversalAccessFromFileURI, + "enable-dom-paste", &enableDOMPaste, NULL); settings->setDefaultTextEncodingName(defaultEncoding); @@ -2447,6 +2448,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) settings->setOfflineWebApplicationCacheEnabled(enableOfflineWebAppCache); settings->setEditingBehavior(core(editingBehavior)); settings->setAllowUniversalAccessFromFileURLs(enableUniversalAccessFromFileURI); + settings->setDOMPasteAllowed(enableDOMPaste); g_free(defaultEncoding); g_free(cursiveFontFamily); @@ -2533,6 +2535,8 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar settings->setEditingBehavior(core(static_cast<WebKitEditingBehavior>(g_value_get_enum(&value)))); else if (name == g_intern_string("enable-universal-access-from-file-uris")) settings->setAllowUniversalAccessFromFileURLs(g_value_get_boolean(&value)); + else if (name == g_intern_string("enable-dom-paste")) + settings->setDOMPasteAllowed(g_value_get_boolean(&value)); else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name)) g_warning("Unexpected setting '%s'", name); g_value_unset(&value); @@ -3152,8 +3156,7 @@ void webkit_web_view_execute_script(WebKitWebView* webView, const gchar* script) g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); g_return_if_fail(script); - if (FrameLoader* loader = core(webView)->mainFrame()->loader()) - loader->executeScript(String::fromUTF8(script), true); + core(webView)->mainFrame()->script()->executeScript(String::fromUTF8(script), true); } /** @@ -3894,8 +3897,12 @@ WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* id gboolean resourceFound = g_hash_table_lookup_extended(priv->subResources, identifier, NULL, &webResource); - // The only resource we do not store in this hash table is the main! - g_return_val_if_fail(resourceFound || g_str_equal(identifier, priv->mainResourceIdentifier), NULL); + // The only resource we do not store in this hash table is the + // main! If we did not find a request, it probably means the load + // has been interrupted while while a resource was still being + // loaded. + if (!resourceFound && !g_str_equal(identifier, priv->mainResourceIdentifier)) + return NULL; if (!webResource) return webkit_web_view_get_main_resource(webView); |